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

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

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

안녕하세요?


오른손 중지의 감염된 상처도 어느정도 나아지고 있으면서 이제 그나마 자유롭게 움직일 수 있게 되었습니다. 아무튼 이런 기회에 그동안 밀린 것을 들어가 보는 데는 성공했는데, 우선 가장 먼저 해야 할 일이 두뇌역할을 하는 RLTrader에서 사거나 팔라는 결정을 내렸을 때, 이 결정이 어느 타이밍에 내렸는지 알아볼 필요가 있습니다.



먼저 시간을 표시하기 위해서는 datetime이라는 모듈이 필요하기 때문에, RLTrader에서는 위 스크린샷과 같이 import를 해서 새로운 모듈을 들어오도록 합니다.



그리고 나서, 기존에 있던 agent모듈에서는 현재 시간 중에서 시간, 분, 초만 추려서 이를 txt파일에 기록해 주라는 식으로 만들어 주도록 합니다.



당연하다면 당연 하게도 아까는 매수에 이런 명령을 내렸다면, 이번에는 매도에서 이런 같은 코드를 복사해 주도록 하고, txt파일에 기록하는 양식을 바꾸어 주도록 합니다.



일단 이전에 pytrader를 성공적으로 작동하고 정상적으로-code 0로 종료했기 때문에, 그냥 RLTrader를 작동 시키도록 합니다.



RLTrader를 가동시킨 결과, 위 스크린샷처럼 알수없는 숫자열이 나오는 것을 볼 수 있는데, 이게 시간을 의미하는 숫자들의 나열이라고 생각합니다.




그리고 나서 지난번에 없앴는 self.load_buy_sell_list()라는 메서드를 초기화가 되자마자 작동을 시키도록 코드를 바꾸어 주도록 합니다.



일단 수량부분에서 엉뚱한 숫자가 들어가 있는 것을 볼 수 있었습니다.



알고보니 txt파일로 만들어 주는 문자열 양식이 잘못되어서 생기는 오류였습니다. 일단 이 오류를 바꾸어 주도록 하고, 문자열에서 뒤에서 2번째 자리에 이 날짜가 들어가도록 바꾸어 주도록 합니다.



일단 바꾸어준 결과, 위 스크린샷처럼 시간이 그럭저럭 보기 좋도록 바뀌어 진 것을 볼 수 있었습니다.



그리고 나서 일단 pytrader를 작동만 시키도록 하고, RLTrader까지는 작동시키지 않도록 합니다. 이렇게 하는 것으로 일단 txt파일에 있는 매수나 매도전의 주문을 작동시키고자 하는 것 입니다.




일단 여기서는 어떻게 된 것인지는 몰라도, 매수전이 주문완료로 바뀌지 않는 것을 볼 수 있었습니다.



거기다가 상태 란에 이상하게도 시간이 위치하는 것을 볼 수 있었습니다.



그래서 이게 어디가 문제인가 했더니, 먼저 기존에는 timeout이라는 메소드가 1초마다 호출이 되면서 위에서 빨간색 밑 줄을 친 trade_stocks()라는 메소드가 작동을 했는데, 이걸 load_buy_sell_list()메서드의 마지막에 두도록 합니다.



일단 바뀐 메소드로 제대로 작동이 되는 것은 확인할 수 있기는 있었습니다.



이렇게 하고자서 이제서야 주문완료라고 뜨면서, 일단 모의투자에서 주문이 가능한 시간대가 아니라고 해도, 이 텍스트 파일을 읽어서 한번 작동을 하는 데 까지는 성공했다고 할 수 있습니다. 그런데, 이게 마지막이 아니라 아직도 해야 할 일이 많이 남아 있습니다. 다음 포스팅 부터 관련된 내용을 차례대로 올리도록 하겠습니다.

반응형