Monte-Neo strategy verdict REJECT

Certificate 90b86e297855b9d6 · engine v0.43.0 · 2026-09-30T08:39:54+00:00

Rejected: truncation probe: LEAK DETECTED; future-perturbation probe: LEAK DETECTED (and 4 more).
integrity3 pass
lookahead1 pass · 4 fail
economics1 pass · 1 fail
statistics3 pass · 1 fail
Not signed. Sign with monte-neo verify ... --sign KEY to prove who issued it.

Summary

net return-64.97%
Sharpe (annualized)-232.58
max drawdown-65.19%
closed trades1492
Deflated Sharpe0.000
timing p-value—
buy & hold return-1.76%
buy & hold Sharpe-5.01
break-even cost6.5 bps
Sharpe 95% interval-259.89 … -206.61
return 95% interval-69% … -61%
spread from high-low10.4 bps
capacity at 5% of volume13K
positionssign

Equity

0.35×0.59×1.00×2024-01-012024-01-030%-65.1%
strategybuy & holddrawdownlog scale
Return distributionmean -0.036%-0.20%+0.22%

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

Rolling Sharpe0.0-371.4

Annualized, trailing window of 293 bars.

Sensitivity to costs+592%-100%0 bps50 bps per sidemodeled 10 bpshalf-spread from high-low 5.22 bps

Net return as the per-side trading cost grows.

Trades

closed trades1492
win rate20.1%
profit factor0.24
average win+0.11%
average loss-0.11%
best trade+0.55%
worst trade-0.20%
average hold2.0 bars
longest win streak4
longest loss streak27

What to fix

  1. The signal at bar t changes when later bars are removed: compute features only from rows <= t (no shift(-k), centered windows, bfill or full-sample stats).
  2. Past signals change when the future is rewritten: remove whole-series statistics (mean/std/min/max over all rows) and future-dependent fills.
  3. Fix the flagged source lines (negative shift, center=True, backward fill) and re-run verify. Lines: 7.
  4. Next-bar hit rate is too high to be real: look for leakage of the next bar's close/open into the signal.
  5. The strategy loses money after costs: reduce turnover or find a stronger edge.
  6. Sharpe does not survive the number of variants tried: test out-of-sample or reduce the search space.

Evidence

fail lookahead_truncation

fail lookahead_perturbation

fail lookahead_static_lint

fail implausible_accuracy

Checks

checkcategorystatussummary
data_integrityintegritypassOHLCV is clean
data_qualityintegritypassno spikes, frozen prices, split jumps or gaps
determinismintegritypasssignal() is deterministic
lookahead_truncationlookaheadfailtruncation probe: LEAK DETECTED
lookahead_perturbationlookaheadfailfuture-perturbation probe: LEAK DETECTED
external_datalookaheadpassoutside data: none read (df only)
lookahead_static_lintlookaheadfailstatic lint: negative_shift
implausible_accuracylookaheadfailnext-bar hit rate 1.000 over 2999 bars (z 54.8)
costs_modeledeconomicspass10.00 bps per side modeled
net_profitabilityeconomicsfailnet total return -64.97% after costs
cost_margineconomicsskipnot profitable after costs
delay_sensitivityeconomicsskipnot profitable after costs
timing_significancestatisticsskipnot profitable after costs
sample_sizestatisticspass1492 closed trades (min 30)
deflated_sharpestatisticsfaildeflated Sharpe 0.000 over 40 trial(s)
trials_disclosedstatisticspassn_trials declared
holdout_consistencystatisticspassSharpe/bar train -0.3171 vs holdout -0.3292
period_consistencystatisticsskipnot profitable after costs
walk_forward_stabilitystatisticsinfo0 of 6 equal windows (490 bars each) made money; worst -17.9%, best -11.6%
sharpe_confidencestatisticsinfoSharpe 95% interval -259.89 to -206.61 (return -68.7% to -60.6%); 0% of resamples have a positive Sharpe
track_recordstatisticsinfothe Sharpe is not positive: no history length makes it significant
benchmarkstatisticsinfobuy & hold -1.76% (Sharpe -5.01) vs strategy -64.97% (Sharpe -232.58)
spread_estimateeconomicsinforough spread estimate from high and low: about 10.43 bps (5.22 bps per side); the model charges 5 bps slippage per side
capacityeconomicsinfocapital that keeps 90% of 1,492 fills within a share of the bar's volume: 1%: 2.6K, 5%: 13K, 10%: 26K (median bar trades 2.4M)

By period (segment)

periodbarsreturnbuy & holdSharpeexposure
bars 60-794735-18.72%-2.05%-183.71100%
bars 795-1529735-25.75%-1.75%-265.99100%
bars 1530-2264735-25.32%+0.59%-255.26100%
bars 2265-2999735-22.28%+1.47%-225.71100%

By market regime

market regimeshare of barsstrategymarketSharpe
rising54%-44.28%-1.06%-249.02
falling46%-36.51%+1.53%-225.95
calm50%-38.52%+1.12%-222.98
volatile50%-42.46%-0.66%-253.85

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

Reproduce

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

data f027f3d330505a357cb91cb7e31f49dd8b02f727f9db7ef9e4dafb0879384e2c
signals 45b3a6f9d973ea59894be14d75d67b1c5546b05091273887b0e6aa6d25d02235
source a86ca8eacaec7c18926b6d34f116bf4438b031bf18d95e84dfb56e99fde3cac1

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.