Sample result. A real backtest on the live engine, shown so you can explore the actual research output: metrics, robustness, charts, and trade analysis.
Start free to run your own →
Adequate risk-adjusted performance
Sharpe 0.56 · significant 21.6% max drawdown · 95% confidence Sharpe > 0
Continue in AI →
Research only, not investment advice. Results are simulated or historical, depend on the stated assumptions and data, and are not a recommendation. Verify independently. Full disclaimer →
Ann. return+9.6%
Sharpe0.56
Sortino0.59
Max drawdown-21.6%
Volatility11.4%
RobustnessB
Recompute live Risk-free moves Sharpe & Sortino instantly (client-side); the trade-cost slider re-derives net performance server-side. No new backtest, no credit.
Result caveats
ChartsRobustnessTry to break itMonte CarloWalk-forwardSequencingEdgeCost cushionYearlyDeepenEquityCompareExposureTradesTrade labSeasonalityAudit
Research Robustness Scorecard

Backtest it. Then try to break it. Every result is challenged for statistical significance, overfitting, cost fragility, regime-dependence, tail and drawdown risk before it earns a grade. The grade measures the strength of the evidence, how well the result survives scrutiny, never whether to invest.

B69.3/100
Assessed grade B+ (77/100) on 90% evidence coverage, complete the n/a checks below to lift the overall grade toward it.
Grade B (69/100), fair robustness. Strong on: statistical significance, sample length, cost robustness, data quality. Among the 90% of evidence actually assessed the grade is B+ (77/100); completing the unassessed checks moves the overall grade toward that band.
Statistical significance
96
Sample length
100
Activity / trade count
66
Out-of-sample evidence
71
Overfitting probability
n/a
Risk profile
56
Tail risk
62
Regime robustness
66
Return stability
64
Alpha purity
60
Cost robustness
100
Data quality
95

The robustness score weighs statistical significance, sample size, activity, out-of-sample evidence, overfitting probability, risk, tail risk, regime robustness, return stability, alpha purity, cost margin, and data quality. The headline grade is conservative (unassessed checks score zero); assessed_grade is the grade among the evidence measured. A high grade is necessary but not sufficient, confirm with independent replication before any capital decision.

Backtest it. Then try to break it.

Each robustness attack, what it asked, and whether the result held or raised a concern. Descriptive evidence about how the result survives scrutiny, never advice.

Out-of-sample decay Held
Does the edge survive on data the parameters never saw?
71% of 17 walk-forward test windows stayed positive.
Transaction-cost fragility Held
How much trading cost erases the edge?
Breakeven transaction cost is ~90 bps of headroom.
Historical stress Held
How did it behave in past crises?
Worst named regime (Inflation & Rate Shock 2022): -16.6% return, -16.6% drawdown.
Luck / significance Held
Is the Sharpe real, or an artefact of a short, lucky sample?
Probabilistic Sharpe Ratio 95% (probability true Sharpe > 0).
Regime dependence Concern
Does it only work in calm bull markets?
Worst regime (downtrend): -25.6% annualised; 4/5 regimes positive.
Analysis of user-supplied returns. Helvetic did not source or verify this data. Figures are annualised at the stated frequency. Research only, not investment advice.
Performance
Total ReturniCumulative growth over the whole period, before any annualisation.final_equity / first_equity - 1
+174.2%
Annualised ReturniThe constant yearly rate (CAGR) that compounds to the total return.(1 + total_return) ** (1 / years) - 1, years = (n_points - 1) / periods_per_year
+9.63%
p.a.
Sharpe RatioiExcess return per unit of total risk; higher is better, >1 is strong.((1 + mean(returns)) ** periods_per_year - 1 - risk_free_rate) / annualised_volatility
0.56
Risk-adjusted
Sortino RatioiLike Sharpe but penalises only downside volatility, not upside swings.((1 + mean(returns)) ** periods_per_year - 1 - risk_free_rate) / (stdev(returns < 0) * sqrt(periods_per_year))
0.59
Downside-adjusted
Calmar RatioiAnnual return earned per unit of worst peak-to-trough loss.annualised_return / abs(max_drawdown)
0.45
Return / Max DD
Risk
Volatility p.a.iYearly standard deviation of returns, how much the result swings.stdev(returns) * sqrt(periods_per_year)
+11.41%
Max DrawdowniLargest peak-to-trough decline experienced during the period.min((equity - running_peak) / running_peak)
-21.55%
525 trading days
VaR 95% (daily)iLoss the result is not expected to exceed on 95% of periods (historical).5th percentile of the per-period return distribution
-1.20%
CVaR -1.915%
Ulcer IndexiDepth-and-duration of drawdowns; lower means shallower, shorter pain.sqrt(mean(drawdown_pct ** 2))
7.61
Depth+duration of DDs
Return Quality
Win Rate (trading days)iShare of periods with a positive return.count(returns > 0) / count(returns)
42.7%
1180W / 958L
Positive MonthsiShare of calendar months with a positive return.count(monthly_returns > 0) / count(monthly_returns)
60.3%
Profit FactoriGross gains divided by gross losses; >1 means gains outweigh losses.sum(gains) / abs(sum(losses))
1.19
Omega RatioiProbability-weighted gains versus losses around the risk-free hurdle (Minimum Acceptable Return).sum(returns above hurdle) / abs(sum(returns below hurdle))
1.11
Payoff RatioiAverage winning return divided by the average losing return (magnitude).mean(returns > 0) / abs(mean(returns < 0))
0.97
Avg win / avg loss
Recovery FactoriTotal return earned per unit of worst peak-to-trough loss.total_return / abs(max_drawdown)
8.08
Return / Max DD
Gain-to-PainiSum of monthly returns over the absolute sum of negative months (Schwager).sum(monthly_returns) / abs(sum(monthly_returns < 0))
1.00
Monthly (Schwager)
Ulcer Perf. IndexiMartin ratio: excess annual return per unit of Ulcer Index (drawdown depth+duration).(annualised_return - risk_free_rate) / ulcer_index
0.74
Martin ratio
Tail RatioiRight-tail size versus left-tail size; above 1 means gains reach further than losses.abs(percentile(returns, 95) / percentile(returns, 5))
0.98
P95 / |P5|
Common Sense RatioiProfit factor scaled by the tail ratio; rewards both a positive edge and a benign tail.profit_factor * tail_ratio
1.17
CPC IndexiComposite edge index combining profit factor, win rate, and payoff ratio.profit_factor * win_rate * payoff_ratio
0.49
Best MonthiLargest single-month gain.max(monthly_returns)
+10.88%
Worst MonthiLargest single-month loss.min(monthly_returns)
-7.64%
SkewnessiAsymmetry of returns; positive favours upside surprises.third standardised moment of returns
-0.99
Return asymmetry
Excess KurtosisiFat-tailedness versus a normal distribution; higher means more extremes.fourth standardised moment - 3
5.53
Fat-tail risk
Versus Benchmark
Excess ReturniTotal return above the benchmark over the period.strategy_total_return - benchmark_total_return
-129.05%
vs SPY
BetaiSensitivity to the benchmark; 1 moves with it, 0 is independent.cov(returns, benchmark) / var(benchmark)
0.410
vs SPY
Tracking ErroriYearly volatility of the return difference versus the benchmark.stdev(returns - benchmark_returns) * sqrt(periods_per_year)
13.67%
p.a.
Information RatioiBenchmark-relative excess return per unit of tracking error.annualised(excess_return) / tracking_error
-0.27
Jensen's AlphaiAnnual return beyond what the benchmark exposure (beta) explains.ann(return) - (rf + beta * (ann(benchmark) - rf))
+1.68%
p.a.
Up CaptureiShare of the benchmark's gains captured on its up periods (100% = matches).mean(returns | benchmark up) / mean(benchmark | up) * 100
62%
Down CaptureiShare of the benchmark's losses taken on its down periods (lower is better).mean(returns | benchmark down) / mean(benchmark | down) * 100
61%
Statistical Significance
Probabilistic Sharpe
95%
Confidence the true Sharpe > 0
Min. Track Record
10.4y
Sample is long enough (95% conf.)
Interpretation
Strong: the Sharpe is very likely positive (>95% confidence).
About 10.4 years of this return profile are needed before the Sharpe is statistically positive at 95% confidence. The current sample meets this.
Research Workbench Charts
Rolling Sharpe (1Y)
Rolling Volatility (1Y, annualised %)
Annual Returns
Daily Return Distribution
Skew -0.99 Excess kurt. 5.53 Best trading day +2.74% Worst trading day -5.76%
Blue bars = observed daily returns. Gold line = a normal curve with the same mean and volatility, fat left tails or a leftward skew versus it flag crash risk the average hides. Dashed markers: VaR 95% (loss exceeded 1 period in 20) and mean.
Monte Carlo Projection , forward outcome range

Block-bootstrap resampling of the strategy's own return path, projected forward one year across 2,000 simulated paths. It answers "given how this strategy has behaved, what range of outcomes is plausible from here?" , a distributional stress view, not a forecast.

Projected value: percentile bands
Where the projection lands: terminal value distribution
OutcomeProjected valueTotal returnAnnualised

Client-side estimate over 2,000 paths, it uses the same block-bootstrap method as the server and converges to it within simulation error. For the canonical server run, use the Monte Carlo check in Deepen Analysis below. Probabilities are relative to the current portfolio value; past behaviour need not persist.

Out-of-Sample: Walk-Forward

The rule is re-fit on a rolling in-sample window and scored only on the unseen out-of-sample window that follows, the closest thing to trading it forward without hindsight. Consistent positive out-of-sample windows point to a real edge; a collapse versus the full-sample Sharpe points to overfitting.

Out-of-sample Sharpe by window
Per-window out-of-sample results
Out-of-sample windowSharpeReturnMax DD
Calendar-Year Profile
Annual return: strategy vs benchmark
Calendar-year returns (year-end to year-end; the first year runs from inception). A benchmark bar appears when one is stored for this run.
Risk vs return, one point per year
Each dot is one calendar year: horizontal = that year's realised volatility, vertical = that year's return. Up-and-left is the ideal quadrant (more return per unit of risk).
Deepen Analysis
Choose an institutional check
Run a focused robustness check and Helvetic will summarize the result here. Raw payloads stay available under technical details instead of taking over the page.
  • Significance tests whether the Sharpe is likely real.
  • Factor shows what risk factors the returns are really betting on.
  • Random null checks the edge against random timing on the same instrument.
  • Turnover estimates trading activity and cost sensitivity.
Walk-forward, Monte Carlo and drawdowns already have their own always-on cards above, so they are not repeated here.
Equity Curve (USD)
Custom range to
Benchmark Overlay
Compare Overlay
No comparable retained runs yet. Save another backtest and it will appear here.
Overlays are rebased to this strategy's starting value.
Visible Window
Window Return-
Max DD-
Best Day-
Last Value-
Relative Diagnostics
Active Return-
Tracking Error-
Beta-
Correlation-
Select a benchmark overlay to unlock active-risk diagnostics for the visible chart window.
Compare Strategies

Select up to three of your other retained runs to compare on the numbers. This run is always the first column.

No comparable retained runs yet. Save another backtest and it will appear here.
Drawdowns: depth and duration
Underwater (% below high-water mark)
Time underwater (trading days since last peak)
Resets to zero at every new equity high. Long plateaus are the pain a max-drawdown number alone hides, how long you would have waited to recover.
Exposure Over Time
Trade Statistics
Round Trips
29
Trade Win Rate
20.7%
Avg Trade
+3.73%
Profit Factor
4.45
Avg Holding
67.4d
Time in Market
76%
Statistics cover completed trades only. One long position is still open (entered 2025-05-13, 160 bars), currently +18.75% unrealised, excluded from the numbers above.
Recent Trades
#SideEntryExitHoldingReturnResult
1 LONG 2022-08-17 2022-08-18 1d -0.81% Loss
2 LONG 2022-12-01 2022-12-06 3d -2.08% Loss
3 LONG 2022-12-14 2022-12-15 1d -0.74% Loss
4 LONG 2023-01-12 2023-01-19 4d -1.12% Loss
5 LONG 2023-01-23 2023-03-13 34d -2.62% Loss
6 LONG 2023-03-15 2023-03-16 1d -0.72% Loss
7 LONG 2023-03-17 2023-10-26 154d +6.47% Win
8 LONG 2023-11-02 2025-03-11 337d +34.40% Win
9 LONG 2025-03-25 2025-03-27 2d -1.05% Loss
10 LONG 2025-05-13 open 160d +18.75% Open
Most recent 10 of 29 total round trips, oldest first. Return is the per-trade compounded result, net of costs; the final row is the still-open position.
Trade Lab
Per-trade return & cumulative (%)
Return vs holding period
Left: each closed trade's net return (green win / red loss) with the cumulative compounded line, reveals win/loss streaks. Right: return vs holding days, do winners run longer than losers? Based on the most recent round trips.
Sequencing Risk · Trade-Order Permutation
The same 29 trades, re-ordered 2,000 times. Ordering leaves the total return unchanged and moves only the drawdown path, so this isolates whether the realised drawdown comes from the trades or from the order they happened in. Research only.
Realised max drawdown
-12.38%
Median re-ordering
-12.69%
Mildest ordering
-6.53%
Deepest ordering
-25.44%
Orderings milder than realised
46%
The realised drawdown is typical of random orderings of the same trades: the drawdown reflects the trades themselves, not lucky or unlucky sequencing.
Where the Edge Comes From · Benchmark Regimes
Every period is bucketed by what the benchmark did (one-sigma benchmark-return quantiles (Bear <=16th pct, Bull >=84th pct)). Each regime's Sharpe contribution sums to the full-sample arithmetic Sharpe (0.86), so this shows where the risk-adjusted return is actually earned. Research only.
Benchmark regimeShare of periodsStrategy return (p.a.)Sharpe contribution
Bear 16% -89.1% -3.10
Normal 68% +22.0% +1.18
Bull 16% +620.0% +2.79
Most of the risk-adjusted return is earned when the benchmark is strong (Bull periods), so the edge is largely bull-dependent and may weaken in flat or falling markets.
Cost Robustness · Fee Cushion
Fee cushion
8.9x
Breakeven cost
90 bps
Cost assumed
10.0 bps
The strategy stays profitable up to 90 bps of cost per unit of turnover, versus the 10.0 bps assumed here: a 8.9x cushion. A cushion near or below 1x means the edge leans on an optimistic cost assumption. Research only.
Rolling 1-Year Stability
Latest Sharpe
0.51
Min Sharpe
-2.57
Max Sharpe
3.53
Positive Windows
64%
Regime Slicer
RegimeTrading daysAnnualisedSharpeWorst Trading day
Bull / Uptrend211521.12%1.37-5.76%
Bear / Downtrend451-25.59%-3.83-4.49%
RegimeTrading daysAnnualisedSharpeWorst Trading day
Low Volatility91510.34%1.25-1.80%
Mid Volatility91520.40%1.62-2.70%
High Volatility9151.35%-0.16-5.76%
Volatility regimes are sliced from 21-day realised volatility.
Stress Period Analysis
PeriodDatesReturnMax DDSharpeVol
COVID-19 Crash 2020-02-03 → 2020-12-31 8.47% -17.84% 0.40 17.4%
Inflation & Rate Shock 2022 2022-01-03 → 2022-12-30 -16.64% -16.64% -2.57 8.0%
Post-COVID Recovery 2020-04-01 → 2021-12-31 62.81% -9.44% 2.01 14.6%
Crypto Winter 2022 2021-11-01 → 2022-12-30 -13.13% -16.64% -1.60 9.4%
Crypto Bull Run 2020-21 2020-10-01 → 2021-10-29 38.18% -7.35% 2.39 13.5%
Monthly and Yearly Returns (%)
YearJanFebMarAprMayJunJulAugSepOctNovDecYear ReturnYear Max DD
2015 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.2 -0.2 -6.1 -5.19% -7.67%
2016 -0.1 0.0 1.8 0.4 1.7 -1.6 3.6 0.1 0.0 -1.7 3.7 2.0 +10.18% -5.62%
2017 1.8 3.9 0.1 1.0 1.4 0.6 2.1 0.3 2.0 2.4 3.1 1.2 +21.71% -2.61%
2018 5.9 -3.6 -2.7 0.5 2.4 0.6 3.7 3.2 0.6 -7.5 -1.5 -2.1 -1.34% -11.31%
2019 0.0 0.7 1.8 4.1 -6.4 4.7 1.5 -1.7 1.9 2.2 3.6 2.9 +16.04% -6.47%
2020 -0.0 -7.6 -6.5 0.0 1.6 1.8 5.9 7.0 -3.7 -2.5 10.9 3.7 +9.23% -17.84%
2021 -1.0 2.8 4.5 5.3 0.7 2.2 2.4 3.0 -4.7 7.0 -0.8 4.6 +28.73% -5.11%
2022 -7.6 -4.4 1.5 -2.7 0.0 0.0 0.0 -0.9 0.0 0.0 0.0 -3.0 -16.15% -16.64%
2023 1.3 -2.5 0.0 1.6 0.5 6.5 3.3 -1.6 -4.7 -2.4 7.9 4.6 +14.36% -9.43%
2024 1.6 5.2 3.3 -4.0 5.1 3.5 1.2 2.3 2.1 -0.9 6.0 -2.7 +24.57% -8.41%
2025 2.7 -1.3 -6.8 0.0 1.0 5.1 2.3 2.0 3.6 2.4 0.2 0.8 +12.16% -10.38%
Cell shading scales with monthly return magnitude. Year Return is year-end to year-end, with the first year measured from inception; Year Max DD is the worst intra-year peak-to-trough.
Seasonality: average return by calendar month (%)
Mean return for each calendar month across every year in the sample (green = positive average, red = negative). A lens on calendar tendencies, short samples overfit easily, so treat it as a hypothesis, not a guarantee.
Drawdown Recovery Table
StartTroughEndDepthDurationTrading days to New High
2022-01-042023-03-172024-02-07 -21.55% 525d 224d
2020-02-192020-03-062020-11-16 -17.84% 189d 177d
2018-09-212019-02-082019-11-26 -12.08% 297d 202d
2025-02-192025-05-232025-08-13 -10.38% 121d 55d
2018-01-262018-02-082018-07-25 -10.10% 124d 115d
Assumptions & Audit Trail
Provider: Yahoo Finance via yfinance
Adjustment: auto_adjust=True; splits and dividends incorporated by provider
Dataset SHA-256: 28fe6424f262a8b0cb3…
Backtest ID: sample-result
Cost used: 10.00 bps per unit turnover
Execution: signals generated on close; position changes execute on the next bar
Warm-up: 200 bars; first valid 2015-10-16; first signal 2015-10-22
Data quality: 95/100
Integrity: WARN
Conventions: Metrics reported on daily bars (252/yr); Sharpe and Sortino use the arithmetic-mean-compounded excess-return convention.
Disclaimer: Past performance is not indicative of future results. Not investment advice.
Data-quality warnings:
Largest date gap is 5 days; inspect missing history or market closure.
Raw JSON