[키움 조건검색식 주식자동매매(9)] 특정 시간마다 원하는 함수(종목검색식 종목 받아오기) 실행 코딩
본문 바로가기

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

[키움 조건검색식 주식자동매매(9)] 특정 시간마다 원하는 함수(종목검색식 종목 받아오기) 실행 코딩

반응형

 여러분들은 이전 강의에서 1. 조건 검색식 목록 가져오는 방법, 2. 조건 검색식 종목 가져오는 방법, 3. 가져온 종목 GUI에 전시하는 방법까지 다 이해를 하셨을 것입니다. 이번 강의에서는 특정 시간마다 종목검색식 종목을 받아 오겠습니다.

 

1. 기초 구성

 기초 구성은 이전 강의와 완전 동일합니다. 그렇더라도 간단하게 설명드리겠습니다. 우선 특정 시간마다 종목검색식을 받아오기 위한 Thread를 QThread54.py로 구성합니다.

기초 구성
기초 구성

 (1) 우리가 사용한 부모 클래스에 있는 기능들을 가져옵니다. 여기서 처음 보시는 것이 import threading일 것인데 스레드 기능을 포함한 타이머를 구성하기 위한 것입니다. 타이머가 흘러갈 때 우리가 연산하는 다양한 것들에 피해를 주지 않기 위해 반드시 스레드로 구성하셔야 됩니다

 (2) Thread54와 부모클래스를 초기화하고 각 기능 등을 가지고 옵니다.

 (3) 주기적으로 검색된 조목을 받아오는 곳입니다.

 (3) 얼만큼의 주기로 시간 지연 값을 받아올지 정하는 곳입니다. 시간 정보를 받아오는 곳의 콤보 박스 objecName은 auto_jongmok이며, 아래와 같이 구성합니다.

시간정보를 받아오는 곳의 콤보박스 구현
시간정보를 받아오는 곳의 콤보박스 구현

- 그리고 self.dealy라는 곳에 정수 값으로 콤보박스 내용을 가져옵니다.

 (5) 한 번에 한해서 계좌에 있는 종목의 번호도 가져옵니다. 차 후에 계좌에 있는 종목도 매매를 하기 위해서입니다.

 

 2. 특정 시간마다 원하는 함수 실행 코딩 

  특정 시간마다 원하는 함수를 실행시키기 위해 threading 함수를 사용하겠습니다. 우선 threading 함수를 실행시킬 수 있는 printhellowWorld()라는 함수를 만들어 실행시킵니다.

특정 시간마다 원하는 함수 실행 코딩
특정 시간마다 원하는 함수 실행 코딩

 (1)  t = threding.Timer(self.delay * 60, self.printhelloWord) : threading함수의 Timer 기능을 이용해 self.printhelloWord 함수가 계속 실행되게 합니다. 실행 주기는 초로 구분되며 앞서 우리는 분으로 받아 왔기 때문에 self.delay가 2분 일 때 총 120초마다 self.printhelloWord 함수가 실행됩니다.

 (2) self.requst_stock()이 실행됩니다. 이 부분은 이전 강의에서 다 콩딩하였죠? 120초마다 한 번씩 조건 검색식 종목을 요청합니다.

 (3) self.searchItem2() : 검색된 종목을 120초마다 GUI에 붙여 줍니다.

 (4) 120초마다 업데이트되는 종목은 self.k.code_list에 저장이 되고 이전 값을 가지고 있는 self.k.portfolio_stock_dict에 새로 검색된 관련 코드가 없을 경우 self.k.portfolio_stock_dict에 업데이트합니다.

 

 self.request_stock()과 self.searchItem2()의 코드는 이전 강의와 100% 동일하므로 링크로 대체합니다.

 [링크 : 이전 강의]

 

 3. 요약 및 결론

 이번 강의는 종목검색식 종목을 원하는 시간마다 요청하고 GUI에 붙이고 별도 공간에 저장하기 위해 코딩하였습니다. 특히 일정 시간마다 원하는 함수를 실행하는 threading.Timer 함수를 응용하였습니다. 이걸 더 응용하면 원하는 시간에 어떤 함수든 실행하실 수 있으니 잘 사용하세요. 감사합니다.

반응형

.link_tit