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 함수로 확인합니다. 다음 절에서는 이 함수 및 매매 프로세스를 구현해 보겠습니다.