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

pytrader를 만드는 실습에 들어가기-14-

by 인터넷떠돌이 2018. 12. 4.
반응형

안녕하세요?


정말 새벽4시가 될때까지 어떻게 힘을 내서 있는 힘껏 해결책을 찾아 보았습니다만, 그래도 상황이 그다지 좋지는 않았습니다. 그러다가 한번 모의투자로 현금구매를 눌러 보았는데, 이것마저도 분명히 제 계좌이고, 전에는 거래에 성공했는데도 타인계좌라는 오류 메세지가 나오는 것을 볼 수 있었습니다.



그래서 아침이 되어서야 문뜩 떠오른 것이 바로 PyCharm을 지난번에는 관리자 권한으로 실행하기는 했는데, 이번에는 그냥 실행을 했는 차이가 있다는 것 입니다. 그래서 한번 관리자 권한으로 실행을 시켜 보았습니다.



혹시나 싶어서 "ACCNO"라고 되어 있는 부분을 모두 "계좌번호"라고 바꾸어서 원래대로 만들어 주도록 해 봅니다. 이렇게 하는 것으로 일단은 프로그램을  실행시켜 보았습니다.



이번에는 타인계좌라는 오류메세지가 나오지 않고, 반대로 프로그램이 오류로 인해서 정지되는 것을 볼 수 있었습니다. 어딘가가 문제가 생겼다는 것인데, 일단 제대로 타인계좌가 아니라고 생각하고, 다시 어느 부분이 에러인지 알아보는 과정에 들어가 보아야 합니다.



일단 TR데이터를 받는 부분에서 재대로 TR코드는 가지고 오는지, 그리고 메서드는 제대로 호출이 되는지를 알아보기 위해서 위 스크린샷에 보이는 것처럼 print()함수로 표식을 찍어 놓았습니다.



일단 제대로 TR을 받는 메소드가 실행이 되는 것을 확인할 수 있었으며, TR코드도 제대로 가지고 오는 것을 확인할 수 있었습니다. 즉, 제대로 정보를 받아오는 것은 맞는데, 이후가 문제가 아닌가 합니다.



그래서 opw00018이 오면, 이후에 호출이 되는 _opw00018()에다가 위 스크린샷과 같이 한줄한줄 print()메소드로 문자열을 출력하게 만들어서 어느 줄에서 에러가 발생하는 지를 알아보고자 합니다.



그리고 나서 위 스크린샷처럼 한번 해 보니, 9번째 줄에서 문제가 일어나는 것을 확인할 수 있었습니다. 그래서 이게 어디가 문제인지 한번 보고자 합니다.



위 스크린샷을 보면, 문제가 된 줄에서는 change_format()이라고 해서 총 수익률(total_earning_rate)라는 항목의 폼을 변형하는 데 문제가 생긴 것을 볼 수 있었습니다.




그래서 change_format()에 무슨 일이 생긴 것인가 싶어서, 여기에서도 한번 줄마다 print()로 표식을 찍어서 어느 줄에서 에러가 발생한 것인지 알아 보고자 합니다.



여기서는 제대로 값을 가지고 오는 것 까지는 확인이 되는데, format을 바꾸는 것에서 에러가 나오는 것을 확인할 수 있었습니다.



어디가 문제인가 했더니, 소수점이 있는 실수를 그대로 int()라는 함수로 정수로 바꾸려고 하니 에러가 나오는 것 이었습니다. 그래서 이런 문제를 해결하기 위해서는 위 스크린샷처럼 float()이라는 함수를 넣어서 한번 작업을 해 보도록 합니다.



수 많은 삽질 끝에 드디어 완성이 되었습니다. 처음에는 휴먼에러가 나서 제대로 되지 않았고, 두번째 타인계좌라고 내 계좌인데 타인계좌라고 나오는 것은 바로 관리자 권한이 없어서 생긴 문제였으며, 마지막으로 포멧을 변형하는 것에서 어떤 문제가 생겨서 여기까지 질질 끌리게 된 것입니다. 아무튼 이렇게 해결이 되니 개운하기는 개운합니다.

반응형