Files
kis_bot/scratch/update_bot_config.py

52 lines
2.0 KiB
Python

"""
전 전략 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()