#!/bin/bash
# Collect equity snapshots during a backtest run
# Polls progress.json every 2 seconds, saves to equity_snapshots.json
# Usage: bash collect_equity_snapshots.sh &  (run BEFORE starting backtest)

cd /var/www/html/crpytotradingbot
OUTFILE="results/equity_snapshots.json"

echo "[" > "$OUTFILE"
FIRST=1
PREV_CANDLE=0

echo "Collecting equity snapshots → $OUTFILE"
echo "Waiting for backtest to start..."

while true; do
    if [ -f backtest_progress.json ]; then
        STATUS=$(python3 -c "
import json
try:
    d = json.load(open('backtest_progress.json'))
    s = d.get('status', '')
    eq = d.get('equity', 0)
    bal = d.get('balance', 0)
    px = d.get('current_price', 0)
    dt = d.get('current_date', '')
    cn = d.get('processed', 0)
    print(f'{s}|{eq}|{bal}|{px}|{dt}|{cn}')
except:
    print('error|0|0|0||0')
" 2>/dev/null)
        
        IFS='|' read -r ST EQ BAL PX DT CN <<< "$STATUS"
        
        if [ "$ST" = "running" ] && [ "$CN" != "$PREV_CANDLE" ] && [ "$CN" != "0" ]; then
            if [ "$FIRST" -eq 1 ]; then
                FIRST=0
            else
                echo "," >> "$OUTFILE"
            fi
            echo "  {\"equity\": $EQ, \"balance\": $BAL, \"price\": $PX, \"date\": \"$DT\", \"candle\": $CN}" >> "$OUTFILE"
            PREV_CANDLE="$CN"
        fi
        
        if [ "$ST" = "completed" ] || [ "$ST" = "complete" ]; then
            echo "" >> "$OUTFILE"
            echo "]" >> "$OUTFILE"
            echo "Backtest complete. Snapshots saved to $OUTFILE"
            exit 0
        fi
    fi
    sleep 2
done
