이전 강의에서는 금일 매수한 종목에 대하여 분할 익절 하기를 코딩하였다면, 이번 강의에서는 분할 손절하기에 대하여 알아보겠습니다. 크게 바뀌는 것이 없으니 천천히 읽어 보시면 될 것 같습니다.
1. GUI 복습하기
아래는 이전 강의에서 설명드린 손절 GUI 입니다. 총 2번에 걸쳐 손절을 하는 것이고 본인 성향에 따라 더 많이 하셔도 무방합니다. 아래와 같이 각 콤보박스마다 objectName을 설정한 것을 기억하시죠? 이 값을 바탕으로 손절을 시작할 것입니다.
2. 손절 코딩하기
손절 코딩을 위해 5가지로 분할해 알아보겠습니다. 저번 익절 코딩에서 jango_dict에 현재 코드가 들어 있는지는 확인하였으니 이번 손절 코딩에서는 없어도 됩니다.
그리고 현재가 대비 매입가가 얼마큼 증가/감소했는지 meme_rate에 계산하였던 거 기억하시죠? 이 부분도 그대로 사용하시면 됩니다.
(1) meme_rate가 우리가 생각하는 기준 가격 이하가 되면 매도가 수행됩니다. 현재 코딩에서는 7차 가격 이하면 매도되게 되어있군요. 7차 가격은 protfolio_stock_dict에 저장되어 있습니다.
(2) 매도 시 중복 매도를 피하기 위해 orderitemlist_7를 확인하고 중복 매도가 아니라면, qwait(2000) 즉 2초를 대기 후 매도를 실행합니다. 그 이유는 너무 빈번히 매도되면 키움 네트워크에서 서버를 종료시키기 때문입니다. 그리고 매매 가능 수량은 우리가 매수하려는 금액 mesu_price에 7차 수량(0.5)을 곱하여 매도 금액을 재 계산한 후 우리가 매도하려는 금액을 나눠 매매 가능 수량을 정합니다. 예제로 설명드리면 100만 원 치 매수하려고 할 때 7차 수량을 0.5로 하면, 50만 원 치 매도할 수 있으며, 매도 시작가가 1만 원이면 50주 매도된다는 뜻입니다.
그리고 중복 매도를 방지하기 위해 orderitemlist_7에 현재 매매하려는 코드를 넣습니다. 앞으로 orderitemlist_7에는 매매 코드가 들어가 있으므로 이번 코드는 가동되지 않습니다.
SendOrder 함수를 사용하여 매도 명령을 수행합니다. 매수와 다른 점은 self.account_num 옆에 2라는 숫자입니다. 매수는 1이었습니다. 그 외 들어가는 여러 정보들은 이전 강의를 참조하시기 바랍니다.
(3) DB를 구축하는 곳입니다. open함수를 사용하여 원하는 이름의 txt파일을 만들고 각 정보들을 write함수를 사용하여 입력합니다.
(4) 매도가 성공적으로 되었다면 0을 반환하고 그렇지 않으면 1을 반환합니다.
이런 식으로 컨트롤 + C, 콘트롤 + V (복사/붙여 넣기)하시면 원하는 가격과 수량에 분할 손절이 가능하게 됩니다.
위의 분할 손절에 대한 코드 설명은 분할 매수/매도 강의에 아주 자세히 설명되어 있으니 설명이 부족하다고 느끼시는 분들은 이전 강의를 복습하시기 바랍니다. 그래도 이해가 되지 않으시면 댓글 달아 주십시오. 가능한 범위에서 설명드리겠습니다. 감사합니다.
'주식 자동매매 강의 > 중급반(시황 및 차트 구현)' 카테고리의 다른 글
[키움 조건검색식 주식자동매매(22)] 미체결 잔고 취소 후 재매수/매도(완강) (7) | 2022.09.06 |
---|---|
[키움 조건검색식 주식자동매매(21)] 기존 계좌에 있는 종목 분할 매수/매도 하기 (6) | 2022.09.04 |
[키움 조건검색식 주식자동매매(19)] 금일 매수한 종목에 대하여 분할 익절하기 (8) | 2022.09.02 |
[키움 조건검색식 주식자동매매(18)] 미체결/체결 잔고 업데이트 하기 (10) | 2022.08.29 |
[키움 조건검색식 주식자동매매(17)] 실시간 분할 매수하기 (25) | 2022.08.19 |