sentinel-backend / scripts /train_and_backtest.sh
Penguindrum920's picture
Deploy SENTINEL backend to Hugging Face Spaces
6a09e49 verified
Raw
History Blame Contribute Delete
1.92 kB
#!/bin/bash
# Simple script: Train RL model and backtest automatically
# Usage: ./train_and_backtest.sh my_model 250000
MODEL_NAME="${1:-experiment_1}"
TIMESTEPS="${2:-250000}"
CSV_PATH="../data/historical_1m.csv"
echo "Starting train -> backtest workflow..."
echo " Model: $MODEL_NAME"
echo " Timesteps: $TIMESTEPS"
echo ""
# Step 1: Train
echo "------------------------------------------------------------------"
echo "STEP 1: Training..."
echo "------------------------------------------------------------------"
python3 train_backtest_rl_system.py train \
--csv "$CSV_PATH" \
--name "$MODEL_NAME" \
--algo ppo \
--timesteps "$TIMESTEPS"
if [ $? -ne 0 ]; then
echo "[error] Training failed"
exit 1
fi
echo ""
echo "[ok] Training complete"
echo ""
# Step 2: Find the latest checkpoint (or latest_model alias)
echo "------------------------------------------------------------------"
echo "STEP 2: Finding latest checkpoint..."
echo "------------------------------------------------------------------"
LATEST_CHECKPOINT="./checkpoints/rl_training/${MODEL_NAME}_ppo/latest_model.zip"
if [ ! -f "$LATEST_CHECKPOINT" ]; then
LATEST_CHECKPOINT=$(ls -t ./checkpoints/rl_training/"${MODEL_NAME}"_ppo/checkpoint_*.zip 2>/dev/null | head -1)
fi
if [ -z "$LATEST_CHECKPOINT" ]; then
echo "[error] No checkpoint found"
exit 1
fi
echo "Latest checkpoint: $LATEST_CHECKPOINT"
echo ""
# Step 3: Backtest
echo "------------------------------------------------------------------"
echo "STEP 3: Backtesting..."
echo "------------------------------------------------------------------"
python3 train_backtest_rl_system.py backtest \
--csv "$CSV_PATH" \
--model "$LATEST_CHECKPOINT" \
--algo ppo
if [ $? -ne 0 ]; then
echo "[error] Backtest failed"
exit 1
fi
echo ""
echo "[ok] All done. Train -> backtest workflow complete."