47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# run_focus.sh — focused grid with coverage and confidence sweep
|
||
set -euo pipefail
|
||
|
||
PROJ_DIR="${PROJ_DIR:-$HOME/Documents/Work/TCP/BTC_ETH_regime_predictor}"
|
||
DATA_DIR="${DATA_DIR:-$PROJ_DIR/../data}"
|
||
PY="${PY:-$PROJ_DIR/.venv/bin/python}"
|
||
|
||
BTC="$DATA_DIR/btcusd_1-min_data.csv"
|
||
ETH="$DATA_DIR/ethusd_1min_ohlc.csv"
|
||
SPLIT="2023-01-01"
|
||
N_STATES=3
|
||
BARS_AHEAD=2 # fixed
|
||
CONF_LIST=(0.45 0.50 0.55 0.60)
|
||
|
||
# Rule bands 37–41min and 49–59min
|
||
readarray -t RULES < <(seq 37 41 | awk '{printf "%dmin\n",$1}')
|
||
readarray -t RULES2 < <(seq 49 59 | awk '{printf "%dmin\n",$1}')
|
||
RULES=("${RULES[@]}" "${RULES2[@]}")
|
||
|
||
to_minutes() { echo "${1%min}"; }
|
||
|
||
OUT_DIR="$PROJ_DIR/run_logs"
|
||
mkdir -p "$OUT_DIR"
|
||
LOG="$OUT_DIR/focus_$(date +%Y%m%d_%H%M%S).log"
|
||
|
||
for CONF in "${CONF_LIST[@]}"; do
|
||
echo "### Confidence=$CONF" | tee -a "$LOG"
|
||
for RULE in "${RULES[@]}"; do
|
||
BAR_MIN=$(to_minutes "$RULE")
|
||
HORIZON=$((BARS_AHEAD * BAR_MIN))
|
||
echo "Running rule='$RULE' horizon_min=$HORIZON conf=$CONF" | tee -a "$LOG"
|
||
|
||
"$PY" "$PROJ_DIR/main_conf_metrics.py" \
|
||
--btc "$BTC" \
|
||
--eth "$ETH" \
|
||
--rules "$RULE" \
|
||
--states "$N_STATES" \
|
||
--split "$SPLIT" \
|
||
--horizon "$HORIZON" \
|
||
--conf "$CONF" | tee -a "$LOG"
|
||
|
||
echo | tee -a "$LOG"
|
||
done
|
||
done
|
||
|