research(5m): прогон 14 методов на 250 парах, сверка движка, издержки, графики

ЧТО: code/ (стенд и методы), results/ (сводки), charts/ (3 графика), reports/ (издержки, плацебо, по годам), docs/REJECTED.md.

ПОЧЕМУ: цель — найти кандидатов на 5м или доказать с цифрами их отсутствие.

КАК ПРОВЕРЕНО: движок сверен с прод-движком TON-бота 1:1; плацебо и рандом-контроль в отчёте; бутстрап по дням.
This commit is contained in:
2026-09-29 02:46:08 +03:00
parent 7b048534ff
commit c6671410dc
26 changed files with 5514 additions and 2 deletions
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Прогон банка методов. Каждый метод — ОТДЕЛЬНЫМ процессом (иначе OOM на 250 парах),
# уже посчитанные строки пропускаются (results/rows/<метод><тег>.csv), затем мейкер и слияние.
set -u
cd /opt/data/work/screener5m || exit 1
LOG=reports/methods_run.log
METHODS=(xs_reversal_15m xs_momentum_15m hour_xs_reversal xs_reversal_costaware intraday_momentum
lead_lag_btc pairs_btc_eth ou_ema_revert ou_ema_costaware vwap_revert clv_flow
liquidity_sweep vol_breakout prod_mr_5m)
echo "=== СТАРТ $(date '+%H:%M:%S') ===" >> "$LOG"
for mode in taker maker; do
tag=""; flag=""
if [ "$mode" = "maker" ]; then tag="_maker"; flag="--maker"; fi
for m in "${METHODS[@]}"; do
row="results/rows/${m}${tag}.csv"
if [ -f "$row" ]; then
echo "--- пропуск $mode $m (строка уже есть)" >> "$LOG"
continue
fi
echo "--- $mode $m $(date '+%H:%M:%S')" >> "$LOG"
.venv/bin/python tools/methods.py $flag "$m" >> "$LOG" 2>&1 || echo "!!! $mode $m упал" >> "$LOG"
done
done
echo "=== СЛИЯНИЕ $(date '+%H:%M:%S') ===" >> "$LOG"
.venv/bin/python tools/merge_rows.py >> "$LOG" 2>&1
.venv/bin/python tools/merge_byyear.py >> "$LOG" 2>&1
.venv/bin/python tools/make_report.py >> "$LOG" 2>&1
echo "=== ГОТОВО $(date '+%H:%M:%S') ===" >> "$LOG"