작년 주가가 하락하고 쉽게 주식거래를 모바일로 할 수 있는 앱들이 늘어나면서 많은 사람들이 주식 투자에 관심을 가지게 되었고 많은 사람들이 주식 투자를 하게 되었다. 일반적으로 주식 트레이더(주식 딜러)들은 현재 경제 상황, 현재 떠오르는 분야, 어느 회사의 신재품 출시 예정, 어느 회사가 다른 회사의 인수 계획 등에 대한 가치 분석과 주식 차트분석에 대한 기술적 분석을 같이 하여 주가의 상승세와 하락세를 예측해 주식 투자자에게 정보를 알려준다. 하지만 증권사를 통해 주식형 펀드를 구입하더라도 펀드매니저에 따라서 주식에 지식이 부족하면 오히려 펀드매니저에게 속아 손실을 보는 경우가 많아 직접 투자를 하는 경우가 많다. 직접 주식 투자를 하려면 주식의 차트 분석하는 법을 공부하고 여러 가치 분석에 대한 정보를 모아서 어느 주식에 투자를 할 지 결정하여 투자한다. 하지만 주식의 차트 분석에 대한 공부는 상당히 시간이 오래 걸리며 어려운 부분이 많다. 이처럼 주식투자를 할 때 꼭 필요한 차트 분석에 대한 부분을 인공지능을 활용하여 사용자의 차트 분석을 조금이나마 도와줄 수 있게 주식 가격 예측하는 웹 사이트를 개발하고자 한다.
주식 가격 예측 웹사이트를 통해 다음날의 주가를 예측하여 사용자가 어느 주식을 매매할지 결정하는데 도움을 준다.
● 사용자의 매매주식 관리 카테고리 ● 주식가격과 수익률 예측 ● 데이터로 주식차트 표현
데이터 분석으로는 RNN(Recurrent Neural Networks)의 한 종료인 LSTM(Long Short-Term Memory models) 모델을 사용해주었다. RNN은 순차 데이터를 이용해서 학습시킬 때 많이 사용하는 모델로 앞에서 입력 받는 데이터를 기억해 두어 현재 데이터에 적용 시키는 방법이다. <그림 4-1>와 <그림 4-2>는 RNN의 구조를 나타내준다. RNN의 길이가 길어지게 되면 앞에 정보가 뒤에까지 충분히 전되지 않아서 정보량이 소실되는 문제가 발생하는데 이를 해결한 것이 바로 LSTM이다. LSTM은 앞에서 기억된 정보를 넘기기 전에 기억된 값을 다음 층으로 넘길지 결정을 하여 넘긴다.
손실함수로는 MSE(Mean Squared Error, 평균제곱오차)를 사용하였다. 일반적으로 선형회기에서 많이 사용하는 손실함수이다. 손실 함수는 실제 데이터 값과 예측한 결과 값의 오차를 줄이기 위해 사용한다. <그림 4-3>은 MSE 공식이고 MSE의 값이 작을수록 정답에 가까이 나오게 된다.
● <그림 4-3 > MSE 공식 https://bitcodic.tistory.com/108 (최종 검색일 : 2020-12-09)
학습 시킬 데이터는 <그림 4-4>처럼 삼성전자 주식 가격 데이터를 사용했고 독립변수와 종속변수 둘 다 Close(종가)를 사용해 주었다. 그리고 학습을 해주는 학습 셋과 테스트를 해주는 테스트 셋으로 나누어서 학습과 테스트를 같이 진행하도록 설계하였다.
프로젝트 분석과 설계, 계획 등을 자세히 하지 않아서 구현 시 시간이 많이 걸렸다. 그래서 프로젝트 기간이 모자라 사용자 주식을 저장하는 기능을 구현하는 것과 차트를 반응형으로 구현하는 것을 못하여서 아쉬웠다. 향후에 이 기능을 다 구현하여 새 버전의 시스템을 구현할 계획이다.