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 →
Track Record Analysis
SPY 200-Day Trend
2015-01-01 → 2025-12-31 · USD reporting
Adequate risk-adjusted performance
Sharpe 0.56 · significant 21.6% max drawdown · 100% confidence Sharpe > 0
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+
Result caveats
- Largest date gap is 5 days; inspect missing history or market closure.
- Indicator warm-up: the longest indicator window used (200-day SMA or equivalent; 200 daily observations) means signals are inactive before 2015-10-19. The performance series includes this flat warm-up interval.
Research Robustness Scorecard
B+72.1/100
Assessed grade A-
(80/100) on 90% evidence coverage —
complete the n/a checks below to lift the overall grade toward it.
Grade B+ (72/100) — good robustness. Strong on: statistical significance, sample length, activity / trade count, cost robustness, data quality. Among the 90% of evidence actually assessed the grade is A- (80/100); completing the unassessed checks moves the overall grade toward that band.
Statistical significance
100
Sample length
100
Activity / trade count
82
Out-of-sample evidence
71
Overfitting probability
n/a
Risk profile
56
Tail risk
62
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, 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.
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.
(annualised_return - risk_free_rate) / annualised_volatility0.56
Risk-adjusted
Sortino RatioiLike Sharpe but penalises only downside volatility, not upside swings.
(annualised_return - risk_free_rate) / downside_deviation0.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.40%
Max DrawdowniLargest peak-to-trough decline experienced during the period.
min((equity - running_peak) / running_peak)-21.55%
525 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 (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
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 - 35.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.
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) * 10062%
Down CaptureiShare of the benchmark's losses taken on its down periods (lower is better).
mean(returns | benchmark down) / mean(benchmark | down) * 10061%
Statistical Significance
Probabilistic Sharpe
99%
Confidence the true Sharpe > 0
Min. Track Record
3.9y
Sample is long enough (95% conf.)
Interpretation
Strong: the Sharpe is very likely positive (>95% confidence).
About 3.8 years of this return profile are needed before the Sharpe is statistically positive at 95% confidence. The current sample meets this.
About 3.8 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 day +2.74%
Worst day -5.76%
Monte Carlo Fan
Walk-Forward (out-of-sample Sharpe)
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.
- Walk-forward checks out-of-sample stability.
- Monte Carlo turns the return path into outcome ranges.
- Turnover estimates trading activity and cost sensitivity.
Equity Curve (USD)
Benchmark Overlay
Compare Overlay
No comparable retained runs yet. Save another backtest and it will appear here.
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.
Strategy Underwater Chart (%)
Exposure Over Time
Trade Statistics
Round Trips
30
Trade Win Rate
23.3%
Avg Trade
+4.23%
Profit Factor
5.05
Avg Holding
70.5d
Time in Market
76%
Recent Trades
| # | Side | Entry | Exit | Holding | Return | Result |
|---|---|---|---|---|---|---|
| 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 30 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.
Rolling 1-Year Stability
Latest Sharpe
0.51
Min Sharpe
-2.52
Max Sharpe
3.28
Positive Windows
64%
Regime Slicer
| Regime | Days | Annualised | Sharpe | Worst Day |
|---|---|---|---|---|
| Bull / Uptrend | 2115 | 21.12% | 1.37 | -5.76% |
| Bear / Downtrend | 451 | -25.59% | -3.83 | -4.49% |
| Regime | Days | Annualised | Sharpe | Worst Day |
|---|---|---|---|---|
| Low Volatility | 915 | 10.34% | 1.25 | -1.80% |
| Mid Volatility | 915 | 20.40% | 1.62 | -2.70% |
| High Volatility | 915 | 1.35% | -0.16 | -5.76% |
Volatility regimes are sliced from 21-day realised volatility.
Stress Period Analysis
| Period | Dates | Return | Max DD | Sharpe | Vol |
|---|---|---|---|---|---|
| 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 (%)
| Year | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Year Return | Year 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
| Start | Trough | End | Depth | Duration | Days to New High |
|---|---|---|---|---|---|
| 2022-01-04 | 2023-03-17 | 2024-02-07 | -21.55% | 525d | 224d |
| 2020-02-19 | 2020-03-06 | 2020-11-16 | -17.84% | 189d | 177d |
| 2018-09-21 | 2019-02-08 | 2019-11-26 | -12.08% | 297d | 202d |
| 2025-02-19 | 2025-05-23 | 2025-08-13 | -10.38% | 121d | 55d |
| 2018-01-26 | 2018-02-08 | 2018-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:
Backtest ID:
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
Disclaimer: Past performance is not indicative of future results. Not investment advice.
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
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.
Largest date gap is 5 days; inspect missing history or market closure.