#!/usr/bin/env bash
set -euo pipefail

workspace_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
user_data_dir="${USER_DATA_DIR:-$workspace_root/freqtrade}"
config_file="${CONFIG_FILE:-/freqtrade/user_data/config.example.json}"
data_dir="${DATA_DIR:-/freqtrade/user_data/user_data/data/binance}"
results_root="${RESULTS_ROOT:-/freqtrade/user_data/user_data/backtest_results/edge-exclusion}"
image="${FREQTRADE_IMAGE:-freqtradeorg/freqtrade:stable}"
docker_cpus="${DOCKER_CPUS:-0.75}"
docker_memory="${DOCKER_MEMORY:-900m}"

run_backtest() {
    local label="$1"
    local timerange="$2"
    shift 2
    docker run --rm \
        --cpus "$docker_cpus" \
        --memory "$docker_memory" \
        --memory-swap "$docker_memory" \
        --volume "$user_data_dir:/freqtrade/user_data" \
        "$image" backtesting \
        --config "$config_file" \
        "$@" \
        --strategy-path /freqtrade/user_data/strategies/volatility_breakout \
        --strategy VolatilityBreakout \
        --datadir "$data_dir" \
        --backtest-directory "$results_root/$label" \
        --timerange "$timerange" \
        --timeframe 5m \
        --fee 0.00035 \
        --cache none \
        --enable-protections \
        --export trades
}

run_backtest baseline-training 20260101-20260501
run_backtest edge-minus-training 20260101-20260501 \
    --config /freqtrade/user_data/research-edge-exclusion.overlay.json

run_backtest baseline-validation 20260501-20260710
run_backtest edge-minus-validation 20260501-20260710 \
    --config /freqtrade/user_data/research-edge-exclusion.overlay.json
