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

이제서야 시작하는 제대로 된 모델 만들기

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

안녕하세요?


지난번 까지는 어떻게 코드상에 있는 오류로 인해서... 이건 제 오타라면 덜 뭐하기도 하지, 뭐랄까요? 책에 있던 오타 때문에 이렇게 되었으니, 뭐라고 억욱한 기분이 들기도 합니다만, 아무튼 간에 이제서야 제대로 된 주식 인공지능 만들기에 들어간다는 기분이 듭니다.



그래서 먼저 해야 할 일이 하나 있는데, 가장 먼저 강화학습 시작하는 곳에다가 다시 1000번의 강화학습을 하도록 하고, 다음으로는 discount factor를 일단 0으로 두고, 시작시 무작위 행동의 비율을 50%로 맞추어 주는 것 입니다.



혹시나 해서 policy_learner.py에서 역시 바꾸어 줄건 바꾸어 주도록 하고, 역시 가장 중요한 것은 learning을 true로 바꾸어 주는 것 입니다.



이제 1000번의 학습에 들어가 보도록 합니다.



얼마간의 시간이 걸린 다음에 기계학습이 끝이 난 것을 볼 수 있었습니다.



일단 과거와는 다르게 양상이 많이 변했다는 것을 확인할 수 있었습니다.




그리고 에포크가 증가하면 증가할 수록 왠지 저 PV가치의 수익이 나오는 면적이 올라가는 것 같다는 생각이 들기도 합니다.



그리고 초반 에포크 부터 특이하게도 보통의 개미 투자자라면 거의 잡아 먹힐 위치인 저 급락하는 부분에서 인공지능 투자자는 어떻게 포트폴리오 가치를 지켜내는 것을 볼 수 있습니다.



그리고 1000에포크에서도 저 부분에서 큰 손실을 입지 않는 것을 볼 수 있었습니다. 뭐라고 해야 할까요? 저 상황에서 제대로 버텨내준 인공지능 투자자가 대단하다고 해야 할까요?



이제 에포크를 거치면서 나온 결과의 요약입니다. 일단 PV가치에 있어서는 학습을 진행하면 할수록 올라가는 경향이 있다는 것을 확인은 할 수 있었습니다.



이제 모델이 준비되기는 했으니, 진짜 테스트를 해볼 차례입니다. 방금 생성한 모델을 만들어 준 다음에, 위 스크린샷처럼 테스트에 들어갈 준비를 하도록 합니다.




기간도 올해 3월 말부터 11월 초로 지정을 하도록 합니다.



그리고 비학습 투자 시뮬레이션 항목을 주석처리에서 해제하도록 합니다.



그리고 나서 trade()메소드로 가서 초기 투자금을 10만원으로 설정해 주도록 합니다. 그리고 여기서 learning이 False로 되어 있는 것을 볼 수 있는데, 이걸 true로 만들어 주면 투자를 하면서도 이 상황에 대해서 학습을 한다고 볼 수 있어 보입니다. 다만 그게 좋은 것인지 아닌지는 확답을 할 수 없어 보입니다.



이제 투자 시뮬레이션을 진행하기는 했는데.......



문제는 최근의 데이터인 테스트 데이터에서는 수익을 전혀 내지 못하는 것을 볼 수 있었습니다. 생각지도 못한 일이기는 하지만, 아무튼 간에 일단 이건 이것이고, 첫 숟갈에 배가 부를 수는 없으니 계속해서 이 무모한 도전을 계속해 봐야 하는데, 일단 1차 시도는 수익을 내지 못했다고 기록을 해야 할 듯 합니다.

반응형

댓글4

  • 주식투자 2021.01.02 18:10

    안녕하세요 RLtrader 책을 따라해보는 중인 초보입니다.
    어찌어찌 RLtrader가 제공하는 파일을 사용해
    python3 main.py --stock_code 005930 --rl_method dqn --net dnn --learning --num_epoches 100 --lr 0.001 --start_epsilon 1 --discount_factor 0.9
    이런식으로 prompt에 명령어를 집어넣어 학습까지는 성공했는데 실제 데이터에 학습된 모델을 적용시키는 방법을 몰라 고생중입니다.
    학습된 h5 파일과 json파일을 사용해 모델을 활용하려면 뭐라고 prompt에 쳐야 하나요? 감사합니다.
    답글

    • 안녕하세요?

      아마 책만 따라하면....... 이거 실제 데이터 투자에 적용하기 불가능합니다.
      일단 저는 이걸 위해서 손과 발 역할을 하는 pytrader를 만들어 놓고 나서, 중간에 데이터 전달을 할 방법을 몰라서 txt파일을 pytrader에서 만들고, 그걸 RLTRader가 읽는 식으로 처음에 작업을 했습니다.
      그냥 RLTrader 자체에서만 적용하실 거라면, 학습 기능을 끄고.... 근데 파이참에서 실행을 시킨 것이 아니신가요?

  • 주식투자 2021.01.02 18:40

    빠른 답장 감사합니다!
    아직 실제 투자까지는 배워야 하는게 너무 많을꺼 같아
    책에서 하는 모델 활용 부분만 적용시켜 보려고 시도하는 중이였습니다.
    아나콘다를 깔아서 아나콘다 파워쉘 프롬프트를 사용하고 있습니다.
    답글

    • 안녕하세요?

      실은 지금까지 예약발행하는 물량을 소모한다고 일련의 포스팅을 해서 답글이 빨랐던 것 입니다. 일단 아나콘다 프롬프트를 쓰셔도 되지만, 아마 파이참을 써 보시면 더 편리하다는 것을 아실 겁니다. 플레이 버튼만 누르면 자동으로 실행이 되거든요.
      다만 파이참(PyCharm)도 만능은 아닌 것이 일단 실행 자동으로 해주고, 환경설정도 간편하게 지정하고 한번 지정하면, 계속 그렇게 지정이 되지만, 통합개발툴 자체가 조금 무거운 편이기는 합니다.
      다만, 그만큼 편의기능이 많고, 상당히 편리한 기능이 많습니다.
      ps: 아까 했던 질문의 답 인데, 일단 순수하게 RLTRader만 쓰실 거면, 기계학습하는 부분을 모두 막아놓고 쓰시면 됩니다. 아마 제 블로그에서 백테스트를 하는 부분을 참고하시면 될듯 합니다.