이번에 들어간 내용

한투 호가 = 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:
Your Name
2026-08-19 22:11:31 +09:00
parent d1dc274f0e
commit 0ecac7cb95
229 changed files with 8487 additions and 1647 deletions

View File

@@ -431,7 +431,7 @@ def prepare_tail_search_context(
total_budget_krw=total_budget_f,
period_days=period_days,
portfolio=portfolio,
grid_keys=tail_tpe_axis_keys() if mode == "tpe" else tail_grid_axis_keys(mode),
grid_keys=tail_tpe_axis_keys(tpe_entry_mode) if mode == "tpe" else tail_grid_axis_keys(mode),
ob_filter_on=ob_filter_on,
cache_holder=cache_holder,
shared_tick_store=shared_tick_store,
@@ -810,6 +810,14 @@ def main() -> None:
help="꼬리 TPE만. 한 스터디에 한 모드(미지정=TAIL_PARAM_SEARCH_ENTRY_MODE 또는 align). "
"둘 다 보려면 스터디를 나눠 두 번 실행.",
)
parser.add_argument(
"--sl-mode",
default=None,
dest="sl_mode",
choices=["fixed", "atr"],
help="돌파 TPE만. 한 스터디에 한 손절모드(미지정=fixed). "
"fixed=sl_pct 탐색, atr=atr_sl_mult 탐색. 둘 다 보려면 스터디를 나눠 두 번.",
)
parser.add_argument(
"--orderbook-filter", default="off", choices=["off", "on", "auto"],
dest="orderbook_filter",
@@ -901,6 +909,13 @@ def main() -> None:
_study_extra = normalize_tpe_tail_entry_mode(
getattr(args, "entry_mode", None) or "align",
)
elif strategy == "breakout" and mode == "tpe":
from kis_trader.backtest.optuna_breakout_tpe_space import (
normalize_tpe_breakout_sl_mode,
)
_study_extra = normalize_tpe_breakout_sl_mode(
getattr(args, "sl_mode", None) or "fixed",
)
study_name = resolve_study_name(
strategy=strategy,
mode=mode,
@@ -1046,6 +1061,7 @@ def main() -> None:
total_budget_krw=args.total_budget,
orderbook_filter=args.orderbook_filter,
history_source=args.universe_history_source,
sl_mode=getattr(args, "sl_mode", None),
)
if ctx_b is None:
sys.exit(1)