프로그램의 시운전과 에러잡기 -57-
안녕하세요?
지난번 포스팅에서 어떻게 된 것인지 매도 주문이 성공한 적이 없어야 하는데, 있다는 식으로 기록이 되어 있어서 어디서 이런 오류가 있는지 모르겠지만, 일단 바로 잡기 위해서 움직여 보기는 봐야 겠다는 생각을 했습니다. 그래서 그 내용을 실험노트에 해당하는 이 블로그에 기록으로 남기고자 합니다.
먼저 무엇이 문제였느냐 하면, 어이가 없게도, 제가 프로그램을 만들면서 일단 다른 참고할 문장을 가지고 온 것은 좋은데, 문제는 그걸 안 지우고 그대로 놔 두어서 이런 문제가 발생하게 된 것입니다.
그래서 매도이든 매수이든, 이 필요가 없는 코드를 모두 주석처리 해 주어야만 했습니다. 왜인지 모르겠습니다만, 작성자 스스로가 이걸 만들어 놓고, 오류를 내고 있었습니다.
그리고 나서 이런 증거로 Sell_Order_Time이라고 해서 실제로 매도 명령이 내려진 적이 없습니다. 전부 명령의 실패냐 성공만 가리는 곳에서 나온 에러만이 있었습니다.
한번 어떻게 해서 필요 이상으로 마이너스가 된 할당된 재정이 나오는지 한번 보고자 합니다. 일단 처음으로 나온 상황인데, 이 경우에는 위 스크린샷에서 볼 수 있는 것처럼, 일단은 큰 문제가 없습니다. 종목은 실제로 매수가 일어났고, 실제로 사용된 자금이 다소 문제라면 문제인게, 계산상으로 2원이 키움증권에서 나오는 것 보다 더 나왔습니다.
그 다음으로 봐야 하는 것은, 바로 이런 종목에 대한 계산이 여기서는 큰 문제가 없이 지나 갔다는 것 입니다. 일단 decrease를 해 주어야 하는 경우에는 제대로 매수가 일어나지 않았으니 되는데
문제는 이런 상황임에도 불구하고 어느사이에 이런 식으로 심각한 마이너스가 되어 버렸는가 하는 것 입니다. 그래서 로그를 살펴봐야 하는데, 일단 이게 검색이 안되게 모두 그래픽으로 처리가 되어 있어서 난감하긴 난감합니다.
한가지 어이가 없었던 것이 바로 seperatedM과 initial account에 있던 보유하고 있는 금액이 겨우 0.1차이로 한번 더 계산이 되었고, 그 내용이 그대로 들어가 버린 것 입니다.
일단 이렇게 해서 오류가 있다는 것을 알고는 어떻게 하기는 했는데, 이 포스팅을 올려 보면서 생각하지 못한 부분이 보이기는 합니다.
그리고 나서 다음으로 해 주어야 했던 것은 우선 round함수를 제때에 쓰도록 해서 어떻게 큰 차질이 없기는 없도록 만들어 주는 것 입니다.
그리고 나서 패스한 경우에는 패스를 하였다고 일단 메세지를 남길 수 있도록 하는 것으로 마무리를 하였습니다. 일단 이렇게 하는 것으로 해서, 마무리를 지었습니다만, 문제는 이렇게 해서 포스팅을 올리는 것으로 무언가 문제가 보이기는 보였습니다. 그래서 다음 포스팅에서 다른 수를 쓰도록 해야 합니다.