본문 바로가기

주식 데이터 모델링

딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 1. 논문 내용

딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets]

 

당분간 위의 논문을 구현하려고 합니다.

 

무언가 예측하는 작업, 모델링 하는 작업을 하는 분이라면 주식 데이터를 예측해볼까? 

라는 생각을 하게 됩니다.

 

단순한 CNN이나 LSTM, ANN 등을 이용해서 주식 데이터를 예측하는 글들은 꽤 있습니다.

 

물론 주식이라는 것이 모델링이 된다고 말하기가 참 힘들겠죠.

 

나름 딥러닝 공부 + 주식 공부 + 모델링 공부를 위해, 

딥러닝으로 주식을 예측해보자 라는 생각을 했습니다.

 

그 중 위의 논문이 재밌어보여서 구현해보려고 합니다.

재밌어 보인다고 한 이유는

GAN을 사용한 점, 현 시점 기준으로 18회 정도 인용이 되었다는 점 입니다.

 

한 두번 읽고, 이 논문이 좋은 논문이구나! 라는 눈은 아직 부족합니다.

 

그런 의미에서 이런 식으로 공유를 해보고자 합니다.

 

-------------------------

 

0.

 LSTM과 CNN을 쓴 GAN을 통해서 주식을 예측했다고 합니다.

'This model takes the publicly available index provided by trading sofware as input to avoid complex financial theory research and difcult technical analysis, which provides the convenience for the ordinary trader of nonfinancial specialty.'

 또한 일반적인 거래 프로그램들에서 제공하는 index들을 사용하는데 이는 복잡한 재무적 지식과 어려운 기술 분석을 피할 수 있게 해줍니다.

 

1. Introduction

 High-frequency Data라는 단어가 논문의 제목부터 있습니다. 논문의 introduction에서는 이 high-frequency의 기준을 '몇 초 단위'로 생각하는 듯 합니다. 그리고 브라질 주식에서는 이러한 high-frequency 거래가 2009년 2.5%에서 2013년 36.5%까지 증가했다고 합니다. 그리고 특정 논문에서는 꼭 브라질이 아니라 이런 high-frequency 거래가 global trend가 될 거라고 예상했다고 합니다. [아마 알고리즘 트레이딩의 증가로 볼 수 있을 것 같네요.]

 

 모델링을 통해 주식을 예측하면 보통 2개의 error 평가한다고 합니다.

첫째는 forecast error 즉, 실제값과 예측값의 차이를 RMSE와 RMSRE로 비교하는 것,

두번째는 direction error 즉, 주가의 상승 or 하락을 잘 맞췄는지를 보는 것 입니다.

 

 하지만 시장의 복잡성, chaotic dynamics 그리고 the many nondecidable, nonstationary stochastic variables로 인하여 주식을 예측하는게 쉽지 않습니다. 그래도 연구자들은 과거의 패턴, 다양한 모델 등으로 주식을 예측하려고 했고 이런 경우에는 변수 선택, 전문가적인 재무지식, 통계 방법들이 필요했습니다. financial field에 있지 않는 경우 이해하기 매우 힘들겠죠.

 

 저자들은 주식 예측을 위해서 GAN을 사용합니다. 이미지 분야에서는 성공을 거둔 GAN이 주식 예측에는 아직 사용이 안되었다고 하면서요...

 Input으로는 요약에 나온 것처럼 일반적인 거래 프로그램들에서 제공하는 index들을 사용했고, loss는 forecast error loss, direction predictions loss 두개를 사용해서 GAN을 훈련시켰다고 합니다. 그래서 모델의 이름은 loss에서 이름을 따서 GAN-FD(FD는 각 erroor loss의 이름) 입니다.

 

 저자들의 main contributions은 두가지 입니다.

(1) GAN으로 주식 시장을 예측했고, 좋은 결과를 낼 수 있다는 실험을 했다.

(2) Rolling segmentation을 training set과 testing set에 적용시켜서 모델 파라메터 update cycle을 알아냈다(?) ['이게 어떤 contribution인지 이 부분만 봐서는 잘 모르겠네요.']

 

2. Related Work

 주식 예측을 위해 어떤 모델들을 쓸 수 있는가... GAN은 무엇인가... 에 관한 내용입니다. 

 기존 주식 예측 방법은, input 변수들에 대한 제약, input 변수들을 각각 다른 layer에 입력으로 넣는 것, 뉴스 데이터를 input으로 넣는 등, 복잡한 방법을 사용했지만, 우리는 간단하다! 라는 말이 결론 입니다.

 

본격적인 모델링은 다음글에서 정리해보겠습니다.