본문 바로가기

System Trading

1. AI System Trading 구성 <2>

전체 프로그램 플로우차트 v0.1

 

위와 같은 System Trading 을 만들려고 하다가 

일단 한 Trader가 자신의 Portfolio를 구성하는것이 가장 기반이 되어야 한다고 생각 했기 때문에 

구조가 바뀌었다. 

사실이 그런것이, 어떤 종목에 투자할지 , 어떤 성향의 Trade를 할 지 정하지 않은 상태에서

데이터를 모으로 매매를 한다는 것 자체가 무의미하기 때문에 

Portfolio 구성이 먼저 되고, 

해당 필요 종목에 대해서만 데이터수집과 DB구성, 그리고 예측이 행해져야 한다.  

 

그렇다면 플로우차트는 아래와 같이 수정 되어야 한다. 

플로우차트 v0.1.1

 

다시 또 다시 플로우차트를 그렸다.

플로우차트 v0.1.2

 

그래서 다시 순서를 정해본다. 

모듈들이 모두 동시에 구성이 되면 좋겠지만 일단 기본적인 형태만 띄도록 구성 해가며 만들어본다.

일단 아래 처럼 구성이 되겠다.. 

  1. Python기초와 대신크레온API 연결 - 메인시스템명령부 ( Commander )
  2. 대신크레온API를 이용 데이터 수집과 개인 DB구축 ( Stock DB Control module, My Stock DB )
  3. 트레이딩을 위한 Portfolio 구성( Portfolio Module )
  4. Portfolio 위에서 Trading Signal Generater 만들기 ( Trading Signal Generater ML / DL 포함 구성 ) 
  5. Trading Signal 받아 실제로 Traiding 을 하기. ( System Trading Module )
  6. News / Sentimental / Other data 로 신뢰도 높이는 작업 ( 추가작업 )

Python을 이용해 메인명령부가 

현재 사용자는 일단 '데이트레이더' 라는 가정을 해주고 시작한다. 

나중에 기법이 고도화된다면 오버나잇을 시작하도록 한다. 

현재는 리스크 줄이기가 가장 중요한 요소이므로, 

리스크가 낮고, 적당한 변동성으로 당일 수익을 줄 종목에 진입해 그날 청산하고 나와 

포지션이 없는 상태를 유지할 수 있는 '데이트레이더'를 목적으로 만들어본다.

 

Portfolio를 구성하면서 필요한 DB를 구축한다. 

Portfolio Optimization을 위해 Machine Learning for Trading 를 참조해보자. 

구체적으로 계좌에 얼마를 가지고 있고 ( 이는 가정이 가능, ex $10,000 ), 

어떤 reasoning을 거쳐 어떤 종목을 어느정도의 proportion을 가져갈 것인지 

Risk를 줄이고 Return을 최대한 높이는 Portfolio Optimization을 어떻게 할 것인지 

먼저 만들어야 한다. 

 

< 시작 > 

 

OS : Windows 10

Language : Python 3.7 ( Anaconda 32bit required )

증권 API : CREON API ( 32bit )

 

크레온플러스 - 크레온

Plus API는 대신증권에서 제공하는 투자정보, 주문 플랫폼을 이용하여 나만의 프로그램을 만들어 볼 수 있는 Open API입니다. 특히 VB, C#, 엑셀, VC, 파이썬 등 다양한 언어를 지원하며, 주식/선물/옵션/야간선물/야간옵션/해외선물 정보를 실시간으로 제공받을 수 있습니다. 나만의 새로운 투자 전략이 있으신가요? Plus API를 이용하여 시스템 트레이딩에 도전해 보세요.

money2.creontrade.com

Code share & Version control : Git repository - jonstock 

Python IDE : Pycharm community ver.

Database : MariaDB image on a container on the Docker

Training & Referencing framework : Tensorflow & Keras

타겟 증권 상품 : 국내 현물 부터 시작. 후에 주식선물, 해외선물 까지 가능

 

AR : 일단 Anaconda 32bit 설치, IDE 확정 ( Jupyter Notebook 으로 일단 시작..? ), Creon API설치 후 동작 확인. 

그리고 portfolio 구성으로 넘어가서 어떻게 종목을 선별할지 결정.. ! 

 

< Portfolio 의 구성 >

 

참조할 class : Machine Learning for Trading 

Portfolio의 구성은 종목 발굴로 귀결되며 Risk Management 까지 포함한다. 

현재 포트폴리오를 어떻게 하면 가장 최적의 결과를 ( 최고수익 X 최저리스크 ) 주는지를 

알려주는 모듈.  어느종목을 몇% 보유할지 결정하게 된다. 

 

일반적인 조건들 + ML Score로 최종 후보들을 뽑아내게 될 것이다. 

기본적으로 CREON API 사용이 필요하다. 

 

일반적인 조건들은 

No etf, no etn, 코스피 100에 드는 종목 등등 으로 일단 거래가 잘 안되는 리스크 소멸, 무분별한 시세 조정 리스크 소멸 등이 있다. 

실시간 조건을 통해 좋은 종목을 편입 하기도 한다. 

 

 

ML Score 는 최소의 Risk로 High return을 기대하는 종목들을 간추릴 것이고 

Hedge 등을 위해 종목간 Correlation이나 미국 / 중국 시장 선물, 뉴스 , SNS에서의 Sentimental 지표등을 이용할 수 있을 것이다. 

실시간 referencing 을 통해 좋은 종목을 편입하기도 한다. 

 

 

< Trading Signal Generater >

 

아마 가장 많은 연구가 필요한 부분이 될것 같다. 

Portfolio 에 편입된 종목을 ( 언제 / 얼마에 / 어느만큼 / 어떻게 ) 사고 팔 것인지 신호를 내어 주는 곳. 

 

현재 어떤 트렌드가 있고, 

어떤 연구가 진행되고 있는지 살펴볼 필요가 있음.