#!/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"