이번에 들어간 내용
한투 호가 = 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 키 정리도 같이 들어갔습니다. 파일 단위로 나눌 수 없어서입니다.
This commit is contained in:
@@ -43,7 +43,6 @@ _TAIL_BASE_KEYS: List[str] = [
|
||||
"atr_tp_max_pct",
|
||||
"tail_vol_mult",
|
||||
"tail_vol_win",
|
||||
"limit_atr_mult",
|
||||
"symbol_daily_loss_limit_pct",
|
||||
"symbol_daily_loss_limit_krw",
|
||||
"reentry_min_edge_krw",
|
||||
@@ -70,8 +69,13 @@ _TAIL_BASE_KEYS: List[str] = [
|
||||
TAIL_TPE_AXIS_KEYS: List[str] = list(_TAIL_BASE_KEYS) + list(RATCHET_TPE_AXIS_KEYS)
|
||||
|
||||
|
||||
def tail_tpe_axis_keys() -> List[str]:
|
||||
return list(TAIL_TPE_AXIS_KEYS)
|
||||
def tail_tpe_axis_keys(entry_mode: Optional[str] = None) -> List[str]:
|
||||
"""align 스터디에는 limit_atr_mult 없음(지정가 모드 전용)."""
|
||||
keys = list(TAIL_TPE_AXIS_KEYS)
|
||||
if normalize_tpe_tail_entry_mode(entry_mode) == "limit_atr":
|
||||
if "limit_atr_mult" not in keys:
|
||||
keys.append("limit_atr_mult")
|
||||
return keys
|
||||
|
||||
|
||||
def normalize_tpe_tail_entry_mode(raw: Optional[Any] = None) -> str:
|
||||
@@ -121,7 +125,9 @@ def suggest_tail_params_tpe(
|
||||
|
||||
combo["tail_vol_mult"] = r2(trial.suggest_float("tail_vol_mult", 0.0, 4.0, step=0.1))
|
||||
combo["tail_vol_win"] = trial.suggest_int("tail_vol_win", 2, 8)
|
||||
combo["limit_atr_mult"] = r2(trial.suggest_float("limit_atr_mult", 0.8, 2.5, step=0.1))
|
||||
# align 에서는 지정가 ATR 배수가 체결에 안 들어감 → 탐색 축에서 제외(스터디 공간 고정).
|
||||
if combo["entry_mode"] == "limit_atr":
|
||||
combo["limit_atr_mult"] = r2(trial.suggest_float("limit_atr_mult", 0.8, 2.5, step=0.1))
|
||||
# 꼬리 래칫: OFF=\"off\" / gain·cut 소폭% (엔진 문자열과 동일)
|
||||
combo.update(
|
||||
suggest_ratchet_tiers_pct(
|
||||
@@ -148,11 +154,13 @@ def suggest_tail_params_tpe(
|
||||
combo["reentry_require_nonneg"] = False
|
||||
combo["max_daily"] = trial.suggest_int("max_daily", 3, 80, step=5) # 확장: 5→3, 60→80
|
||||
combo["cooldown_min"] = r1(trial.suggest_float("cooldown_min", 0.0, 30.0, step=1.0)) # 확장: 15→30
|
||||
# 3분 직전대비 등락. 구구간 max=-0.2 는 반등봉(+0.x%)을 한 번도 못 봄.
|
||||
# 실매 DB -10.0 / -0.5 포함. min 상한 -3 < max 하한 -2 → 항상 min<max (불필요 prune 없음).
|
||||
combo["bar_chg_min_pct"] = r1(
|
||||
trial.suggest_float("bar_chg_min_pct", -15.0, -3.0, step=0.5),
|
||||
trial.suggest_float("bar_chg_min_pct", -25.0, -3.0, step=0.5), # 확장: -15→-25
|
||||
)
|
||||
combo["bar_chg_max_pct"] = r2(
|
||||
trial.suggest_float("bar_chg_max_pct", -2.0, -0.2, step=0.1),
|
||||
trial.suggest_float("bar_chg_max_pct", -2.0, 10.0, step=0.2), # 확장: -0.2→+10 (0·반등 포함)
|
||||
)
|
||||
|
||||
combo["rsi_threshold"] = r1(trial.suggest_float("rsi_threshold", 70.0, 95.0, step=1.0))
|
||||
|
||||
Reference in New Issue
Block a user