파이썬 주가 예측 프로그램 설계를 해 보았다 LSTM 활용

2020. 12. 16. 16:57인공지능,프로그래밍

반응형

 

처음에는 유튜브를 통해 인공지능으로 주가 예측이 가능하다는 말을 듣고

 

나도 그렇게 해 보고 싶었다. 

 

그리고 검색을 해 본 결과 

 

현재 주가 예측으로 오픈되어 있는 소스는 두 가지로 되어 있다는 것을 알게 되었는데,

 

하나는 페이스북에서 제공하는 Prophet이라는 함수를 사용하는 것이고, 

 

다른 하나는 Keras의 LTSM 모델을 사용하는 것이었다.

 

처음에 시도해 본 방식은 LTSM이라는 모델을 사용해서 구현한 소스를 따라해 본 것이었는데,

 

우여곡절 끝에 구현해 볼 수 있었고, 

 

추세를 비슷하게 나오는 것을 보고 좋아했으나

 

현재 오픈되어 있는 소스는 50일 기간으로 하루를 예측하는 것에 불과하기 때문에 

 

그 하루라는 것이 짧다고 느껴졌고, 

 

50일의 추세에 대충 점만 찍어도 되는 정도이기 때문에 

 

실제로 사용하기에는 한계가 있는 상황이었다. 

 

그러던 중에 Prophet을 알게 되었고, 

 

원하는 기간만 숫자를 바꾸면 얼마든지 하루가 아닌 더 긴 시간 예측 값을 보여주었기에 처음에는 신기하고 유용해 보았다. 

 

하지만 역시 몇 일간 지켜본 결과는 예측한 추세와 다르게 흘러가는 경우가 많았기 때문에 

 

이 역시 유용하지 않다는 것을 알게 되었으며, 

 

기본적으로 시계열을 일일 단위로 구현하기 때문에 

 

분단위나 시간단위의 컨트롤이 되지 않아 아쉬웠다. 

 

이에 다시 LTSM이라는 방법으로 분단위 데이터를 가지고 실시간으로 테스트하면서 

 

유용한지를 보기위한 방법을 구상해 보았다. 

 

그 흐름도가 위에있는 도표이다. 

 

매 1분마다 HTS에서 제공하는 데이터를 불러오고 

 

그 데이터를 여러개 세팅하여 학습을 진행한다. 

 

그리고 학습한 모델을 기초로 3분~5분 정도를 예측해 보는 것이다. 

 

이렇게 하는 것을 1분마다 자동으로 진행되도록 반복하면서 예측값과 하루간의 실제 데이터와의 차이가 얼마나 되는지를 체크해 보는 것이 이번 프로젝트의  목표이다. 

 

그렇게 하면 하루간에 단타를 통해  확실한 수익을 거둘 수 있을 것이라고 생각하기 때문이다. 

 

사실 그 전에 종목을 선정하여 넣는 것이 또 하나의 큰 프로젝트가 되겠지만 

 

그 전에 예측이라는 핵심 부분이 잘 돌아가는지 보고 싶기 때문에 이번 프로젝트를 시작해 보려고 한다. 

 

 


 

이렇게 하려면 그 동안 소스에서 보지 못한 HTS에서 분 단위로 데이터를 가져오는 것이 필요하며,

 

동시에 1개가 아닌 3개~5개씩 예측하는 함수도 만들어야 한다. 

 

 

먼저 첫 번째로 데이터를 가져오는 것은 증권사에서 제공하는 API를 잘 활용하는 것을 알아볼 생각이고, 

 

다음 것은 예측 데이터를 넣어서 다음 하나를 예측하고, 

 

그것을 또 넣어서 다음 하나를 예측하고 하는 방식으로 5개를 예측해 보려고 한다. 

 

사실 5개 예측이 1개 예측을 5번 반복하는 것이기 때문에 큰 차이가 없을 수 있지만 

 

그래도 효용성을 확인하는 목적에는 부합할 것으로 보인다. 

 

 

 

그럼 한 동안 학습과 실수를 반복하면서 어떻게 진행되는지는 다음 글로 적을 생각이다. 

 

이상 이번 글을 마칩니다. 

반응형