더북(TheBook)

RSIStrategy.py

(...)
def run(self):
    while self.is_init_success:
        try:
            if not check_transaction_open():
                print("장시간이 아니므로 5분간 대기합니다.")
                time.sleep(5 * 60)
                continue

            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.order.keys():
                    print('접수 주문', self.kiwoom.order[code])

                    if self.kiwoom.order[code]['미체결수량'] > 0:
                        pass

                elif code in self.kiwoom.balance.keys(): ------ 보유 종목인지 확인
                    print('보유 종목', self.kiwoom.balance[code])

                    if self.check_sell_signal(code): ------ 매도 대상 확인
                        pass ------ 매도 대상이면 매도 주문 접수

        except Exception as e:
            print(traceback.format_exc())

elif 문에서 Kiwoom 클래스의 balance 딕셔너리에 종목 코드가 존재하는지 확인합니다. 종목 코드가 존재한다면 보유 중인 종목이라는 의미고, 이후에 매도해야 하는 대상인지는 아직 구현하지 않은 check_sell_signal 함수로 확인합니다. 다음 절에서는 이 함수 및 매매 프로세스를 구현해 보겠습니다.

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