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

백테스트를 위한 유저 인터페이스의 제작-4-

by 인터넷떠돌이 2018. 12. 18.
반응형

안녕하세요?


이번 포스팅에서는 이제 백테스트를 하고나서, 이 결과를 저장하는 폴더를 지정하는 유저 인터페이스를 제작하고 나서, 이를 가지고서 진짜로 백테스트를 해보는 과정에 들어가는데, 그 일련의 과정을 포스팅으로 남기고자 합니다.



이제 폴더지정이라는 버튼을 누르면 작동이 될 메서드를 지정하도록 합니다. 당연 pushButton이기 때문에 클릭하면이라는 이벤트를 지정합니다.



그리고 나서, 위 스크린샷에서 나오는 saveFolderPaht_2라는 내용이 없는 빈 변수를 하나 만들어 주도록 합니다.



먼저 QFileDialog를 이용해서 getExistingDirectory()라는 함수를 사용해서 폴더를 설정하기 위한 윈도우를 가지고 오도록 하고, 그 경로를 아까 만들어 놓은 빈 변수에 저장을 하도록 해 줍니다.



다음으로 제대로 폴더가 지정되었으면, 폴더 경로가 lineEdit에 뜨게 되는데, 그 내용에 대해서 체크를 하는 메소드를 연결해 주도록 합니다.



그리고 이 폴더를 지정하는 것도 백테스트에 들어가는 상당히 중요한 요소이기 때문에, 위 스크린샷과 같이 5번째 트리거로 지정을 해 주도록 합니다.



그리고 나서 당연하다면 당연하게도 여기에 텍스트가 나오면 트리거를 True로 하고, 없다면 False로 바꾸라는 if문도 작성해 주도록 합니다.




그리고 나서, 사전의 조건들이 지정하는 데는 아무런 지장이 없는지 테스트를 해본결과, 사전 조건은 문제없이 지정이 되는 것을 확인해 볼 수 있었습니다.



그리고 나서, 위 스크린샷처럼 백 테스트에 들어가기 위해서 Try_Back_Test()라는 메소드를 만들어 주도록 하고, 해당하는 버튼이 눌러지면 실행이 되도록 만들어 줍니다.



그래서 만들어진 메소드에서는 위 스크린샷과 같이 조건들이 지정되지 않으면 각각의 상황에 맞춰서 경고 메세지 박스가 나오도록 만들어 주도록 합니다.



다음으로는 여기서 부터가 본격적인 방법인데, 먼저 로그기록까지는 지난번 강화학습을 하는 것 까지 같습니다. 하지만 이후에는 예전 RLTrader에서 비학습 투자 시뮬레이션을 하는 부분을 가지고 와서, 일부의 변수를 바꾸어 주도록 합니다.



이번에는 위 스크린샷처럼 모든 조건을 갖추어 놓고서, 한번 백테스팅에 들어가 보도록 해 봅니다.



그런데 무슨 문제점이 생겨서 인지는 몰라도, 에러가 발생하면서 프로그램이 중단이 되었습니다.




그리고 나서 기존에 os.path.join이라고 되어 있는 부분은 없애 주도록 합니다.



다음으로는 원래는 chart_data라고만 되어 있는 부분을 새로 만들어 준 변수로 바꾸어서 제대로 변수가 적용이 되도록 만들어 줍니다.



다시 한번 더 백테스트에 드어가 보도록 합니다.



위 스크린샷과 같이 백테스트 자체는 제대로 되었는 것을 확인할 수 있었습니다.



그런데 위 스크린샷과 같이 저장하라고 지정한 폴더에서 에포크 summary라는 내용이 보이지 않는 것을 볼 수 있습니다. 아무래도 강화학습과 백테스트에서 나오는 결과를 저장하는 폴더를 지정하는 데 무슨 문제가 생긴 것 같은데, 다음 포스팅에서는 이제 이 문제를 해결해 보기 위해 다양한 시도를 하는 내용을 올리고자 합니다.

반응형