안녕하세요?


이래저래 느린 강화학습 속도롤 인해서, 진도가 많이 느린 상황인데, 이러는 와중에 왜 이리도 수익이 나오는 모델이 안 나오는 지에 대해서 탐구를 하기는 해 보았습니다. 일단 분량이 많다는 생각이 들어서 2개의 part로 나누어야 했는데, 이번 포스팅에서는 전반부에 대한 이야기를 해 보고자 합니다.



먼저 이제까지 했던 강화학습에서 한가지 에러가 있음을 알아낼 수 있었습니다. 지금까지는 위 스크린샷에서 보이는 부분에서 float(75)가 되었는데, 이 때문에 25%의 전반부 데이터만 가지고서 강화학습이 이루어 진 것이었습니다.



그래서 이 상황을 타개하고자, 부랴부랴 75%의 데이터를 가지고서 한번 작업을 하도록 수정을 가한 다음에, 다음에는 구글 드라이브에 있던 기존의 main.py를 제거한 다음에 다시 새로 만들어진 main.py를 올리도록 해 보겠습니다.



그런데 문제가 하나 생기기는 생겼습니다. 너무 강화학습에 시간이 오래 걸려서 모델하나 만드는 데 6시간이 걸리는 것을 확인할 수 있었습니다.



어쨎든 모델이 완성이 되기는 되었기 때문에, 다음으로는 위 스크린샷에 나오는 것처럼 RLTrader를 작동시키도록 해서, 한번 작업을 하도록 해 봅니다.




일단 제대로 수익이 나오지 않는 것을 발견할 수 있기는 있었습니다. 그래서 이번 모델도 실패라는 것을 알 수 있었습니다.



그래서 너무 시간이 걸린다는 생각이 들어서 한번 지연보상 임계치를 0.001에서 2배 정도 올리도록 해 보도록 합니다.



그렇게 했음에도 불구하고, 제대로 시간이 단축이 되지 않는 것을 확인할 수 있었습니다.



거기다가 백테스트 결과에서 제대로 된 수익이 나오지 않는 것도 발견할 수 있었습니다.




일단 이게 왜 이렇게 되는지를 알아보니까, 먼저 초기 자본금은 base_portfolio_value라는 값으로 나오는 것을 확인할 수 있었습니다.



그리고 이 값을 가지고서 위 스크린샷에 보이는 것처럼 profitloss라는 값을 바꾸는 것을 볼 수 있는데, 문제는 위 스크린샷처럼 초기 자본금이 바로 이 값에 반영이 된다는 것을 확인할 수 있었습니다.



그래서 한번 종가를 살펴보았습니다. 일단 종가=현재가가 1분 단위로 수집된 분봉차트로 본 결과, 그렇게 까지 많은 변화가 있는 것은 아니기는 합니다.



일단 찾아보니까, 절대값으로 변환시킨 다음 변화량의 평균이 대략 24.23이라는 값이 나오는데, 이 정도의 값으로 평균적으로 +가 되든 -가 되든 한다는 것을 알 수 있었습니다.



이렇게 해서 profitloss값이 변하면, 위 스크린샷에 보이는 것처럼, 얼마가 되든 간에 일단 상당히 작은 값이 나온다는 것을 알 수 있었습니다. 그래서 한번 다음 포스팅에서는 3분, 5분, 10분, 15분, 30분, 45분, 60분봉 차트를 가지고 와서, 한번 어떤 변화가 감지되는 지에 대해서 한번 알아 보고자 합니다.

+ Recent posts