더북(TheBook)

check_table_exist에 전달되는 첫 번째 인자는 전략 이름인 RSIStrategy이며, 이는 우리가 앞으로 사용할 데이터베이스의 파일명(RSIStrategy.db)이 됩니다. 그다음으로 전달되는 값은 조회할 테이블 이름입니다. universe 테이블이 있는지 확인할 것이므로 문자열 universe를 전달합니다. 여기까지 설명한 내용을 코드로 정리하면 다음과 같습니다. check_and_get_universe 함수를 전략 초기화 함수인 init_strategy에서 호출하도록 구성했습니다.

RSIStrategy.py

from api.Kiwoom import *
from util.make_up_universe import *
from util.db_helper import *
import math


class RSIStrategy(QThread):
    def __init__(self):
        QThread.__init__(self)
        self.strategy_name = "RSIStrategy"
        self.kiwoom = Kiwoom()
        self.init_strategy()

    def init_strategy(self): ------ 전략 초기화 기능을 수행하는 함수
        self.check_and_get_universe() ------ 유니버스를 조회하여 없으면 생성

    def check_and_get_universe(self): ------ 유니버스가 있는지 확인하고 없으면 생성하는 함수
        if not check_table_exist(self.strategy_name, 'universe'):
            universe_list = get_universe()
            print(universe_list)

    def run(self):
        pass
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.