이번에 들어간 내용
한투 호가 = 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:
@@ -29,6 +29,9 @@ STRATEGIES="${STRATEGIES:-momentum tail breakout scalp}"
|
||||
# 꼬리 TPE 진입모드 — 한 스터디에 섞지 않음. 공백 구분 시 순차 2회.
|
||||
# TAIL_OPTUNA_ENTRY_MODES="align limit_atr"
|
||||
TAIL_OPTUNA_ENTRY_MODES="${TAIL_OPTUNA_ENTRY_MODES:-align}"
|
||||
# 돌파 TPE 손절모드 — 한 스터디에 섞지 않음. 공백 구분 시 순차 2회.
|
||||
# BREAKOUT_OPTUNA_SL_MODES="fixed atr"
|
||||
BREAKOUT_OPTUNA_SL_MODES="${BREAKOUT_OPTUNA_SL_MODES:-fixed}"
|
||||
# kiwoom|ls — 웹 Optuna 이력소스 / CLI UNIVERSE_HISTORY_SOURCE
|
||||
UNIVERSE_HISTORY_SOURCE="${UNIVERSE_HISTORY_SOURCE:-${BACKTEST_UNIVERSE_HISTORY_SOURCE:-kiwoom}}"
|
||||
PY="${PY:-.venv/bin/python}"
|
||||
@@ -40,6 +43,7 @@ MASTER="logs/optuna_4strat_tpe_${START}_${END}_${TS0}_master.log"
|
||||
echo "START=$START END=$END MODE=$MODE TRIALS=$TRIALS"
|
||||
echo "STRATEGIES=$STRATEGIES"
|
||||
echo "TAIL_OPTUNA_ENTRY_MODES=$TAIL_OPTUNA_ENTRY_MODES"
|
||||
echo "BREAKOUT_OPTUNA_SL_MODES=$BREAKOUT_OPTUNA_SL_MODES"
|
||||
echo "UNIVERSE_HISTORY_SOURCE=$UNIVERSE_HISTORY_SOURCE"
|
||||
echo "min_wr=$MIN_WIN_RATE min_pf=$MIN_PF min_trades=$MIN_TRADES"
|
||||
echo "apply-best=OFF orderbook=off n_jobs=1 (사후 results_gated + briefing.md)"
|
||||
@@ -52,6 +56,7 @@ echo "$MASTER" > logs/optuna_4strat_tpe_latest_master.logpath
|
||||
run_one() {
|
||||
local strat="$1"
|
||||
local entry_mode="${2:-}"
|
||||
local sl_mode="${3:-}"
|
||||
local ts study log sort_by
|
||||
ts="$(date +%Y%m%d_%H%M%S)"
|
||||
study="${strat}_tpe_${START//-/}_${END//-/}_${ts}"
|
||||
@@ -60,6 +65,10 @@ run_one() {
|
||||
study="${strat}_${entry_mode}_tpe_${START//-/}_${END//-/}_${ts}"
|
||||
log="logs/optuna_${strat}_${entry_mode}_tpe_${ts}.log"
|
||||
fi
|
||||
if [[ "$strat" == "breakout" && -n "$sl_mode" ]]; then
|
||||
study="${strat}_${sl_mode}_tpe_${START//-/}_${END//-/}_${ts}"
|
||||
log="logs/optuna_${strat}_${sl_mode}_tpe_${ts}.log"
|
||||
fi
|
||||
sort_by="pnl"
|
||||
case "$strat" in
|
||||
momentum|us_momentum|scalp) sort_by="score" ;;
|
||||
@@ -67,7 +76,7 @@ run_one() {
|
||||
|
||||
{
|
||||
echo ""
|
||||
echo "-------- [$strat${entry_mode:+/$entry_mode}] START $(date -Is) study=$study univ=$UNIVERSE_HISTORY_SOURCE --------"
|
||||
echo "-------- [$strat${entry_mode:+/$entry_mode}${sl_mode:+/$sl_mode}] START $(date -Is) study=$study univ=$UNIVERSE_HISTORY_SOURCE --------"
|
||||
} | tee -a "$MASTER"
|
||||
echo "$log" > "logs/optuna_${strat}_tpe_latest.logpath"
|
||||
echo "$study" > "logs/optuna_${strat}_tpe_latest.study"
|
||||
@@ -92,6 +101,9 @@ run_one() {
|
||||
if [[ "$strat" == "tail" && -n "$entry_mode" ]]; then
|
||||
cmd_args+=(--entry-mode "$entry_mode")
|
||||
fi
|
||||
if [[ "$strat" == "breakout" && -n "$sl_mode" ]]; then
|
||||
cmd_args+=(--sl-mode "$sl_mode")
|
||||
fi
|
||||
|
||||
if [[ -n "${TICK_SOURCE:-}" ]]; then
|
||||
cmd_args+=("--tick-source" "$TICK_SOURCE")
|
||||
@@ -105,7 +117,7 @@ run_one() {
|
||||
set -e
|
||||
|
||||
{
|
||||
echo "-------- [$strat${entry_mode:+/$entry_mode}] END rc=$rc $(date -Is) --------"
|
||||
echo "-------- [$strat${entry_mode:+/$entry_mode}${sl_mode:+/$sl_mode}] END rc=$rc $(date -Is) --------"
|
||||
echo "LOG=$log"
|
||||
grep -E 'OPTUNA_RESULT_JSON=|OPTUNA_BRIEFING_MD=|Best trial|optuna_best|❌|KeyError|Traceback' "$log" | tail -n 24 || true
|
||||
} | tee -a "$MASTER"
|
||||
@@ -121,6 +133,10 @@ for s in $STRATEGIES; do
|
||||
for em in $TAIL_OPTUNA_ENTRY_MODES; do
|
||||
run_one tail "$em"
|
||||
done
|
||||
elif [[ "$s" == "breakout" ]]; then
|
||||
for sm in $BREAKOUT_OPTUNA_SL_MODES; do
|
||||
run_one breakout "" "$sm"
|
||||
done
|
||||
else
|
||||
run_one "$s"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user