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

수요일에도 계속되는 주식 모의투자에 도전하기

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

안녕하세요?


아마 이 포스팅을 읽으시는 분들은 빨라도 목요일은 되시리라 생각은 합니다만, 일단 제 경우에는 어제 했던 일을 올릴 수 밖에 없어서 2019년 1월 23일 수요일에 인공지능 주식 투자자를 돌린 결과에 대해서 포스팅을 할 수 밖에 없었습니다. 아무튼 이해할 수 없는 오류가 발생하는 것을 보았고, 그걸 잡기 위한 다양한 시도를 하였고 그 내용을 포스팅 하고자 합니다.



먼저 마커를 찍어 놓은 befor d2_deposit이라는 것이 정상적인 경우에는 찍히는 것을 확인은 할 수 있었습니다. 그럼 에러가 나온 경우에는 어떤지를 한번 살펴보겠습니다.



에러가 나오는 경우에는 receive_tr_data라고 하는 마커가 찍혀서 TR데이터를 받는 메서드는 실행이 된다는 것을 알 수 있었습니다. 그런데 어떻게 된 것인지 몰라도 예수금을 찾는다고 하는 마커가 찍히지 않은 것을 확인할 수 있었습니다.



분명히 OPW0001이라는 TR이 오게된다면, 위 스크린샷과 같이 찍어둔 마커가 나오게 되어 있는데 안 나오는 것으로 보아서 여기서 에러가 난 것이 아닌가 하는 생각이 듭니다.



그래서 혹시나 싶어서 키움증권에서 _comm_get_data라는 메소드를 더 이상 지원하지 않을 계획이라고 합니다. 그래서 이것 때문에 에러가 난 것인가 싶어서, 한번 위 스크린샷과 같이 데이터를 가지고 오는 메소드를 아예 _get_comm_data라는 메서드로 바꾸어 보고자 합니다.




일단 그렇게 해도 에러가 나올 때는 나온다는 것을 알 수 있었습니다. 어떻게 된 것인지는 몰라도 분명히 OPW0001이라는 TR을 요청한 것은 맞고, 분명히 가지고 오는 메서드를 바꾼것도 맞는데 왜 이런 에러가 생기는 것인지 아직은 모르겠다는 생각이 듭니다.



어느 스톱포인트가 에러를 일으키는 가 했더니, 위 스크린샷처럼 CommRQData를 작동시키기 위한 파이썬의 메소드에서 에러를 일으키는... 더 정확히는 데이터가 올 때까지 기다리는 이벤트 루프를 돌리다가 이 이벤트 루프를 종료하라는 명령이 있는데서 에러가 나오는 것으로 보입니다.



일단 콤플레이어의 비디오 플레이어까지 동원해서 확인해 보기는 했지만, 특별히 이상이 있다는 생각이 들지는 않기는 않았습니다.



그래서 먼저 했던 일은 위 스크린샷처럼 혹시나 싶어서 저렇게 screen no를 바꾸는 작업을 해 보도록 했습니다. 이게 겹치는 부분이 있어서 혹시 에러가 생긴 것이 아닌가 하는 생각이 들었습니다.




다음은 혹시나 싶어서 여기서도 에러가 난 것이 아닌가 싶어서 한번 위 스크린샷처럼 TR데이터를 받기 위한 메서드에도 스톱 포인트를 집어 넣어 주도록 했습니다.



그리고 나서 다시한번 실행을 시키고, 또 에러가 발생하자, 이번에는 위 스크린샷처럼 또 곰플레이어를 돌려서 한번 어디서 에러가 발생한 것인가를 살펴보니, 위 스크린샷처럼 또 같은 위치였습니다.



역시나 이벤트 루프를 끝내기 위한 곳에서 에러가 발생하였으며, 일단 끊어진 곳의 장소는 확실하게 같다는 것을 알 수 있기는 있었습니다.



그리고 다음은 디버그시에 변수들의 항목인데, 제가 설정한 대로 제대로 반영이 된다는 것 까지는 알 수 있었습니다. 그래서 불행중에 다행으로 screen no는 큰 문제는 아니라는 것은 알 수 있었습니다.




실제로 이건 제대로 정상적인 작동이 될 때까지도 이렇게 해서 나온다는 것을 알 수 있었습니다. 그럼 다음으로 어디가 문제인지 알아봐야 한다는 것인데...... 도통 감이 잡히지 않습니다.



그래서 일단 에러가 일어나기 전에 위 스크린샷처럼 OPW0001일 경우 실행이 되라는 메소드는 거친다는 것 까지는 알  수 있었습니다.



그런데 문제는 이게 분명히 위 스크린샷처럼 opw0001은 이미 요청이 되었는데 또 다시 이런 문제가 벌어졌다는 것을 보여주고 있습니다.



그래서 이번에는 TR이 혹시나 중복으로 2번이나 같은게 요청이 되어서 이런 일이 벌어진 것은 아닌가 하는 생각이 들어서 한번 rqname을 출력해 보도록 표식을 찍었습니다. 그런데 문제는 이때는 이미 오후 3시 30분을 넘어가 버려서 내일을 기약해야 하는 시간이 되어 버리고 말았습니다. 이게 연속으로 일어나느냐 하면 그것도 아니고, 안 일어날 때는 몇 시간이고 안 일어나다가 일어나는 순간에는 또 10분 단위로 일어나는 바람에 정말로 에러가 일어나는  순간을 디버그로 잡아내기도 난감하다는 생각이 듭니다.

반응형