본문 바로가기

주식 데이터 모델링

(14)
딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 5. 구현(3) - 전체적인 구현 이번 글은 논문 전체 구현 부분 입니다. 지난 글을 올리고 나서 열흘이나 지난 이유는, Rolling Segmentaion 등의 부분을 각각 포스팅 하기도 애매해서 그렇습니다. 모델에서 사용하는 파라메터 중 일부분은 논문을 그대로 적용시켰고, 큰 변화를 준 부분은 없습니다. 그 외 적혀있지 않은 부분은 제가 임의로 적용시켰구요. 논문과 제 구현의 가장 큰 차이점은, 사용한 데이터가 '분 단위' -> '일 단위' 라는 것입니다. 그래서 그런지 모델이 잘 작동하지 않았습니다. 애초에 목적이 이 논문을 구현해서 돈을 벌려고 한 것은 아니므로, 상세한 파라메터 조정은 각자의 몫으로... 코드 전체를 글에 포스팅 하기에는 공간을 많이 차지 하기 때문에, Github로 공유하도록 하겠습니다. 그리고 설명이 필요한 ..
딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 5. 구현(2) - 데이터 전처리 이 논문에서는 다양한 기술적 지표 들을 사용하고, 저는 그 지표들을 직접 계산한다고 말씀 드렸습니다. 물론 HTS 등을 이용하면 훨씬 쉽게 추출 할 수 있겠으나... 파이썬을 통해 계산해 보았습니다. 논문에서 사용한 기술적 지표들을 위와 같습니다. 1. 시가 2. 고가 3. 저가 4. 거래량 5. 턴오버 6. Bias(?) 7. 볼린져 밴드 8. DMI 9. 지수 이동 평균 10. 스토캐스틱 인덱스 11. 이동평균 12. MACD 13. RSI 먼저 말씀 드릴 것은, 저도 처음 보는 지표들이 몇개 있었고 그 중 6번째 지표인 Bias는 무엇인지 정확히 알 수가 없어서 사용하지 않았습니다. 그럼 나머지 지표가 12 종류입니다. 각각의 지표를 설명하기에는, 이미 양질의 자료들이 너무 많기 때문에 생략했습니다..
딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 4. 구현(1) - 데이터 수집 논문이랑 다르게 구현할 점 - 중국 주식 데이터 -> 한국 주식 데이터 (익숙하기 때문에) - 분 단위 데이터 -> 일 단위 데이터 (한국 분단위 데이터를 구하기가 쉽지 않더라구요.) - 프로그램에서 지표 출력 -> 코드로 지표 계산 (이왕이면 프로그램 사용 안하고 코딩으로 다 해결하면 재밌겠죠..?) 이 세가지가 가장 크게 다를 부분이구요. 혹시 논문과 다른 점이 있다면 이후에 표시하도록 하겠습니다. 1. Data 무엇을 하든 모델링에는 데이터가 필요합니다. 논문에서는 Dataset에 대해 다음과 같이 말했습니다. 4.1 Dataset 기간은 2016년 1월 1일 ~ 12월 31일, 244 거래일, 각 거래일은 242분. 그래서 총 59048분의 거래 데이터. 각 주식은 다음과 같은 기준으로 선정. 1..
딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 3. 논문(3) - 실험 결과 이번엔 실험 결과를 정리하면서 논문 읽기를 마무리 해보겠습니다. 4.3 Benchmark Methods 이번 논문과 비교하기 위해 기존 모델 3개를 가져왔습니다. 각각 ARIMA-GARCH, ANN, SVM 입니다. 기존에 있던 논문들을 참고해서 비교 모델로 사용했습니다. 본인들의 GAN-FD 모델도 총 4가지 방법으로 비교를 했습니다. 각각 GAN-F, GAN-D, LSTM-FD, GAN-FD 입니다. F는 전 글에서 말씀드렸듯이 forecast error loss이고, D는 direction predictions loss 입니다. LSTM-FD와 GAN-FD의 차이는 adversarial training의 유무 라고 합니다. 4.4 Evaluation Metrics (1) Root Mean Squar..
딥러닝으로 주식 예측하는 논문 구현 [Stock Market Prediction on High-Frequency Data Using Generative Adversarial Nets] - 2. 논문(2) - 모델 3. Forecasting with High-Frequency Data 본문의 주가 되는 부분 입니다. 3.1. Problem Statement 이번 논문에서는 각 주식이나 market index를 딱 one step 만큼 진행된 값만 예측한다고 합니다. 이 논문에서 말하는 one step은 분 단위 입니다. 예측 하려고 하는 시점이 (T+1)이라고 하면, 1시점 부터 T 시점까지의 주가 데이터 + 기타 주식거래에서 사용 되는 지표들(indicators)을 input으로 사용합니다. 이 T 시점을 [7, 12, 40] 등으로 설정 했던 글들도 있지만 이번에는 T = 242로 설정 했습니다. 중국 주식 시장이 거래일당 242분의 거래 데이터가 나오기 때문입니다. 3.2. Prediction Model [G..
딥러닝으로 주식 예측하는 논문 구현 [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을 사용한 점, 현 시점 기..