본문 바로가기
무모한 도전-주식 인공지능 만들기

주식 투자 시뮬레이션에 들어가 보기

by 인터넷떠돌이 2018. 11. 5.
반응형

안녕하세요?


지난번 포스팅에서 기관과 외국인 투자자의 순매수 거래량을 추가하기는 했지만, 그다지 큰 변화는 없었다고 했습니다. 아무튼 그건 그것이고, 이제는 어떻게 모델이 나오기는 나왔으니 AJ렌터카의 75%에 해당하는 주식을 가지고서 학습을 하였고, 남은 25%로 투자 시뮬레이션이라고 해서 모델의 테스트에 들어가 보고자 합니다.



먼저 투자 시뮬레이션을 위해서 이전에 만든 모델을 가지고 와야 하는데, 먼저 모델의 저장방법은 model_날짜와 시간.h5 형식을 따르는 파일로 저장이 되는데, 먼저 model_ver이라고 하는 변수에서는 바로 이 모델이 만들어진 날짜와 시간을 추가해 주도록 합니다.



그리고 나서 기간을 다시 설정하는데, 이번에는 2018년 3월 23일에서 2018년 11월 2일 까지 주가 데이터를 바탕으로 모델의 테스트에 들어가 보도록 합니다.



그리고 나서 책에서는 삭제한다고 했지만, 제 경우에는 ''' 를 쳐서 이전에 강화학습을 시작하는 부분과 파일로 따로 저장하는 부분을 주석 처리 하였으며, 비학습 투자 시뮬레이션을 위한 과정을 위 스크린샷의 코드처럼 추가를 했습니다. 그리고 제 경우에는 일단 10만원만 투자하려고 생각하기 때문에, 초기 투자금을 10만원으로 설정해 봅니다.



일단 투자 시뮬레이션 자체는 fit() 메소드가 아니라 trade메소드를 사용하기 때문에 1에포크만 반복합니다. 그래서 결과 자체는 빠르게 나오는 것을 볼 수 있는데, 일단 투자 결과는 포트폴리오 가치가 감소했기 때문에 손해라는 것을 볼 수 있습니다.



실제로 투자 결과를 보면, 7개월간의 기간동안 초기 투자금을 까먹은 것을 볼 수 있습니다. 아무튼 첫 시도에서 기계학습으로 만든 모델은 그다지 좋은 결과를 낸 것은 아닌 듯 합니다.




아무튼 간에 이러니 저러니 해도, 다음 모델을 만드는 시도를 하기 위해서 먼저 model_ver앞에 주석처리를 하는 #를 붙여 주어서 작동을 하지 않도록 막아 줍니다.



기간도 2016년 부터 설정을 해서 다시 학습을 위한 데이터로 바꾸어 주도록 합니다.



다음 모델을 만드는 기계학습-그것도 지도가 필요하지 않은 강화학습을 시켜서 다시 한번 주식 모델을 만들어 보도록 합니다.



먼저 학습의 결과 입니다. 이 역시 이전과 다른 것이 없다는 것을 알 수 있습니다.



역시나 에포크가 증가해도 무작위 행동이 적어 진다는 것 뿐, 차이가 없다는 것을 알 수 있었습니다.




그래도 다시 투자 시뮬레이션을 위해서 방금 만든 모델을 불러 오도록 합니다.



그리고 비학습 투자 시뮬레이션을 지정해 주도록 하고, 여기서도 초기 자본금은 10만원으로 지정을 하도록 합니다.



그리고 잊어 먹을 뻔 했는데 기간도 테스트 데이터 셋이 되도록 지정을 해 주도록 합니다.



이번에도 역시나 적자로 나오는 것을 볼 수 있습니다.



거기다가 모델을 새로 만든 것 치고는 결과가 전혀 변하지 않는 것을 볼 수 있습니다. 아무래도 요 최근의 경기나 이런 것을 적용해 보자고 하면 하락장이라고 할 수 있는데, 이런 상황에서는 수익을 내는 모델을 만들기가 어려운 것이 아닌가 하는 생각이 들기는 합니다. 그래도 이 무모한 도전은 계속 되기는 하는데, 조금은 힘이 빠지는 듯 합니다.

반응형