이전 강의에서는 실시간 자동매매를 위한 기본 GUI 생성 및 스레드 생성을 하였으며, 이번 강의에서는 중복 매수 방지 및 매매를 위한 스레드 기본 세팅해보겠습니다.
중복 매수 방지 및 매매를 위한 스레드 기본 세팅
이전 강의에서 세팅한 self.k = Kiwoom() 다음으로, 4가지의 세팅을 실시합니다.
(1) 우선 Main_Script와 싱글턴에 저장된 계봐번호 self.k.acc_number에서 Thread53에서 효율적으로 사용할 수 있도록 self.account_num으로 인스턴스화 합니다. 계좌번호는 다양한 주문을 넣을 때 사용됩니다.
(2) 기초반에서 강의 하였지만, 실시간 주문을 넣을 때는 반드시 FID 번호가 필요하며, self.realType에 인스턴스화 합니다.
(3) 종목검색식에서 검색된 종목들은 self.order_stock에 잠시 저장할 것입니다.
(4) 그리고 2분마다 1번씩 종목 검색을 했을 때 같은 종목이 중복으로 검색될 수 도 있고 새로운 종목이 검색될 수 있습니다. 이때, 새로운 종목만 키움 서버에 등록하고 기존의 중복된 종목에 대해서는 키움 서버에 재 등록할 필요가 없기 대문에 검색된 모든 종목을 self.jungbok_prohibit에 저장하여 검색 때마다 상호 비교해 중복된 종목에 대해서는 제외시킵니다. 그리고 GUI 더블스핀 박스에 저장된 매수금액을 value() 함수를 이용해 self.mesu_price에 저장합니다.
아래코드는 중복 매수를 방지하고 키움 서버로부터 실시간 정보를 받아오기 위한 코딩입니다.
(5) 조건검색식으로 검색된 종목을 등록하고 처음 받는 현재가를 self.start_mesu_price에 저장합니다. 이 값은 매수를 하기 위한 기준 값으로 이 가격 대비 -1%면 매수, -2%면 매수 등의 기준가로 사용합니다.
(6) 금일 4번의 분할 매수를 하며, 중복 매수를 막는 곳입니다.
(7) 금일 매수한 종목 중 중복 익절을 막는 곳입니다.
(8) 금일 매수한 종목 중 중복 손절을 막는 곳입니다.
(9) 계좌에 있는 종목 중 중복 익절을 막는 곳입니다.
(10) 계좌에 있는 종목 중 중복 손절을 막는 곳입니다.
(11) setRealReg함수를 사용하여 장 운용 구분 상태를 알기위해 키움 서버로 관련 정보를 요청합니다. 장 시작 전/중/후를 알 수 있습니다.
(12) 종목을 등록하면 실시간 정보를 키움서버에서 컴퓨터로 전달되게 되고 이 값을 받기 위해 OnReceiveRrealData를 이용하여 self.realdata_slot에 저장되게 합니다. 그리고 종목이 체결될 때 관련 정보를 OnReceiveChejanData를 이용해 self.chejan_slot에 저장되게 합니다.
아래 코드는 자동매매를 잠시 멈추거나 재시작을 위한 기본 세팅입니다.
(13) 이전 강의에서 시간관련 GUI 생성 및 기본 세팅을 완료하였습니다. 관련 값을 받아오기 위해 statime 및 stptime에서 toString함수를 사용하여 시/분/초를 "HHmmss"를 이용해 a, b에 받아옵니다. 그리고 관련 값들을 정수화 하여서 self.c_t1 및 self.c_t2에 저장합니다.
(14) 그리고 (13)에서 받아온 시간정보와 현재 시간 정보를 비교해가며 매수를 해야 할지 말아야 할지를 판단할 변수 3가지 self.stop_mesu, self.p1, self.p2를 설정합니다. 이 값은 다음 강의에서 사용될 예정이니 우선 입력만 해 놓으시면 될 것 같습니다.
위의 기본 세팅은 아주 중요한 부분이고 기초반에서 강의한 내용과 95% 동일하므로 이해가 되지 않으시면 기초반 강의를 수강하십시요. 감사합니다.
'주식 자동매매 강의 > 중급반(시황 및 차트 구현)' 카테고리의 다른 글
[키움 조건검색식 주식자동매매(15)] 장 실시간 상태 및 등록 종목 현재가, 거래량 등 데이터 받기 (10) | 2022.08.16 |
---|---|
[키움 조건검색식 주식자동매매(14)] 2분마다 검색된 종목 실시간 등록 및 장 중 매수 멈춤/재시작 명령 (2) | 2022.08.15 |
[키움 조건검색식 주식자동매매(13)] 장 시작 시간 설정 및 자동매매 Thread(스레드) 구성하기 (2) | 2022.08.14 |
[키움 조건검색식 주식자동매매(12)] 매수/매도 파라미터 DB화 하기 (9) | 2022.08.11 |
[키움 조건검색식 주식자동매매(11)] 매매(매수/매도) GUI Double Spinn Box DB 초기화 작업 (7) | 2022.08.10 |