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

오류와의 전쟁인 첫 모의투자 투입-2-

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

안녕하세요?


이번 포스팅은 일종의 좌우충돌인 여러가지 시도들을 보여주었고, 그걸 바탕으로 해서 계속해서 오류가 어디에서 일어나는 지 알아보고자 하는 과정을 그린 포스팅이 되어서, 필요한 내용만을 얻어가고자 하는 분들에게는 다소 실망스러울 수 있습니다. 거기다가 결정적으로 계속해서 발생하는 오류를 잡아내지도 못했습니다.



일단 다른건 몰라도, 계속해서 현재의 결정이 아닌, 과거의 결정이 현재의 행동에도 반영이 되는 문제는 결코 좌시할 수는 없었습니다. 그래서 이제는 txt파일을 읽어도, 리스트의 제일 마지막에 있는 행만을 읽으라는 식으로 바꾸었습니다. 그리고 행동완료를 나타내는 것은 일단 뒤로 미루기로 했습니다.



그러자 이번에는 관망확인같은 것이 아주 여러개 나오던 것을 그냥 한번의 행동으로 바꾸어 주는 것을 볼 수 있었습니다. 이로 미루어 보아서 불 필요한 행동은 하지 않는 것으로 바뀌었다는 것을 알 수 있었습니다.



그리고 나서 어디서 또 에러가 나오는지 모르겠지만, 여기서 나오는 것으로 일단 의심이 되어서, 위 스크린샷과 같이 표식을 찍어서 두도록 했습니다.



이렇게 하는 것으로 정상적일 때는 포맷을 바꾸기 위해서 자주 이 kiwoom.py에 있는 이 메서드를 찾는다는 것을 알 수 있었습니다만.....



그래도 역시나 위 스크린샷처럼 계속해서 원인을 모르는 듯한 에러에 걸려서 그대로 프로그램이 정지되어 버리는 것을 볼 수 있었습니다.



혹시 몰라서 한번 kiwoom.py에 있는 다른 메서드에서 에러가 걸린 것인가 싶어서 표식을 남겨 보았지만, 그다지 도움이 되는 내용이 나오지는 않았습니다.




다음으로는 change_format()메서드에서 기존에는 오류로 표시가 되어 있던 ,d라는 항목을 그냥 콤마만 있도록 바꾸어 주도록 합니다.



그리고 아래에 있는 변수 = '-'+변수 가 무슨 의미인지 알아보기 위해서, 한번은 Pycharm에 있는 콘솔을 작동시켜 보아서, 확인을 해 보았더니, 일단 -값에서 앞에 -가 떨어져 나간 format에다가 -를 붙여주는 것이라는 것을 볼 수 있었습니다.



그래서 한번 위 스크린샷처럼 if문을 넣어서 -가 한개 더 붙어서 --가 되어서 에러가 나온 것이 아닌가 하는 생각이 들어서, 이런 경우에는 정상적인 마이너스의 수로 바꾸기 위해서 -가 하나만 들어가도록 바꾸어 주도록 합니다.



하지만 이렇게 하고도 여전히 에러가 발생하는 것을 볼 수 있었습니다. 그래서 위에서 만든 if문은 일단 지우기로 했습니다. 그리고 나서 다음으로 행한 것은.......



일단 다시 실행시켜 보니, 위 스크린샷과 같이 이번에는 change_format()말고도 다른 표식에서 또 에러가 나오는 것을 볼 수 있었습니다. 아무래도 2가지 다른 종류의 에러가 섞여 있는 것이 아닌가 하는 생각이 들었습니다.



그래서 일단 에러가 나오는 것을 막아보기 위해서 위 스크린샷처럼 return을 넣어보는 작업을 해 보도록 했습니다. 




그럼에도 불구하고, 위 스크린샷처럼 새로운 표식까지 찍어보고 해 보았지만, 여전히 같은 곳에서 계속해서 에러가 발생하는 것을 볼 수 있었습니다.



거기다가 또 다른 에러가 나오는 것을 볼 수 있었습니다. 이 에러가 어디가 에러인지 제대로 나오는 코드도 아니고 해서, 인터넷-구글링을 해봐도 여전히 답이 안 나오는 것을 볼 수 있었습니다.



그래서 한번 위 스크린샷과 같이 스톱 포인트를 Pycharm에서 찍어주는 것으로 하고, 한번 디버그 모드로 돌려보고자 했습니다. 이렇게 해서 어디가 문제인지 알아낼 수 있기를 바랬습니다.



일단 에러가 어디서 나오기는 나오는 것을 볼 수 있었는데, 제 기대와는 다르게 충돌이 일어난 코드를 보여주는 것은 아니라는 것을 볼 수 있었습니다.



일단 위 스크린샷처럼 이렇게 commRqData메서드에서 문제가 생긴것이 아닌가 해서 표식을 찍어 보기도 했지만, 결과는 그렇게 시원치는 않았습니다.



그래서 하는 수 없이 다량의 스톱포인트를 찍어주는 방식을 취한 다음에, 위 스크린샷처럼 디버그 모드를 돌려보도록 했습니다. 하지만 이러고도 정확한 오류가 어디서 발생한 것인지를 찾아낼 수가 없어서 oCam을 사용해서 한번 녹화해 보았습니다. 그리고 나서 이를 분석해서 한번 어디가 오류인지 알아보고자 합니다.

반응형