[키움 조건검색식 주식자동매매(19)] 금일 매수한 종목에 대하여 분할 익절하기
본문 바로가기

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

[키움 조건검색식 주식자동매매(19)] 금일 매수한 종목에 대하여 분할 익절하기

반응형

 이전 강의해서 분할 매수 및 미체결/체결 잔고에 대해서 코딩해 보았습니다. 이번 강의에서는 주식 체결 정보를 바탕으로 원하는 가격에 분할 익절 하는 코딩을 알아보도록 하겠습니다.

 

 1. GUI 복습하기

 아래는 이전 강의에서 설명드린 익절 GUI 입니다. 총 2번에 걸쳐 익절을 하는 것이고 본인 성향에 따라 더 많이 하셔도 무방합니다.

반응형

익절 GUI
익절 GUI

 아래와 같이 각 콤보박스마다 objectName을 설정한 것을 기억하시죠? 이 값을 바탕으로 익절을 시작할 것입니다.

ObjectName
ObjectName

 2. 익절 코딩하기

 익절 코딩을 위해 7가지로 분할해 알아보겠습니다.

 

익절 코딩
익절 코딩

 (1) jango_dict는 저번 강의에서 매수주문 넣은 종목이 "체결" 되었을 때 오늘 산 종목의 정보가 저장되는 곳이라는 것을 기억하시죠? 우선 jango_dict에 종목 코드가 있는지 그리고 주문 가능 수량이 0주 이상인지 확인합니다.

 (2) 그리고 체결 정보가 존재한다면, jango_dict에 있는 종목 정보를 jd에 할당합니다. 이렇게 하는 이유는 jango_dict에 대한 정보를 져올 때 jd만 쳐서 코딩을 쉽게하기 위한 것입니다.

 (3) 현재가 대비 매입가가 얼만큼 증가/감소했는지 확인하는 구간입니다. (현재가 - 매입가) / 매입가 * 100을 하면, 몇 프로 상승 또는 하락했는지 계산 가능합니다. 그리고 소수점 계산이 되면 복잡하니 round함수를 사용해 소수점 첫 째짜리에서 반올림시킵니다.

 (4) meme_rate가 우리가 생각하는 기준 가격 이상이 되면 매도를 실행합니다.

 (5) 매도 시 중복 매도를 피하기 위해 orderitemlist_5를 확인하고 중복 매도가 아니라면, qwait(2000) 즉 2초를 대기 후 매도를 실행합니다. 그 이유는 너무 빈번히 매도 되면 키움 네트워크에서 서버를 종료시키기 때문입니다. 그리고 매매 가능 수량은 우리가 매수하려는 금액 mesu_price에 5차 수량(0.5)을 곱하여 매수 금액을 재 계산한 후 우리가 매수하려는 금액을 나눠 매매 가능 수량을 정합니다. 예제로 설명드리면 100만 원 치 매수하려고 할 때 5차 수량을 0.5로 하면, 50만 원 치 매수할 수 있으며, 매수 시작가가 1만 원이면 50주 매도된다는 뜻힙니다.

 그리고 중복 매도를 방지하기 위해 orderitemlist_5에 현재 매매하려는 코드를 넣습니다. 앞으로 orderitemlist_5에는 매매 코드가 들어가 있으므로 이번 코드는 가동되지 않습니다.

 SendOrder 함수를 사용하여 매도 명령을 수행합니다. 매수와 다른 점은 self.account_num 옆에 2라는 숫자입니다. 매수는 1이었습니다. 그 외 들어가는 여러 정보들은 이전 강의를 참조하시기 바랍니다.

 (6) DB를 구축하는 곳입니다. open함수를 사용하여 원하는 이름의 txt파일을 만들고 각 정보들을 write함수를 사용하여 입력합니다.

 (7) 매수가 성공적으로 되었다면 0을 반환하고 그렇지 않으면 1을 반환합니다.

 

 이런 식으로 컨트롤 + C, 콘트롤 + V (복사/붙여 넣기)하시면 원하는 가격과 수량에 분할 익절이 가능하게 됩니다.

 위의 분할 익절에 대한 코드 설명은 분할 매수/매도 강의에 아주 자세히 설명되어 있으니 설명이 부족하다고 느끼시는 분들은 이전 강의를 복습하시기 바랍니다. 그래도 이해가 되지 않으시면 댓글 달아 주십시오. 가능한 범위에서 설명드리겠습니다. 감사합니다.

반응형

.link_tit