Analytics of Trading and Investment Strategies

Strategies

Score By Category And Timeframe

Best Strategy Per Category

Best Strategy Per Symbol And Timeframe

How Scoring Works

Every strategy is run on every symbol × timeframe cell, on both real and resampled price history. Each cell gets five 0–100 sub-scores, blended into one composite score by the weights below. A strategy's total score (shown next to its name) is the average of its composite score across all cells, then averaged again across the real and resampled datasets.

Beats Hold
2026-07-07T22:20:47.626005 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
Compares final net equity to what simply holding the asset would have returned over the same window. 50 is break-even; every doubling versus buy-and-hold adds 25 points.
Risk Adjusted
2026-07-07T22:20:47.641287 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
A linear read on the rolling annualized Sharpe ratio at the last trade — 0 Sharpe scores 5, roughly 1.7 Sharpe maxes out the scale.
Profitability
2026-07-07T22:20:47.654376 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
How many times the starting cash multiplied, on a log scale — each doubling of capital is worth 20 points.
Win Rate
2026-07-07T22:20:47.668199 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
The share of trades that closed profitable, rescaled so a 20% win rate scores 0 and a 60% win rate maxes out the scale.
Fee Efficiency
2026-07-07T22:20:47.681112 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
The share of the fee-free (gross) result that survives after fees — 60% survival scores 0, keeping the full gross result scores 100.
Composite
2026-07-07T22:20:47.699791 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/
The five sub-scores blended by weight into one 0–100 number per symbol × timeframe cell — beating a hold and risk-adjusted return carry the most weight.