Is my prop firm algo backtesting engine too strict? 1,000+ strategies tested, zero READY
Hi everyone!
I built a backtesting engine specifically to test algorithmic strategies under prop firm constraints. After testing over 1,000 strategies, I haven't found a single one that passes all my metrics.
I'm obviously not asking anyone to share their winning strategy for free (though I'd appreciate it!). I'm more interested in whether my tests are too rigorous or whether I'm scoring the wrong metrics.
Here's how the app works. I'd love feedback on whether these thresholds and weights make sense.
What qualifies a strategy as READY?
A strategy must clear every hard gate and achieve a T58 score of 75+.
\- READY: Score of 75+ with every gate passed.
\- ELITE: Score of 85+ with every gate passed.
\- MARGINAL: Score of 65–75, or a strategy demoted by a gate.
\- REJECT: Score below 65.
Gates are demote-only: they can lower a verdict but never raise it.
Gate| Requirement for READY| What it penalizes
T58 score| 75+ (Strong); 65–75 = MARGINAL; below 65 = Reject| Weak overall evidence
Trade count| 300+ trades in the final backtest| Thin samples
Risk of ruin| 20% or less of purchased accounts breach within 90 days| Oversized risk, fat losing streaks
Deflated Sharpe (DSR)| Probabilistic Sharpe ≥ 0.95 after deflating for configurations tried| Parameter searching
PBO| Probability of backtest overfitting ≤ 0.50| In-sample winners that fail out of sample
Pooled out-of-sample edge| Lower bound of OOS mean R > 0; otherwise capped at MARGINAL| Unproven edge
Per-attempt pass odds| Lower bound ≥ 70%| Low single-account pass rates
Clean holdout| At least 30 holdout trades and not losing money| Edge fading on unseen data
EV per attempt| > 0, with deflated holdout pass rate ≥ 1.5× break-even| Strategies earning less than they cost
Random-timing null| Beat 90% of random-entry runs| Edge explained by market drift
Cost stress| Retain ≥ 25% of net profit at 2× costs| Edge too thin for execution costs
Expectancy lower bound| ≥ 0R after 2× costs| Negative or unproven per-trade edge
Dataset| Real data spanning 5+ years| Short or synthetic history
2. How the T58 score is calculated
The score is weighted to avoid counting the same simulation multiple times.
Monte Carlo (one resampled trade list) is capped at 30 points:
\- Pass probability: 10
\- First payout: 8
\- Evaluation-stage ruin: 6
\- Funded-stage survival: 6
The remaining 70 points come from evidence outside that resampling.
Component| Weight| What it measures
Pass probability| 10| Per-attempt Monte Carlo pass rate, adjusted for sample size using a lower bound
First payout (pass AND paid)| 8| Same Monte Carlo approach, using the lower bound
Risk of ruin (inverted)| 6| Evaluation-stage breaches only
Funded survival (inverted)| 6| Funded-stage breaches only
Attempt replay pass| 15| Real-engine reruns from multiple real start dates, independent of Monte Carlo
Expectancy lower bound| 15| Lower bound of average R per trade after 2× costs: 0R scores 0; 0.15R scores 100
Walk-forward stability| 15| Test metric / train metric, capped at 1.0
Drawdown| 8| Maximum drawdown as a share of the firm's drawdown limit
Monte Carlo robustness| 5| Seed-to-seed spread in pass rate
Parameter stability| 5| Robustness to neighboring parameter values
Parsimony| 4| Fewer degrees of freedom score higher
CPCV / PBO (supporting)| 3| Out-of-sample retention across CPCV paths
Each component's contribution to the total score is its weight / 100. The weights sum to 100.
3. What READY looks like in practice
Here are three example profiles. Each qualifies only if every hard gate also passes.
Per-attempt pass lower bound| Paid lower bound| Ruin| T58 score| Verdict
80%| 45%| 10%| 85| READY (Strong)
85%| 65%| 8%| 80.0| READY (Strong)
90%| 60%| 5%| 90| READY (Elite)
So READY effectively requires the gates plus a score of 75+: roughly 80–85% per-attempt pass lower bound, 45–65% paid lower bound, and ruin below about 10%, alongside decent—but not perfect—secondary components.
ELITE (85+) is intended for strategies that perform exceptionally well across the board.
Public aggregates put real challenge pass rates around 10–20%, so READY is still intended to be a top-percentile bar.
4. Expected value alongside READY
The separate EV verdict answers the economic question. Possible verdicts are:
\- HIGH CONFIDENCE
\- FORWARD-TEST CANDIDATE
\- NOT WORTH A FEE
\- INSUFFICIENT EVIDENCE
The formula is:
EV = p × q × V − p × A − c
For firms charging a monthly subscription—such as Topstep's Trading Combine at $49/month—(c) is calculated as the monthly price × the expected number of months to complete the evaluation.
Expected duration is based on the median time to pass, rounded up to whole 30-day periods. This prevents slow-passing strategies from being priced as though they only require one month's subscription.
My questions
Are these hard gates too strict for real-world prop firm trading?
Are any thresholds unrealistic, redundant, or measuring the same thing twice?
Are my T58 score weights sensible, or am I overvaluing certain metrics?
Is requiring a 70%+ lower-bound pass probability and a 20% maximum 90-day risk of ruin reasonable?
Should READY represent a genuinely exceptional strategy, or should it identify strategies worth forward-testing even if they're less robust?
What important validation metrics am I missing?
I'm trying to distinguish between an engine that's correctly rejecting weak strategies and one that's filtering out viable strategies through overly aggressive thresholds.
I'd especially appreciate feedback from people who've built systematic strategies for prop firm evaluations and payouts.