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

RLTrader에서 주문을 요청한 시각을 표시하기-2-

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

안녕하세요?


지난번 포스팅에서는 어떻게 매수를 할 경우에 매수 주문을 RLTrader가 언제 냈는지 시간을 표시해 주는 기능을 넣고자 했습니다. 이 기능을 넣는 이유는 다른게 아니라, 바로 RLTrader가 과거의 데이터를 일정량 보고서 결정을 내리는데, 즉 10분전에 있었던 데이터를 가지고서 10분 전이라고 생각해서 매수를 하라고 했는데, 정작, 과거를 보고서 RLTrader가 내린 명령이 pytrader에서는 현재 시간을 기준으로 받아들이고 주문을 실행하는 오류가 있을 수 있다는 생각에서 시작한 일입니다. 일단 서론이 길어졌는데, 우선은 매도에 시간을 표시하는 작업부터 시작해 보겠습니다.



먼저 Qt Designer를 열고서, 위 스크린샷처럼 기존의 가장 하단에 있던 표위젯을 한번 고치도록 해 보도록 합니다. 여기서는 기존에 없던 시간이라는 열을 추가해 주도록 합니다.



그렇게 함으로써, 기존에는 없던 시간이라는 열이 생성된 것을 볼 수 있었습니다.



그리고 나서 시간 항목에서는 시간이라는 것이 나오는 것을 볼 수 있었는데, 이것으로 일단 미관상이든 뭐든 시각적으로 인터페이스 상에서 마주할 수 있는 문제는 해결을 할 수 있었습니다.



이제 제 걱정이 기우인지 아닌지 확인해 보기 위해서, 먼저 일봉차트를 요청해서 20190107이라는 데이터 베이스를 만들어 주도록 합니다.



그리고 나서 pytrader를 다시 작동시킬 필요도 없이, 일단 RLTrader안에 있는 txt파일의 데이터 베이스명만 바꾸어 주는  식으로 일단은 대응을 하도록 해 봅니다.



데이터가 많은 탓인가요? 1분이면 끝날 일이 조금은 많이 걸렸다는 느낌이 들기는 했습니다만, 어쨎든 시간이 걸려서 일을 끝내는 것을 볼 수 있었습니다.




그리고 pytrader의 폴더에 있는 buy_list.txt파일을 열어서 보면, 엄청나게 많은 매수 주문이 들어온 것을 볼 수 있었습니다. 이걸 여기서는 일일히 손으로 세어서 얼마나 많은 매수 주문이 들어온 것인지를 알 수 있습니다만.........



매도역시 주문의 양이 많이 들어와서 여기서만은 토탈 매도 주문의 숫자를 알기는 어렵다는 생각이 듭니다.



일단 엑셀파일로 txt파일을 여는 기능을 이용해서 열어서 얼마나 많은 매수 주문이 들어온 것인지 확인은 할 수 있었습니다.



그런데 매도 주문에 있어서 매도전이 분리되지 않는 문제가 발생한 것을 볼 수 있었습니다.



그래서 RLTrader의 agent모듈로 가서, 위 스크린샷처럼 한번 바꾸어 보도록 합니다.



이렇게 하는 것으로 분리도 제대로 되었고, 총 76건의 매도 주문이 들어왔다는 것을 볼 수 있었습니다.




이제 pytrader를 시작 하도록 합니다. 일단 시작하기만 하는데도 위 스크린샷처럼 많은 데이터가 오고가면서 buy_list.txt와 sell_list.txt에 있던 내용들을 처리하기 시작한다는 것을 알 수 있었습니다.



일단 리스트에 있던 내용은 전부 주문을 완료해서 주문완료라고 처리가 되는 것을 볼 수 있었습니다.


다음으로 시작하자 마자 매도주문도 모두 주문완료가 되는 것을 볼 수 있었습니다.



이제 pytrader에서 위 스크린샷처럼 모든 준비를 해서 실시간 투자를 들어가면, 어떤 상황이 나오는지 알아 보고자 합니다.



그런데 생각지도 않은 에러가 뜨면서 프로그램이 강제종료되는 현상이 벌어지는 것을 볼 수 있었습니다.



그리고 위 스크린샷처럼 pytrader가 응답없음 상태에 들어가는 것을 볼 수 있는데, 어딘가 코드가 충돌한 것은 아닌듯 하고, 아마도 데이터 베이스의 데이터가 많아서 메모리가 부족한 것이 아닌가 하는 생각이 듭니다. 실제로 이런 것이면 문제가 되는 것이, 제 주식 인공지능은 10초마다 실시간 정보를 얻어오게 했기 때문에, 초반에는 무리가 없다가도 후반에 들어가면 문제가 발생하는 것은 확정이 되었기 때문입니다.

반응형