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

기관 투자자와 외국인 투자자의 거래량 추가

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

안녕하세요?


지난번 주식 인공지능을 만드는 과정에서 GPU를 이용한 빠른 연산은 실패했으니, 이제는 좀 모델의 정확도랄까요? 좀더 나은 모델을 만들기 위해서 기관 투자자의 거래량과 외국인 투자자의 거래소에서의 거래량에 대해서 추가를 해 볼까 합니다. 그래서 이번 포스팅에서는 RLTrader에 관련된 내용을 올리고자 합니다.



먼저 PyCharm의 관련된 환경을 이전에 설정해둔 파이썬의 환경으로 돌아가는 것으로 설정을 해 주도록 합니다.



그리고 나서 data_manager.py로 가서, 위 스크린샷처럼 inst와 frgn이라고 기관과 외국인 투자자를 설정해 둔 다음에, 빈 자리가 있으면 Nan이라고 표기가 되도록 설정을 해 주도록 합니다.



그리고 평균이동선을 구하는 공식에 대해서 한번 적어 주도록 합니다.



그리고 나서 전일 대비 기관과 외국인 투자자의 거래량 변화 비율을 구하는 공식을 주는데, 여기서 역시 빈 공간이 나오면 전이나 후의 데이터를 놓도록 해 줍니다.



다음으로는 위 스크린샷처럼 학습 데이터로 변환하는 과정도 만들어 주도록 합니다.




그리고 이제는 기관과 외국인 투자자의 평균 5일, 10일, 20일, 60일, 120일 거래량 변화 비율을 학습 데이터에 넣도록 해 줍니다.



이제 영웅문4라는 키움증권 HTS에서 2년간의 기관 순매수량과 외국인 순매수량으로 윈도우에 추가해 주도록 합니다.



그리고 먼저 클립보드에 복사하기를 선택한 다음에, 엑셀에 붙여넣기에 사용해서 데이터를 저장 하도록 합니다.



그리고 언제나 처럼 종목 코드로 저장을 하도록 하고, CSV UTF-쉼표로 분리라는 항목으로 저장하도록 합니다.



그리고 나서 해당하는 년도와 월, 일자에 학습 데이터를 지정해 주는데, 전체 데이터의 75%를 학습 데이터로 지정해 주도록 합니다.




그리고 지연보상 임계치를 2%로 지정을 해 주도록 해서 기계학습을 진행해 주도록 합니다. 



그리고 policy_learner.py로 가서, 해당하는 사항들을 한번 변경해 주도록 합니다.



그리고 trade()라는 함수로, 실제 투자 시뮬레이션을 하는 항목에서 자본금 역시 10만원으로 설정해 주도록 합니다.



그리고 나서 이번에는 거래 수수료와 거래세를 추가해 주도록 합니다. 실제로 이 내용이 상당히 큰 영향을 주기 때문에 무시할 수는 없습니다.



그런데 시작하자 마자 무슨 에러가 발생하는 것을 확인할 수 있었습니다.




알고보니 저 항목에서 str이라는 것이 문제가 된 것이였고, 그래서 str을 없앴습니다.



이렇게 해서 1000번의 기계학습에 들어가 도록 합니다.



어느정도 시간이 걸린 다음에 기계학습이 끝나는 것을 확인할 수 있었습니다.



먼저 10 에포크=10회의 기계학습과 200회의 기계학습을 비교한 결과인데, PV는 딱히 변하는 것이 없어 보입니다.



심지어 1000에포크가 되어도 무작위 행동이 다 없어진 것을 빼면, 그냥 학습의 효과가 없다는 것을 알 수 있었습니다.



그냥 주식을 사기만 하고 전혀 팔지 않아서, 수익을 냈다는 결론을 낼 수 있었습니다.



심지어는 이전에 했던 1000에포크의 결과와 비교를 해 보아도, 아무런 변화가 없다는 것을 확인할 수 있었습니다. 그래서 무언가 이상하다는 생각이 들기는 드는데, 아무튼 간에 어떻게 다음 단계로 나아가야 하기에, 다음번에는 원숭이 투자자(MT)라고 해서, 모든 행동을 무작위로 하는 투자자를 만들어서 투자한 다음, 제 모델과 비교를 해 보고자 합니다.

반응형