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

1월 마지막주 수요일에 실전 모의투자 들어가 보기

by 인터넷떠돌이 2019. 1. 31.
반응형

안녕하세요?


이번 포스팅에서는 어제라고 해야 할까요? 2019년 1월의 마지막주 수요일에 들어가 본 모의 주식투자를 했는 내용을 포스팅 해 보고자 합니다. 이번 포스팅에서는 주로 주식 시장이 열려 있는 시간동안 pytrader를 돌려본 결과를 주로 포스팅 할 생각입니다.



먼저 주식 인공지능 프로그램을 돌려본 결과, 위 스크린샷처럼 zero Division Error이라는 것이 나오는 것을 볼 수 있었습니다. 이 에러는 지난번에 해결한 적이 있는 에러라서 어떻게 해야 해결할 수 있는지는 이미 알고 있었습니다.



그래서 newTestAI로 가서, 위 스크린샷처럼 try와 예외처리를 두어서, 0으로 나누어질 경우를 대비해 보도록 합니다. 문제는 이런다고 해서 완전히 해결이 되는 것이 아니라....



main.spec이란 스펙파일을 열어서 일단 이름을 바꾸어 주도록 합니다. 왜냐하면 이렇게 해서 새로운 exe파일로 만들어 주어야 하는 필요성이 있기 때문입니다.



아나콘다 프롬프트를 열어서, 한번 작성에 들어가 보도록 합니다. 잠시간의 시간이 흐르면, pyinstaller --noconfirm --log-level=Warn --onefile --nowindow main.spec으로 타이핑해서 작성이 되는 exe파일이 나올 것 입니다.




이렇게 해서 어제 날짜로 만든 새로운 exe파일이 나왔는 것을 볼 수 있습니다. 이제 이 RLTrader를 작동시키도록 해 봅니다.



일단 하다보니, 무슨 이유로 5분간 정지가 되었는데, 5분이라는 시간이 흐른 다음에 강제로 다시 시작하는 메소드가 작동을 해서, 제대로 이어져 나아가는 것을 볼 수는 있었습니다.



그런데 하다가 보니, 위 스크린샷처럼 중간에 멈추어 버리는 사태가 또 벌어진 것 입니다. 이번에는 5분을 기다려도 제대로 다시 시작하지 도 않는 사태가 일어났습니다.



그래서 위 스크린샷처럼 elif로 되어 있던 breakCounter를 if문으로 바꾸어서 끌어낸 다음에, 다시 작동을 시켜 보고자 합니다.




다음으로 breakCou nt의 값을 올려주는 코드는 inputvalue와 commrqdata를 보내는 메서드가 실행이 되기 전으로 보내서 제대로 계산이 되도록 만들어 주도록 합니다.



그런데도 이렇게 만들어 주고서도 계속해서 3번 이상 나왔음에도 계속해서 이렇게 commRqData를 요청만 하고 있는 것을 볼 수 있습니다. 그래서 이를 바로잡기 위해서 한번 다른 시도를 해보고자 합니다.



위 스크린샷에 보이는 것처럼 if문으로 먼저 breakCount를 제일 위로 올려서 체크한 다음에 let의 값이 얼마인지를 따져보는 식으로 바꾸어 보았습니다.



그렇게 했어도, 위 스크린샷에서 보이는 것처럼 계속해서 멈추어져 있어서 강제로 종료시키고 다시 시작해야 하는 현상이 다시 벌어지는 것을 볼 수 있었습니다.



다음으로는 지연이 너무 될 시에 다시 TR을 서버로 전송하기 위한 타이머를 제일 윗쪽으로 올려 보냈고, 이렇게 breakCount를 체크하는 메서드도 제일 위로 올려 보내서 한번 작동을 시켜 보았습니다.



그리고 나서 기존의 코드에 있는 QEventLoop().exec_()가 문제의 소지가 있는 생각이 들어서, 이 구문을 삭제하고 바로 다음의 메서드가 실행이 되도록 만들었습니다. 이렇게 해서 큰 문제없이 어떻게 인공지능 주식투자자가 어느정도 작동을 제대로 하는 것을 확인할 수 있기는 있었습니다.

반응형