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

미체결을 해결하는 과정에 들어가 보기

by 인터넷떠돌이 2019. 7. 18.
반응형

안녕하세요?

 

이번 포스팅에서 부터는 이전까지 계속해서 절 괴롭혔던 문제인 '미체결 수량'에 대해서 한번 다루어 볼까 합니다. 이게 왜 중요하냐 하면, 미체결 때문에 추가로 주문을 해서, 제가 의도했던 수량 이상의 주식을 보유하게 되고, 그 다음으로는 미체결 때문에 매도하고자 했던 의도했던 가격 미만으로 매도를 해서 손해를 보는 경우도 많았기 때문입니다.

 

먼저 해야 할일은 역시나 언제나 처럼 하던 1분봉 차트를 가지고 오는 것 입니다. 10 종목의 1분봉 차트를 모두 가지고 오도록 합니다.

 

그리고 나서 다음으로 해야 할일은 위 스크린샷에서 하는 것처럼 communication.txt에 가서, 한번 데이터 베이스 파일의 이름을 바꾸어 주도록 합니다.

 

그리고 나서 opt10075라는 TR을 요청하는 단계를 밟아 보도록 합니다. 여기서 나온 체결구분 1은 미체결된 것만을 조회하라느느 것이며, 매매구분은 매수인지 매도인지 구분하지 말고 모두 가지고 오라는 것 입니다.

 

그리고 나서 kiwoom.py로 가서, trigger04를 만들어 준 다음에, 이걸 시작하자 마자 False를 만들어 주도록 해야 합니다. 이렇게 하는 이유는 바로 중복되게 TR이 요청되는 것을 방지하기 위해서 입니다.

 

 

그리고 나서 키움증권 서버에서 나온 TR이 opt10075일 경우에 해당하는 메서드를 실행시키는데, 이게 계속 오면 계속 데이터 처리한다고 에러가 나니까, 그러지 말고 이렇게 trigger04가 지나가지 않은 상태 = False인 경우에만 하도록 합니다.

 

그리고 나서 kiwoom.py에 가서는 _opt10075라는 메서드를 만들어 주도록 합니다. 여기서는 for문을 이용해서 여러개의 중복된 데이터를 가지고 오도록 만들어 주도록 합니다.

 

그리고 나서 결과를 받아오기 위해서 일단 딕셔너리를 만든 다음, 초기화가 되도록 값을 빈칸으로 만들어 줍니다. 이렇게 해서 missing이라는 kiwoom.py에 있는 딕셔너리가 탄생한 것 입니다.

 

그리고 나서 딕셔너리에 해당하는 값들을 집어넣는 단계를 for문 안에다가 놔 두도록 합니다. 이렇게 하는 것으로 이제 다음의 작업이 이어지게 됩니다.

 

그리고 나서 이게 제대로 나오는지 아닌지를 알아보기 위해서 위 스크린샷과 같이 opt10075의 해당사항에 가서는 한번 missing이라는 딕셔너리의 내용을 print하도록 합니다.

 

그리고 나서 한번 확인을 해 보니까, 위 스크린샷처럼 제대로 나오는 것을 볼 수 있었습니다. 문제는 아직 미체결인 물량이 없기 때문에, 제대로 알기 어렵다는 것이 단점입니다.

 

그리고 나서 이게 들어간 MyStockTrader가 제대로 작동하는 것을 확인할 수 있었습니다. 이제 이걸 바탕으로 해서, 다음 작업을 이어가야 하지만, 너무 포스팅의 내용이 길어져서 하는 수 없이 여기서 끊어야 했습니다. 이제 남은 내용에 대해서 다음 포스팅에서 이어서 올리도록 하겠습니다.

반응형