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

2019년 5월 30일 주식 모의투자에 들어가 보기 part2

by 인터넷떠돌이 2019. 5. 31.
반응형

안녕하세요?

 

지난번 포스팅에서 한번 끊었는데, 일단 Average_returning에서 조작을 하는 것 까지는 보여드렸습니다. 이제 남은 내용은 어떻게 하면 제대로 이걸 에러없이 적용할 수 있느냐 하는 것 입니다.

 

일단 어떻게 될지 모르기 때문에, 먼저 매입가에 대해서는 당장은 주석처리를 해 주도록 합니다. 삭제하기에는 아깝고, 그렇다고 그냥 살려주자니, 지금 당장은 에러를 일으킬 우려가 있기 때문입니다.

 

다음으로는 위 스크린샷에서 나와 있는 것처럼, 매입가나 현재가가 공백일 경우도 대비해 보도록 합니다. 왜 이렇게 하느냐 하면, 먼저 계좌정보에서 매입가와 현재가는 나오지 않을 수도 있기 때문에, 이는 상당히 심각한 결과를 초래할 수도 있기 때문입니다.

 

다음으로는 위 스크린샷에서 볼 수 있는 것처럼 Average_returning에서 붉은 박스 안에 있는 내용처럼 먼저 주석처리된 매입가 항목을 해제하고, 여기서 공백-왜 공백이 되느냐 하면, 주식을 1주도 보유하지 않아서 매입가가 없거나, 혹은 모의투자 계좌정보까지 업데이트가 늦어지거나 하는 일이 일어날 경우, 매입가를 기존의 additionalcosts.db에서 찾도록 하고, 그렇지 않다면, 매입가는 부모 프로세스가 보내온 데이터를 바탕으로 하도록 했습니다.

 

다음으로 해야 할 일은 별거 없이, 기존에 자식 프로세스인 Average_returning으로 보낼 데이터 항목에 위 스크린샷처럼 매입가와 현재가가 추가로 들어가게 만들어 주는 것 입니다.

 

 

그리고 다음으로 해야 할 일은 pytrader4에서 만약에 매수라는 명령이 나오게 되면, 여기서는 가지고 온 self.purchasePrice가 0인 상황 = 즉, 서버에서 넘겨받은 매입가의 정보가 없는 상황이라면 여기서 현재가를 그대로 additionalcosts.db에 저장을 하도록 명령합니다.

 

그리고 나서 다음으로는 만약에 서버에서 넘겨받은 매입가가 있다면, 자식프로세스에 들어가기 전에 이 값으로 업데이트를 하라는 식으로 명령해 줍니다.

 

그리고 나서 pytrader4를 실행시켜 보았습니다만, 문제는 위 스크린샷과 같이 에러가 뜨는 것을 확인할 수 있었습니다. 이게 무슨 에러인지 한번 보니........

 

앞서서 전혀 정의가 되지 않았는 self.purchasePrice라는 변수에 아직 정의가 내려지지 않았는데, 이 변수의 값을 집어넣으라고 했으니 에러가 발생하였습니다. 그래서 이 값을 기존에 있는 값으로 바꾸어 주도록 합니다.

 

이렇게 하고나서 다시한번 pytrader4를 실행시키니까, 이제서야 에러없이 진행이 되는 것을 확인할 수 있었습니다. 이렇게 하는 것으로 봐서는 실행에는 문제가 없을 것으로 생각이 되었습니다.

 

다만 이렇게 실행을 시켜 보는 것으로 한가지 문제가 나오는 것이, 현재가가 pytrader4가 한번 돌때마다 기록해서 데이터 베이스의 용량이 눈덩이처럼 불어날 가능성이 있어 보입니다. 다만, 이 문제는 나중에 해결하도록 하고, 지금은 지금의 문제에 집중하도록 합니다.

 

그런데 유감스럽게도, 이렇게 매입가를 가지고 오는 코드를 짜는데 너무 시간일 허비한 탓인가요? 이제는 주식시장이 막을 내려서 그전에 나온 거래를 정리해 보았습니다. 위 스크린샷에서 붉은글씨 처리가 된 부분은 손해보는 거래를 한 부분입니다.

 

그리고 다행이라면 다행이라고 해야 할까요? 세금까지 포함해서 제가 만든 공식을 제대로 매입가에 적용이 되었으면 손해를 보지 않을 수도 있었는데, 문제는 매입가가 제대로 적용이 되지 않아서 벌어진 에러에 대해서는 여지없이 매도하지말아야 하는데 매도한 것을 볼 수 있었습니다.

반응형