Validation

Strategy transparency

The MA-crossover strategy used by the agent runs through a four-stage Monte Carlo Permutation Test framework. Every stage's result is published below — including failures.

Verdict
NO SHIP
Validated September 11, 2026 · 17,545 bars of 1h SOL/USDC (2024-01-012026-01-01)
Validation FAILED — strategy did not clear the four-stage MCPT gate. The exported parameters are the agent's hardcoded defaults; the agent will compute MA crossover signals but those signals have no demonstrated edge over random. Operator should either (a) keep the strategy disabled in production, (b) retune the search space and re-run validation, or (c) use SpectraQ as a demo only with this verdict surfaced to depositors.

Stage 2 — IS permutation

p-value · 1000 perms
0.3417
≥ 0.05 — fails gate
Real IS Sharpe vs distribution of best-of-grid Sharpes on shuffled price series.

Stage 3 — Walk-forward

OOS Sharpe (annualized)
-0.397
return -32.4% · dd -64.9%
Rolling re-optimization on training window, params applied unchanged to test window.

Stage 4 — WF permutation

p-value · 200 perms
0.4776
≥ 0.05 — fails gate
Real WF Sharpe vs distribution of WF Sharpes on shuffled series. The strongest gate.

Walk-forward OOS equity

Concatenated test-window log returns, exp-cumsum

Walk-forward OOS equity curve

In-sample optimization

IS-best fast / slow
17 / 80
IS Sharpe
+1.328

Live agent params

fast_n
10
slow_n
30

The agent currently runs MA(10, 30). This is the hardcoded default; given the failed verdict, treat the live signal as a demonstration only.

Holdout — bars the search never saw

5,832 hourly bars after 2026-01-01 · scored after the verdict, never fed into it

ParametersSharpeReturnMax DDTrades
In-sample best MA(17, 80)-0.124-3.4%-36.3%105
Live agent MA(10, 30)-0.174-4.8%-37.9%207
Last walk-forward fold MA(18, 70)+0.184+5.2%-38.8%95
Buy & hold SOL-17.5%

Provenance

A rerun over the same bars must reproduce both hashes

Input bars · SHA-256
7a0698a44b01f83ef1eec97fb83ff7123af8cdd031b6c5333a0ef6af27529862
binance SOL/USDC 1h via ccxt
Validation artifact · SHA-256
ed2d74884e94663918059a6b379620e0da46cdac212658e1479d09646e59f98f

If the input hash differs on your rerun, the data changed — compare nothing else until it matches. If the input hash matches and the artifact hash does not, the statistics changed.

Reproduce

All four stages and the holdout can be reproduced from the open-source pipeline. Permutations are seeded, so the p-values are exact, not approximate.

cd strategy
source .venv/bin/activate
MCPT_WORKERS=4 python scripts/run_validation.py   # writes data/validation_result.json
python scripts/export_params.py     # publishes to agent + frontend
jupyter lab notebooks/01_validate_ma_crossover.ipynb