Monte-Neo strategy verdict PASS_WITH_WARNINGS

Certificate d332434134d4f600 · engine v0.43.0 · 2026-09-30T08:39:55+00:00

Passed with warnings: profit vanishes with 1 bar delay.
integrity3 pass
lookahead5 pass
economics3 pass · 1 warn
statistics10 pass
Not signed. Sign with monte-neo verify ... --sign KEY to prove who issued it.

Summary

net return+175.07%
Sharpe (annualized)5.61
max drawdown-9.88%
closed trades1112
Deflated Sharpe0.998
timing p-value0.005
buy & hold return-38.70%
buy & hold Sharpe-1.60
break-even cost6.5 bps
Sharpe 95% interval+3.03 … +8.38
return 95% interval+70% … +378%
min. track record740 bars
spread from high-low0.0 bps
positionssign

Equity

0.55×1.25×2.86×2020-01-032020-07-270%-9.7%
strategybuy & holddrawdownlog scale
Monthly returnsJanFebMarAprMayJunJulAugSepOctNovDec2020-2.2%+30.0%+24.7%+21.0%+19.7%+16.9%+2.5%
Return distributionmean +0.030%-1.13%+1.29%

Per-bar returns after warm-up, bars with a change only.

Rolling Sharpe13.0-5.5

Annualized, trailing window of 493 bars.

Timing testactual +175.1% (p 0.005)-67%+175%

Net return of 200 time-shifted copies of the same positions. A real signal beats most of them; a strategy that only holds the market does not.

Sensitivity to costs+329%-100%0 bps50 bps per sidemodeled 2 bpshalf-spread from high-low 0 bps

Net return as the per-side trading cost grows.

Trades

closed trades1112
win rate37.0%
profit factor1.35
average win+0.92%
average loss-0.39%
best trade+5.14%
worst trade-1.35%
average hold2.2 bars
longest win streak6
longest loss streak11

What to fix

  1. Profit disappears with one bar of execution delay: the edge lives in fill timing.

Checks

checkcategorystatussummary
data_integrityintegritypassOHLCV is clean
data_qualityintegritypassno spikes, frozen prices, split jumps or gaps
determinismintegritypasssignal() is deterministic
lookahead_truncationlookaheadpasstruncation probe: no leak detected
lookahead_perturbationlookaheadpassfuture-perturbation probe: no leak detected
external_datalookaheadpassoutside data: none read (df only)
lookahead_static_lintlookaheadpassstatic lint: clean
implausible_accuracylookaheadpassnext-bar hit rate 0.539 over 2443 bars (z 3.9)
costs_modeledeconomicspass2.00 bps per side modeled
net_profitabilityeconomicspassnet total return +175.07% after costs
cost_margineconomicspassbreak-even cost 6.55 bps per side vs 2.00 modeled
delay_sensitivityeconomicswarnprofit vanishes with 1 bar delay
timing_significancestatisticspassbeats 100% of 200 shifted copies of its positions (p 0.005)
sample_sizestatisticspass1112 closed trades (min 30)
deflated_sharpestatisticspassdeflated Sharpe 0.998 over 6 trial(s)
trials_disclosedstatisticspassn_trials declared
holdout_consistencystatisticspassSharpe/bar train +0.0722 vs holdout +0.0313
period_consistencystatisticspassprofitable in 3 of 3 periods
walk_forward_stabilitystatisticsinfo6 of 6 equal windows (824 bars each) made money; worst +2.7%, best +38.1%
sharpe_confidencestatisticsinfoSharpe 95% interval +3.03 to +8.38 (return +70.2% to +378.4%); 100% of resamples have a positive Sharpe
track_recordstatisticsinfoneeds 740 bars (about 0.08 years) to be positive at 95%; has 4,939
benchmarkstatisticsinfobuy & hold -38.70% (Sharpe -1.60) vs strategy +175.07% (Sharpe 5.61)
spread_estimateeconomicsinforough spread estimate from high and low: about 0 bps (0 bps per side); the model charges 1 bps slippage per side
walk_forward_oosstatisticspasswalk-forward OOS Sharpe/bar +0.0597 vs in-sample best +0.0600
parameter_plateaustatisticspassneighbouring parameters keep 76% of the best Sharpe (median of 1)
pbostatisticspassprobability of backtest overfitting 0.034: the best combination in training ranks below the median in testing in 3% of 12,870 splits; its testing return is a loss in 1%
reality_checkstatisticspassSPA p = 0.001 (Reality Check 0.001): the best of 6 combinations beats cash by more than the search explains

By period (quarter)

periodbarsreturnbuy & holdSharpeexposure
2020-Q12124+58.49%-31.03%5.8848%
2020-Q22184+69.38%-1.07%6.6950%
2020-Q3632+2.47%-10.17%1.1749%

By market regime

market regimeshare of barsstrategymarketSharpe
rising43%+59.84%-9.56%6.13
falling57%+82.41%-19.23%6.14
calm50%+81.94%-13.48%6.67
volatile50%+60.25%-15.57%5.57

Regime of a bar: the market's trailing return and volatility over the previous 250 bars.

Parameter search

6 combinations; best {'lookback': 1}.

Walk-forward out-of-sample Sharpe per bar: 0.0597; parameter stability 0.75; neighbouring parameters keep 76% of the best Sharpe.

Sharpe per bar: rows lookback

10.06020.04630.03850.02580.028130.020

Where the winner of the search ranks on unseen data, over every split of the sample in two halves (left of the line: below the median).

PBO 0.03-4.0+4.0

Reproduce

Costs: 1.00 bps commission + 1.00 bps slippage per side; fills at the next bar's open; long_short; warm-up 60 bars; n_trials 6; min_trades 30.

data e5c0a0d69c46ecd5418a1a5f6433ab494d004f1f28bed057cefe23b8e4dacce4
signals 00712646a5616136b14bba761752bc1c73c8d8170ac8f26bca7140d9c49a8aaf
source cda2b2e7c7ab1ca6d3d0a293963411010b8d6bc2285f8aae968e76d92337bfd2

Re-run with the same data and code: monte-neo verify --recheck CERT --ohlcv DATA --strategy STRATEGY.py

Checks backtest methodology (look-ahead, costs, selection bias), not future profit. Not investment advice.