한투 호가 = 2번째 앱키 전용 키 없거나 start 실패 시 메인에 H0STASP0 안 붙임. 운영설정 WS_ORDERBOOK_SAVE_KIS 빨간 danger. LS RAM 합집합 후보∪보유∪영구∪grace. sync_targets와 split reconcile 둘 다. 틱 DB 영구 게이트는 그대로. 분봉 쓰레기 → 다음 소스 봉 통째 그 분 틱 0건이거나 전부 봉끝 대비 LIVE_FEED_FALLBACK_MAX_AGE_SEC 초과면 구멍. 메인 WS → 2차 → LS → REST → rollup. CANDLE_GARBAGE_FALLBACK 기본 true. 파일: feed_fallback.py(신규), ws_manager.py, kis_ws.py, candle_series.py, bt_candle_source.py, live_config_schema.py, database.py, 스모크, MD 2개. 같은 ws_manager/database/kis_ws/live_config에는 직전 커밋 이후 쌓여 있던 시세 폴백·ENV 키 정리도 같이 들어갔습니다. 파일 단위로 나눌 수 없어서입니다.
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""실매 꼬리 TRIGGER 핵심값 + 오늘 탈락 사유는 저널에서 집계."""
|
|
from __future__ import annotations
|
|
import sys
|
|
from pathlib import Path
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
if str(ROOT) not in sys.path:
|
|
sys.path.insert(0, str(ROOT))
|
|
from database import TradeDB
|
|
from kis_trader.utils.env import get_env_bool, get_env_from_db, get_env_float, get_env_int, invalidate_merged_env_cache
|
|
|
|
invalidate_merged_env_cache()
|
|
db = TradeDB() # noqa: F841 — 캐시 워밍
|
|
keys = [
|
|
"TAIL_SKIP_HTS_SCAN_DUPES",
|
|
"TAIL_USE_INTRADAY_DROP",
|
|
"TAIL_BAR_CHG_MIN_PCT",
|
|
"TAIL_BAR_CHG_MAX_PCT",
|
|
"TAIL_TIME_START",
|
|
"TAIL_TIME_END",
|
|
"TAIL_MIN_DROP_RATE",
|
|
"TAIL_MIN_RECOVERY_RATIO",
|
|
"TAIL_MAX_RECOVERY_3M",
|
|
"TAIL_RATIO_MIN",
|
|
"TAIL_PCT_MIN",
|
|
"TAIL_HIGH_CHASE_THR",
|
|
"TAIL_USE_HIGH_CHASE_FILTER",
|
|
"TAIL_USE_RSI_FILTER",
|
|
"TAIL_RSI_THRESHOLD",
|
|
"TAIL_ENTRY_MODE",
|
|
"SHORT_UNIVERSE_SOURCE",
|
|
"CONDITION_SHORT_NAME",
|
|
]
|
|
print("=== live DB/env ===")
|
|
for k in keys:
|
|
raw = get_env_from_db(k, "")
|
|
print(f"{k}: raw={raw!r}")
|
|
print("skip_hts bool", get_env_bool("TAIL_SKIP_HTS_SCAN_DUPES", False))
|
|
print("bar_min", get_env_float("TAIL_BAR_CHG_MIN_PCT", -10.0))
|
|
print("bar_max", get_env_float("TAIL_BAR_CHG_MAX_PCT", -0.5))
|
|
print("time_start", get_env_int("TAIL_TIME_START", 930))
|