더북(TheBook)

프로그램을 실행하면 무한 루프로 구성한 while True 코드 안에서 ‘계속 실행됩니다’가 0.5초마다 출력됩니다. 하지만 그렇다고 해서 run 안에 있는 코드만 동작하고 있는 것은 아닙니다. 함수 내에 print("계속 실행됩니다")를 제거한 후 유니버스 전체 코드를 반복적으로 출력하도록 변경합니다.

RSIStrategy.py

def run(self):
    while True:
        for idx, code in enumerate(self.universe.keys()):
            print(code)
            time.sleep(0.5)

실행하면 유니버스를 구성하는 종목 200개의 코드가 반복적으로 출력되는 것을 알 수 있습니다. 이 상태에서 종목 코드만 출력하는 것이 아니라 종목명과 전체 유니버스 중 몇 번째인지 나타내는 코드, 초기화 단계에서 등록했던 실시간 체결 정보 요청에 대한 응답을 잘 받아 오는지 확인하는 코드를 추가해 보겠습니다.

RSIStrategy.py

def run(self):
    while True:
        for idx, code in enumerate(self.universe.keys()):
        print('[{}/{}_{}]'.format(idx+1,
              len(self.universe), self.universe[code]['code_name']))
        time.sleep(0.5)

        if code in self.kiwoom.universe_realtime_transaction_info.keys(): ------ 현재 종목 코드가 실시간 체결 정보를 담은 딕셔너리에 있는지 확인
            print(self.kiwoom.universe_realtime_transaction_info[code]) ------ 있다면 결과 출력
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.