[키움 조건검색식 주식자동매매(14)] 중복 매수 방지 및 매매를 위한 기본 세팅
본문 바로가기

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

[키움 조건검색식 주식자동매매(14)] 중복 매수 방지 및 매매를 위한 기본 세팅

반응형

 이전 강의에서는 실시간 자동매매를 위한 기본 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에 저장합니다.

 

 아래코드는 중복 매수를 방지하고 키움 서버로부터 실시간 정보를 받아오기 위한 코딩입니다.

기본구조 세팅2
기본구조 세팅2

 (5) 조건검색식으로 검색된 종목을 등록하고 처음 받는 현재가를 self.start_mesu_price에 저장합니다. 이 값은 매수를 하기 위한 기준 값으로 이 가격 대비 -1%면 매수, -2%면 매수 등의 기준가로 사용합니다.

 (6) 금일 4번의 분할 매수를 하며, 중복 매수를 막는 곳입니다.

 (7) 금일 매수한 종목 중 중복 익절을 막는 곳입니다.

 (8) 금일 매수한 종목 중 중복 손절을 막는 곳입니다.

 (9) 계좌에 있는 종목 중 중복 익절을 막는 곳입니다.

 (10) 계좌에 있는 종목 중 중복 손절을 막는 곳입니다.

 (11) setRealReg함수를 사용하여 장 운용 구분 상태를 알기위해 키움 서버로 관련 정보를 요청합니다. 장 시작 전/중/후를 알 수 있습니다.

 (12) 종목을 등록하면 실시간 정보를 키움서버에서 컴퓨터로 전달되게 되고 이 값을 받기 위해 OnReceiveRrealData를 이용하여 self.realdata_slot에 저장되게 합니다. 그리고 종목이 체결될 때 관련 정보를 OnReceiveChejanData를 이용해 self.chejan_slot에 저장되게 합니다.

 

 아래 코드는 자동매매를 잠시 멈추거나 재시작을 위한 기본 세팅입니다.

기본구조 세팅3
기본구조 세팅3

 (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% 동일하므로 이해가 되지 않으시면 기초반 강의를 수강하십시요. 감사합니다.

반응형

.link_tit