""" 전 전략 cand_limit 20 설정 및 시세 KIS 연결 스크립트 """ import sys sys.path.insert(0, "/home/hoon/kis_bot") from database import TradeDB from kis_trader.utils.env import invalidate_merged_env_cache db = TradeDB() try: snap = dict(db.get_merged_env_snapshot() or {}) changed = False print("=== 전략별 cand_limit 20 으로 변경 ===") strategies = ["SCALP", "BREAKOUT", "MOMENTUM", "TAIL", "SHORT", "RANGE_BREAK", "UPDOW", "DBBAND", "HOLDING", "US_MOMENTUM", "US_BREAKOUT"] for sid in strategies: key = f"{sid}_cand_limit" current_val = snap.get(key) if current_val is not None: if int(current_val) != 20: print(f" {key}: {current_val} -> 20") snap[key] = 20 changed = True else: # 설정값이 없는 경우에도 20으로 추가할 수 있습니다. print(f" {key}: None -> 20 (새로 추가)") snap[key] = 20 changed = True print("\n=== 시세 구독 설정 (KIS 메인, 검증 테이블 기록) ===") # 1. WS_PROVIDER: kis_with_validation (키움, 키스 둘 다 구독해서 검증테이블에 쌓게 함) if snap.get("WS_PROVIDER") != "kis_with_validation": print(f" WS_PROVIDER: {snap.get('WS_PROVIDER')} -> kis_with_validation") snap["WS_PROVIDER"] = "kis_with_validation" changed = True # 2. WS_SUBSCRIBE_KIS_MINIMAL: False (KIS로 전체 유니버스 시세 구독) if snap.get("WS_SUBSCRIBE_KIS_MINIMAL") is not False and str(snap.get("WS_SUBSCRIBE_KIS_MINIMAL")).lower() != 'false': print(f" WS_SUBSCRIBE_KIS_MINIMAL: {snap.get('WS_SUBSCRIBE_KIS_MINIMAL')} -> False") snap["WS_SUBSCRIBE_KIS_MINIMAL"] = False changed = True if changed: db.insert_env_snapshot(snap) invalidate_merged_env_cache() print("\n✅ DB 업데이트 및 캐시 무효화 완료!") else: print("\n✅ 이미 설정되어 있습니다.") finally: db.close()