[키움 조건검색식 주식자동매매(22)] 미체결 잔고 취소 후 재매수/매도(완강)
본문 바로가기

주식 자동매매 강의/중급반(시황 및 차트 구현)

[키움 조건검색식 주식자동매매(22)] 미체결 잔고 취소 후 재매수/매도(완강)

반응형

 키움 조건 검색식 기반 자동매매 마지막 강의입니다. 당분간 자동매매 만드는 강의는 없을 듯합니다. 수고하셨고 마지막은 미체결 잔고 재매수 및 매도하기를 해보겠습니다.

 

 1. 미체결 잔고(18강 복습)

 미체결 잔고에 있는 종목 중에서 체결되지 않고 계속 남아있는 경우(급등 또는 급락) 빠르게 잔고를 정리할 필요가 있습니다. 그러기 위해서는 미체결 잔고에 있는 데이터를 알고 있어야 하겠죠? 아래는 18강에서 진행했던 코딩입니다. 미체결 잔고에는 15개 정도의 정보가 들어가 있는 것을 확인할 수 있습니다.

반응형

미체결 잔고
미체결 잔고

 

 2.  기존 매수/매도 정보 취소

 원하는 종목이 급등 시 시장가로 매수하지 않는 이상 매수하기가 어렵습니다. 매수 주문이 들어가더라도 현재가보다 한참 낮은 가격에 매수주문이 들어가 있겠지요. 따라서, 아래와 같이 매수 정보를 취소하고 재매수를 하셔야 합니다.

기존 매수정보 취소
기존 매수정보 취소

 (1) 만약 미체결잔고 not_account_sotck_dict의 길이가 0 이상이면, 아래 코드를 실행합니다. not_account_sotck_dict에 한 종목이라도 들어 있으면 확인해 보겠다는 뜻입니다.

 (2) not_account_sotck_dict에 들어있는 key정보인 주문번호를 가져옵니다. 그리고 그 종목은 코드번호, 주문가격, 미체결 수량, 주문 구분 데이터를 저장합니다. 이 4가지 정보는 핵심 정보입니다.

 (3) 주문 구분이 매수이고 미체결 수량이 0개 이상이며, "주문 가격이 현재가보다 작을 경우(본인이 원하는 조건)" 매수 취소를 실행합니다.

 (4) SendOrder를 이용해 주문을 전송하고 매수 취소는 account_num 옆에 3입니다.

 (5) 주문이 성공 또는 실패인지 확인합니다. 매수 취소가 성공하면, self.cancel_the_buy라는 방에 취소된 종목코드와 수량을 딕셔너리로 저장합니다.

 (6) 매수 취소의 데이터베이스를 구축합니다.

 (7) 만약 미체결 잔고가 0이 된다면 관련 주문번호의 종목 정보를 삭제합니다.  

 

 이번에는 매도 정보를 취소해 보겠습니다. 매수 정보 취소 대비 딱 3개만 다릅니다.

기존 매도정보 취소
기존 매도정보 취소

 (1) 주문 구분이 이전과 다르게 "매도"입니다.

 (2) 3이었던 거와 달리 4입니다.

 (3) cancel_the_sell에 코드와 수량을 딕셔너리로 저장합니다.

 나머지는 다 동일입니다. 

 

 3.  매수/매도 취소된 종목의 재매수/재매도

 매수 취소된 종목에 대하여 재매수를 실시합니다.

매수 취소된 종목의 재매수
매수 취소된 종목의 재매수

 (1) 매수 취소된 종목의 코드번호를 가져옵니다.

 (2) 처음 설정했던 매수 가대 비 현재가가 낮을 때 매수를 시작합니다(기준은 본인이 원하는 대로 설정하시면 됩니다)

 (3) orderitmelist를 이용해 중복으로 재매수가 되지 않게 합니다.

 (4) SendOrder 함수를 이용해 재 매수를 시작하며, 매수수량은 self.cancel_the_buy에서 가져옵니다. 그리고 현재가에 다시 매수 주문을 넣습니다. 이때 저는 지정가로 다시 넣었는데 시장가로 넣으시면 바로 매수됩니다. 급등종목일 수 있으니 시장가도 괜찮을 듯합니다.

 (5) 데이터 베이스를 구축합니다.

 (6) 재매수가 제대로 되었는지 확인합니다.

 

 매도 취소된 종목에 대하여 재매도를 하겠습니다. 재매수 대비 크게 4가지가 다릅니다.

매도 취소된 종목의 재 매도
매도 취소된 종목의 재 매도

 (1) 매도 취소된 종목의 코드 번호를 가져옵니다.

 (2) 각자 코드에 맞게 orderitmelist를 이용해 중복 재매도를 막으세요.

 (3) 매도는 1이 아니라 2 입니다.

 (4) 수량은 cancel_the_sell에서 가져옵니다.

 나머지는 다 동일합니다.

 

 위의 코드는 재매수/매도에 대하여 1번 실행하게 해 두었습니다. 코드를 여러 개 붙여 재매수/매도를 여러 번 수행할 수 있게도 할 수 있고 다양한 방향에서 4차원 적으로 코딩할 수 있으니 여러분들의 입맛에 따라 수정하시면 됩니다. 기초 틀은 다 말씀드린 것 같습니다. 이제 여러분들만의 코드를 만드시기 바랍니다. 22강까지 수강하신다고 고생하셨습니다.

 

 서두에 언급드렸지만 당분간은 강의는 올리지 않아도 이 정도면 여러분 스스로 자동매매를 코딩할 수 있다고 생각합니다. 따라서, 자동매매 코딩보다는 머신러닝/현 프로그램 수익률/시황 등의 정보 위주로 포스팅하겠습니다.

반응형

.link_tit