Archived
research(5m): прогон 14 методов на 250 парах, сверка движка, издержки, графики
ЧТО: code/ (стенд и методы), results/ (сводки), charts/ (3 графика), reports/ (издержки, плацебо, по годам), docs/REJECTED.md. ПОЧЕМУ: цель — найти кандидатов на 5м или доказать с цифрами их отсутствие. КАК ПРОВЕРЕНО: движок сверен с прод-движком TON-бота 1:1; плацебо и рандом-контроль в отчёте; бутстрап по дням.
This commit is contained in:
Executable
+28
@@ -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"
|
||||
Reference in New Issue
Block a user