52 lines
2.0 KiB
Python
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()
|