pizzaplanet

AI Trading Model Research 본문

Univ./Trading Program Project

AI Trading Model Research

scio 2018. 5. 8. 01:04

중간 점검


데이터 데이터는 2018.04.19.11.41.16부터 쌓아지고 있다. 그 전에도 수집을 시작하였지만 안정적으로 수집이 되지않아 데이터로 활용이 불가능하다. 이제 19일째 되는 날인데 작성중인 현재를 기준으로 약 374MB이다.

그래도 한달은 모으고 돌려야 정말정말 최소한의 자격을 갖춘 데이터가 되지 않을까싶다. 사실 한달도 정말 적은 데이터라 생각한다.

Tick 1개당 1 row인데 row 값은 모르겠다. 약 160MB 즈음에 약 227만 row 였으니 374MB는 약 530만 row이지 않을까.


무엇을 예측할 것인가 데이터를 활용한 가격예측에도 다양한 골 지점이 있다.  다양한 골 지점이란것은 '가격 예측'이 다양한 의미를 가지고 있다는 뜻. 예를 들면

(1) 미래 그래프 예측

(2) x시간이 지나기 이전에 y% 이상 상승 혹은 하락 예측

(3) X1~X2 시간에 y% 이상 상승 혹은 하락 예측

이외에도 굉장히 많다.


미래 그래프 예측(1)을 제외하고 시간과 x% 만큼 상승 혹은 하락을 이용한 골 지점(2),(3)은 Labeling이 필요하다.


Labeling

Information of Tick A

EventTime=2018.05.01.11.11.11

Price=10,000

etc...

Goal B(Type (2))

x=1 Hours

y=0.5

상승


Tick A에 대한 라벨링을 예로 들면 2018.05.01.12.11.11이 되기 전에 Price가 10,050 이상 오를 수 있는에 대해 0, 1 값을 부여한다.

2018.05.01.12.11.11이 되기 전에 Price가 11,000이 되던 12,000이 되던 10,050만 넘으면 1 값으로 라벨링 해주는 것이다.

이렇게 Ticks에 0 or 1로 Labeling을 해주면 가격예측은 Binary Classification의 Problem으로 변환된다.


<Goal B를 기준으로 Labeling>


Feature extraction or addition일단은 [EventTime, Maker, Price, Quantity, TradeID, TradeTime] 5가지를 feature로 두었는데 여기서 다른 feature를 두는게 의미가 있을까 고민중이다. feature를 뽑는다 해도 candle의 feature같은 high, low, Quote asset volume 등 정도가 되지 않을까. 보조지표를 피쳐로 넣는다 해도 보조지표도 Price, Time, Quantity 3개를 조합하여 만들어지기 때문에 feature를 extraction하거나 addition하는데에 의미가 있을지는 모르겠다.



덧붙이자면 AI를 이용한 예측이 신의 영역만큼 정확도가 나와주면 좋겠지만 현실적으로 무리가 있다. 이러한 점을 보완할 방법은 Stock Trading Algorithm과 섞어 하이브리드 형식으로 운영하는 것이다. 이름 염두해 두고 Trading Program을 만들어 나갈 것이다.




모델 리서치


쌓인 데이터를 Binary Classification 수준의 Training해야 하는데 어느 모델을 쓸지 좀 더 심각히 고려를 해보았다.


LR(Linear Regression) LR에 시계열(time series)을 적용하여 가격예측을 한 Case들이 있으나 타 모델들보다 활발하진 않은 것 같다.


LSTM(Long Short-Term Memory) RNNs(Recurrent Neural Networks)의 종류 中 하나인데 이 RNNs가 주가예측에 많이 쓰인다. RNNs 중에서도 LSTM이 많이 쓰이고 있는 듯 하다. [LSTM-Kor / LSTM-Eng]


seq2seq(sequence-to-sequence) RNNs Cell 들을 조합하여 큰 하나의 모델을 만들 수 있다. RNNs cell은 LSTM이나 GRU(Gated Recurrent Unit)이 될 수 있다.


이 3가지중 seq2seq를 이용해볼 것이며 예측 타겟은 Goal (2)으로 하려 한다.





'Univ. > Trading Program Project' 카테고리의 다른 글

바이낸스 과거 캔들 가져오기  (2) 2018.04.18
바이낸스 실시간 tick 가져오기  (4) 2018.04.18
Binance rest-api 이용해보기  (2) 2018.03.13
팀 분배 및 팀 이슈  (0) 2018.03.13
Server ssh, ftp setting  (2) 2018.03.10
Comments