Files
kis_trader/scratch/revert_price_provider.py

36 lines
1.7 KiB
Python

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("=== 시세 공급자를 다시 키움으로 복구 ===")
# 1. WS_PROVIDER: kis_with_validation 을 빈 값이나 kis_only 로 변경?
# 기본은 KIS를 백그라운드용으로 쓰되 메인을 키움으로 하려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 둡니다.
# 하지만 40개 한도 이슈가 있으므로, WS_PROVIDER="kis_only" (또는 "kiwoom" 등 기본값) 으로 돌립니다.
# 실제로 KIS 시세를 끄려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 하면 후보 종목(20개)은 키움으로 구독합니다.
if snap.get("WS_SUBSCRIBE_KIS_MINIMAL") is not True and str(snap.get("WS_SUBSCRIBE_KIS_MINIMAL")).lower() != 'true':
print(f" WS_SUBSCRIBE_KIS_MINIMAL: {snap.get('WS_SUBSCRIBE_KIS_MINIMAL')} -> True (키움 메인 시세 사용)")
snap["WS_SUBSCRIBE_KIS_MINIMAL"] = True
changed = True
# WS_PROVIDER 는 굳이 안 건드려도 되지만 확실하게 검증기(validation) 부하를 빼려면 빈 문자열 처리
if snap.get("WS_PROVIDER") == "kis_with_validation":
print(f" WS_PROVIDER: {snap.get('WS_PROVIDER')} -> kis_only (키움 검증 로그 오프)")
snap["WS_PROVIDER"] = "kis_only"
changed = True
if changed:
db.insert_env_snapshot(snap)
invalidate_merged_env_cache()
print("\n✅ DB 업데이트 및 캐시 무효화 완료!")
else:
print("\n✅ 이미 설정되어 있습니다.")
finally:
db.close()