안녕하세요?

 

지난번 포스팅에서 너무 길어지는 감이 있어서 한번 끊었는데, 이번 포스팅에서 매수가 전혀 일어나지 않는 문제를 해결하기 위해서 계속해서 발걸음을 떼어 보기로 해 보겠습니다.

 

먼저 위 스크린샷과 같이 만약에 단 1개의 매수도 일어나지 않아서 데이터가 없을 경우가 나올 수 있는데, 이럴 경우를 대비해서 위 스크린샷에서 볼 수 있는 것처럼 if not 구문을 이용해서 이런 경우 0처리를 해 주도록 합니다.

 

이렇게 해서 pytrader4는 제대로 작동을 하는 것을 확인할 수 있기는 있었습니다. 이제 addtionalcosts.db에 가서, 매수를 하지도 않았는데 매입가가 표시되는 일이 일어나는지 아닌지 알아보고자 합니다.

 

그래서 위 스크린샷에서 볼 수 있는 것처럼 일단 데이터 베이스 파일을 열어본 결과, 제대로 매입가가 기록이 되지 않는 것을 볼 수 있었습니다. 이제 다른 종목에서도 작동이 잘 되는지 알아보고자 합니다.

 

 

다음으로는 pytrader4_1.py로 가서, 이제까지 했던 코딩을 다시 해 줘서, 다른 종목에서는 다른 결과가 나오는 지를 확인해 보도록 합니다.

 

실행을 시키자 마자 어떤 문제가 발생하는 것을 알 수 있었습니다. 이 문제의 원인은 미리 정의되지 않은 변수를 호출해서 사용하고자 해서, 아무런 값도 없기 때문에 이런 에러가 생기는 것 입니다.

 

그래서 try: except로 예외처리를 하도록 하는데, 여기서는 UnboundLocalError를 예외처리로 두어서 에러가 발생할 경우에 각각의 값을 0으로 주도록 합니다.

 

이렇게 해서야 이제서야 에러가 없이 실행이 되었으며, 이제 데이터 베이스를 확인해서 매수가 일어나지 않았는 데도 데이터 베이스에 매입가로 현재가가 기록이 되는 일이 없는지 확인해 보아야 합니다.

 

그렇게 해서 데이터 베이스를 확인해 본 결과, 여기서도 전혀 기록이 되지 않고서 프로그램이 실행이 되는 것을 확인할 수 있었습니다. 이렇게 해서 여기서는 어떻게 문제가 해결이 되었습니다.

 

그리고 제대로 살펴보니까, 한가지 오류를 범했는데, 현재가는 데이터가 없다고 해도, 0으로 처리할 수는 없습니다. 그래서 Kiwoom.py에 있는 ohlcv라는 dict에 있는 close를 가지고 오도록 합니다.

 

그런데 어떻게 된 것인지 모르겠습니다만, 위 스크린샷처럼 에러가 발생하는 것을 확인할 수 있었습니다. 이 에러의 원인이 무엇인지 이제 확인하는 단계가 남았습니다만, 일단 이번 포스팅도 너무 길어지는 감이 있기는 있으니, 여기서 끊도록 하고, 다음 포스팅에서 이어서 이 문제의 해결책에 대해서 올려 보도록 하겠습니다.

+ Recent posts