[키움 조건검색식 자동매매 (1)] 조건검색식 주요 함수 개념 잡기
본문 바로가기

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

[키움 조건검색식 자동매매 (1)] 조건검색식 주요 함수 개념 잡기

반응형

 무엇을 먼저 해야 할지 고민하다가 조건 검색식 자동매매를 우선적으로 만들기로 결정했습니다. 아마 다음 주부터 머신러닝 강의도 진행해야 하고 기존 프로그램도 업데이트해야 하니 무엇 하나를 포기해할 듯합니다.

 

 시중에 풀린 유료 프로그램 보면 90%가 키움 조건식을 사용하는 프로그램입니다(심지어 50만 원에서 1000만 원까지 하죠). 우리는 이미 실시간으로 매수/매도도 했으며, 분할 매수/매도까지 다 했죠. 따라서 조건 검색식 자동매매는 마음만 먹으면 하루 이틀이면 만들 수 있을 것입니다. 만든다고 해서 돈을 버는 것은 아니죠. 이 역시 자신만의 조건검색식이 있어야 할 것입니다.

 

[링크 : 초급반 54강]

[링크 : 중급반 분할 매수/매도]

 

 1. 조건검색식 자동매매 개념

 조건검색식 자동매매 개념은 초급반을 마스터하셨으면 간단합니다. 

반응형

조건검색식 자동매매 개념
조건검색식 자동매매 개념

 (1) 집 컴퓨터에서 키움 서버에 미리 저장해둔 조건식 번호를 요청합니다. 아래 예시와 같은 구조로 되어 있으며 각 조건식 일련번호에 따라 여러분이 만들어 놓은 조건식이 숨어 있습니다.

   - [0000 : 돌파 매수, 0001 : 눌림목 매수, 0002 : 세력주 매수]

 (2) 키움 서버에서는 위의 예시와 같이 저장해둔 조건식 일련번호를 집 컴퓨터에 반환합니다.

 (3) 집 컴퓨터에서는 원하는 매수 방법을 선택한 후 일련번호화 함께 키움 서버로 종목 조회를 요청합니다.

 (4) 키움 서버에서는 일련번호로 검색된 종목을 집 컴퓨터로 반환합니다.

 (5) 집 컴퓨터에서는 반환된 종목을 추려 매수/매도 주문을 넣습니다.

 

 위와 같은 구조입니다. 간단하다면 간단한 구조입니다.

 

 2. 조건 검색식 자동매매 함수 개념 알아보기

 (1) GetConditionLoad() : 집 컴퓨터에서 키움 서버에 미리 저장해둔 조건식 번호를 요청합니다

 (2) OnReceiveConditionVer(self.slot) : 받아온 조건 검색식을 self.slot() 함수에 넣습니다.

 (3) GetConditionNameList : 받아온 조건 검색식 종목을 컴퓨터로 가져옵니다.

   def slot(self) :

      condition_list = {'index': [], 'Name': []}

      temporary_condition_list = self.kwoom.dynamicCall("GetConditionNameList()"). split(';')

      print(temporary_condition_list)

      for data in temporary_condition_list:   # 위의 예제와 같으면 3개의 조건식이 있을 것입니다.

          try:

            a = data.split("^")

            condition_list ['index"]. append(str(a [0])   # 0에는 일련번호가 입력됩니다.

            condition_list['name"].append(str(a[1])  # 1에는 조건식 이름이 입력됩니다.

          excep IndexError:

             pass

  (4)  SendCondition() : 집 컴퓨터에서 조건식 일련번호를 가지고 키움 서버로 관련 종목검색을 요청합니다. 이때 입력값은 아래와 같습니다.

SendCondition
SendCondition

   - 화면번호는 0156이며, 조건명과 조건 인덱스는 우리가 가져온 값을 넣습니다. 조회 구분은 0이면 장 마감 후, 1이면 실시간입니다. 일반적으로 장 마감 후에는 최대 100개의 종목을, 실시간에는 10개의 종목을 반환합니다.

 (5) OnReceiveTrCondition() : 반환된 종목의 코드번호를 가져옵니다.

반환 된 종목코드 번호
반환 된 종목코드 번호

  - 우리는 CodeList 만 가져오면 됩니다.

  - self.codelist = []

  - self.codelist.append(CodeLsit.split(';')) 를 하시면 반환된 종목이 모두 리스트로 저장됩니다.

 

 3. 결론

 대략적인 개념은 잡으셨나요? 다음 강의부터는 코딩을 해보도록 하겠습니다. 기존에 구성해 놓은 분할 매수/매도 창에다 붙여 넣을 생각이니 반드시 초급반과 중급반을 우선적으로 이해하고 오십시오. 감사합니다.

반응형

.link_tit