{"schemaVersion":"2.0","formulaVersion":"v3-riskfloor-1","metric":"avg_r","definition":"The grade is a setup-quality filter, not a forecast of return. It blends entry efficiency, trend/MA structure, relative strength, and volume into one label.","grades":[{"grade":"A+","avgR":null,"sampleSize":278810,"display":"evidence unavailable"},{"grade":"A","avgR":null,"sampleSize":384342,"display":"evidence unavailable"},{"grade":"B+","avgR":null,"sampleSize":343376,"display":"evidence unavailable"},{"grade":"B","avgR":null,"sampleSize":94385,"display":"evidence unavailable"},{"grade":"C","avgR":null,"sampleSize":107760,"display":"evidence unavailable"}],"evidence":{"complete":false,"missing":["costs.fees","costs.slippage","grades[0].trades","grades[0].netProfitFactor","grades[0].maxDrawdownPct","grades[0].holdTime.medianDays","grades[0].holdTime.averageDays","grades[1].trades","grades[1].netProfitFactor","grades[1].maxDrawdownPct","grades[1].holdTime.medianDays","grades[1].holdTime.averageDays","grades[2].trades","grades[2].netProfitFactor","grades[2].maxDrawdownPct","grades[2].holdTime.medianDays","grades[2].holdTime.averageDays","grades[3].trades","grades[3].netProfitFactor","grades[3].maxDrawdownPct","grades[3].holdTime.medianDays","grades[3].holdTime.averageDays","grades[4].trades","grades[4].netProfitFactor","grades[4].maxDrawdownPct","grades[4].holdTime.medianDays","grades[4].holdTime.averageDays","ungradedBaseline","regimes"]},"strategyVerdicts":{"total":23,"counts":{"tuned":12,"provisional":1,"inconclusive":4,"dead":6},"dead":[{"strategyId":"rsi-reversion","name":"RSI Reversion","note":"Killed — a raw profit factor of 1.67 over 533 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."},{"strategyId":"bear-flag","name":"Bear Flag","note":"Killed — a raw profit factor of 0.67 over 29 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."},{"strategyId":"rsi-overbought","name":"RSI Overbought","note":"Killed — a raw profit factor of 1.51 over 512 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."},{"strategyId":"swing-condor","name":"Swing Condor","note":"Killed — a raw profit factor of 1.72 over 40 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."},{"strategyId":"frog-in-the-pan","name":"Frog-in-the-Pan Momentum","note":"Killed — a raw profit factor of 1.84 over 88 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."},{"strategyId":"atr-stretch-reversion","name":"ATR Stretch Reversion","note":"Killed — a raw profit factor of 1.35 over 1,693 out-of-sample trades did not survive our anti-overfit gate (parameter-robustness + shuffle-permutation + multiple-testing Sharpe haircut) — the edge is statistically indistinguishable from luck. Dropped from live picks."}],"summary":"Of 23 candidate setups run through the same anti-overfit gates, 12 passed strictly, 1 are provisional (selection region validated, execution params held at defaults), 4 remain unverifiable on current data, and 6 were killed as empirically broken. We show the dead ones by name.","performanceUrl":"/performance"},"methodology":{"walkForward":true,"survivorshipCaveat":"Backtested on currently-listed symbols only. Stocks that delisted, went bankrupt, or were acquired during the test period are excluded — these tend to be losers. Reported figures are higher than what a live trader would have observed — survivors inflate backtest results. Assume the true historical expectancy is lower.","lookaheadCaveat":"Entry is simulated at the next trading day's open after the signal fires, not the signal bar's close. The engine sees only data up to and including the current bar — no future data is used. No slippage, commissions, or market impact are modeled.","gradeExpectancyNote":"Performance interpretation unavailable until every required evidence field is present.","methodologyUrl":"/methodology","metricsMethodologyUrl":"/methodology/strategy-metrics","backtestRange":{"from":"2021-06-28","to":"2026-06-27"}},"computedAt":"2026-06-27"}