ls증권 히스토리 구독 넣음
This commit is contained in:
121
scripts/run_optuna_4strat_5d_apply_20260721_27.sh
Executable file
121
scripts/run_optuna_4strat_5d_apply_20260721_27.sh
Executable file
@@ -0,0 +1,121 @@
|
||||
#!/bin/bash
|
||||
# 4전략 Optuna 5거래일(2026-07-21~27) 순차 + --apply-best
|
||||
# 거래일: 21,22,23,24,27 (토·일 제외)
|
||||
# mode=tpe · trials=200 · 호가 OFF · SKIP_HTS 건드리지 않음(실매/기본 false)
|
||||
#
|
||||
# nohup bash scripts/run_optuna_4strat_5d_apply_20260721_27.sh \
|
||||
# >> logs/optuna_4strat_5d_apply_nohup.out 2>&1 &
|
||||
# tail -f "$(cat logs/optuna_4strat_5d_apply_latest_master.logpath)"
|
||||
#
|
||||
# 완료 후 실매 봇 재시작(DB 파람 로드). 서버는 켜 둔 채 PC만 꺼도 됨.
|
||||
|
||||
set -euo pipefail
|
||||
cd /home/hoon/kis_bot
|
||||
mkdir -p logs kis_trader/backtest/results
|
||||
|
||||
START="${START:-2026-07-21}"
|
||||
END="${END:-2026-07-27}"
|
||||
MODE="${MODE:-tpe}"
|
||||
TRIALS="${TRIALS:-200}"
|
||||
MIN_TRADES="${MIN_TRADES:-1}"
|
||||
MIN_WIN_RATE="${MIN_WIN_RATE:-0}"
|
||||
MIN_PF="${MIN_PF:-0}"
|
||||
STRATEGIES="${STRATEGIES:-scalp momentum breakout tail}"
|
||||
PY="${PY:-}"
|
||||
if [[ -z "$PY" ]]; then
|
||||
if [[ -x .venv/bin/python ]]; then
|
||||
PY=".venv/bin/python"
|
||||
else
|
||||
PY="python3"
|
||||
fi
|
||||
fi
|
||||
RESTART_BOT="${RESTART_BOT:-1}"
|
||||
TS0="$(date +%Y%m%d_%H%M%S)"
|
||||
MASTER="logs/optuna_4strat_5d_apply_${START//-/}_${END//-/}_${TS0}_master.log"
|
||||
|
||||
{
|
||||
echo "======== Optuna 4전략 5일+apply-best 시작 $(date -Is) ========"
|
||||
echo "START=$START END=$END (거래일 5: 21~24,27)"
|
||||
echo "MODE=$MODE TRIALS=$TRIALS STRATEGIES=$STRATEGIES"
|
||||
echo "apply-best=ON orderbook=off n_jobs=1 RESTART_BOT=$RESTART_BOT"
|
||||
echo "PY=$PY"
|
||||
echo "master_log=$MASTER"
|
||||
free -h | sed -n '1,2p'
|
||||
df -h / | tail -1
|
||||
} | tee -a "$MASTER"
|
||||
echo "$MASTER" > logs/optuna_4strat_5d_apply_latest_master.logpath
|
||||
|
||||
run_one() {
|
||||
local strat="$1"
|
||||
local ts study log sort_by
|
||||
ts="$(date +%Y%m%d_%H%M%S)"
|
||||
study="${strat}_${MODE}_5d_apply_${START//-/}_${END//-/}_${ts}"
|
||||
log="logs/optuna_${strat}_${MODE}_5d_apply_${ts}.log"
|
||||
sort_by="pnl"
|
||||
case "$strat" in
|
||||
momentum|us_momentum|scalp) sort_by="score" ;;
|
||||
esac
|
||||
|
||||
{
|
||||
echo ""
|
||||
echo "-------- [$strat] START $(date -Is) study=$study --------"
|
||||
echo "LOG=$log"
|
||||
} | tee -a "$MASTER"
|
||||
echo "$log" > "logs/optuna_${strat}_5d_apply_latest.logpath"
|
||||
echo "$study" > "logs/optuna_${strat}_5d_apply_latest.study"
|
||||
|
||||
set +e
|
||||
"$PY" -u kis_trader/backtest/param_search_optuna.py \
|
||||
--strategy "$strat" \
|
||||
--mode "$MODE" \
|
||||
--start "$START" \
|
||||
--end "$END" \
|
||||
--trials "$TRIALS" \
|
||||
--min_trades "$MIN_TRADES" \
|
||||
--min_win_rate "$MIN_WIN_RATE" \
|
||||
--min_pf "$MIN_PF" \
|
||||
--sort-by "$sort_by" \
|
||||
--orderbook-filter off \
|
||||
--no-progress \
|
||||
--n-jobs 1 \
|
||||
--study-name "$study" \
|
||||
--apply-best \
|
||||
>"$log" 2>&1
|
||||
local rc=$?
|
||||
set -e
|
||||
|
||||
{
|
||||
echo "-------- [$strat] END rc=$rc $(date -Is) --------"
|
||||
if [[ "$rc" -ne 0 ]]; then
|
||||
echo "⚠️ [$strat] 실패 rc=$rc — 다음 전략 계속. tail: $log"
|
||||
else
|
||||
echo "✅ [$strat] 완료(+apply-best 시도). log=$log"
|
||||
fi
|
||||
grep -E 'OPTUNA_RESULT_JSON=|OPTUNA_BRIEFING_MD=|Best trial|optuna_best|apply-best|DB 적용|env_config|스킵|gated|Traceback|KeyError' "$log" | tail -n 30 || true
|
||||
free -h | sed -n '2p'
|
||||
} | tee -a "$MASTER"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
for s in $STRATEGIES; do
|
||||
run_one "$s"
|
||||
done
|
||||
|
||||
{
|
||||
echo ""
|
||||
echo "======== ALL DONE $(date -Is) ========"
|
||||
echo "JSON/briefing: kis_trader/backtest/results/optuna_*_tpe_*5d* 또는 로그의 OPTUNA_RESULT_JSON="
|
||||
echo "개별 로그: logs/optuna_*_5d_apply_*.log"
|
||||
} | tee -a "$MASTER"
|
||||
|
||||
if [[ "$RESTART_BOT" == "1" ]]; then
|
||||
{
|
||||
echo "$(date -Is) 실매 봇 재시작 (적용 파람 로드)..."
|
||||
sudo systemctl restart kis_trader_main.service
|
||||
sleep 2
|
||||
systemctl is-active kis_trader_main.service || true
|
||||
} | tee -a "$MASTER"
|
||||
fi
|
||||
|
||||
echo "$(date -Is) script exit 0" | tee -a "$MASTER"
|
||||
Reference in New Issue
Block a user