Quantitative Trading Research

Professional Analytics of Finance and Trading Strategies

Sort Finance backtests trading ideas the hard way — swept across symbols and timeframes, judged out-of-sample, and measured against buy-and-hold. No cherry-picked charts, only what survives the evidence.


Research Notebooks

Every published strategy, scored and ranked. The Score column is each one's overall 0–100 grade; the heatmaps break it into its five metrics across every market and timeframe, where darker means better.

How each score is computed

Each metric is mapped to 0–100 and clamped to that range. In the formulas, $E_{\text{net}}$ is net equity, $E_{\text{hold}}$ the buy-and-hold equity, $E_0$ the starting capital, $S$ the Rolling Sharpe, and $w$ the win rate in percent.

Score
$\dfrac{1}{28}\sum_{\text{cells}} \big( 0.35\,\text{BH} + 0.30\,\text{RA} + 0.15\,\text{Pr} + 0.10\,\text{WR} + 0.10\,\text{FE} \big)$
The weighted blend of the five metrics, averaged across all 28 market × timeframe cells.
Beats-Hold
$50 + 25\,\log_2\!\left(\dfrac{E_{\text{net}}}{E_{\text{hold}}}\right)$
How far the strategy's net equity runs ahead of simply buying and holding — matching it scores 50, doubling it 75, halving it 25.
Risk-Adjusted
$55\,S + 5$
The Rolling Sharpe ratio on a fixed scale, rewarding smooth equity over lucky spikes — a Sharpe of 1 scores 60, about 1.7 reaches 100.
Profitability
$20\,\log_2\!\left(\dfrac{E_{\text{net}}}{E_0}\right)$
Absolute growth of the starting capital, on a log scale so outliers don't dominate — a 2× ending scores 20, a 32× scores 100.
Win-Rate
$2.5\,(w - 20)$
The share of trades that close in profit — 40% scores 50, 60% scores 100. Trend systems run low here and lean on the other metrics.
Fee-Efficiency
$\left(\dfrac{E_{\text{net}}}{E_{\text{gross}}} - 0.4\right) \Big/ 0.6 \times 100$
How little trading costs erode the result — paying no fees scores 100, surrendering a third of the gross to them scores about 50.
# Strategy Category Score Beats-Hold Risk-Adjusted Profitability Win-Rate Fee-Efficiency
01 Enter Long When WMA 20 Crosses Above WMA 50, Exit When It Crosses Back Down A trend-following crossover on a single market's close: ride the move while the fast weighted moving average sits above the slow one, and step aside when it falls back. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 67
30m 1h 4h 1d BTC 77 72 44 91 ETH 100 100 100 100 SOL 86 45 100 97 BNB 100 19 40 39 DOGE 100 52 100 84 XRP 100 100 100 44 ALL 100 66 94 98
30m 1h 4h 1d BTC 61 58 41 38 ETH 75 54 47 42 SOL 72 58 60 37 BNB 74 58 42 34 DOGE 52 45 49 32 XRP 45 36 35 19 ALL 90 57 56 30
30m 1h 4h 1d BTC 99 94 72 100 ETH 100 97 89 100 SOL 100 85 100 100 BNB 100 100 100 100 DOGE 100 90 100 100 XRP 73 46 66 2 ALL 100 90 100 100
30m 1h 4h 1d BTC 33 32 34 55 ETH 36 38 28 62 SOL 39 39 41 54 BNB 41 39 54 52 DOGE 30 24 27 47 XRP 26 23 27 20 ALL 42 41 43 44
30m 1h 4h 1d BTC 4 42 84 98 ETH 5 42 83 98 SOL 31 59 89 98 BNB 7 43 84 97 DOGE 20 52 88 98 XRP 9 44 84 97 ALL 31 60 89 98
02 Enter When WMA 20, 50, and 200 Stack Bullishly, Exit When WMA 20 Drops Below WMA 50 A trend-following filter built on three weighted moving averages spanning the short, medium, and long term. A long opens only when all three line up in order — 20 above 50 above 200 — so the trade rides established uptrends and sits out when the long-term average has not yet turned. It exits the moment the fast average slips back below the medium, the first crack in the stack. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 66
30m 1h 4h 1d BTC 84 80 76 51 ETH 100 100 100 100 SOL 65 59 87 50 BNB 89 4 22 0 DOGE 100 100 100 38 XRP 100 100 100 29 ALL 96 92 91 15
30m 1h 4h 1d BTC 71 67 50 32 ETH 74 56 56 37 SOL 70 66 58 42 BNB 72 57 40 30 DOGE 59 57 50 31 XRP 47 48 32 13 ALL 78 67 56 35
30m 1h 4h 1d BTC 100 100 98 78 ETH 100 92 100 91 SOL 99 96 100 86 BNB 100 100 100 100 DOGE 100 100 100 80 XRP 75 90 59 0 ALL 100 100 100 49
30m 1h 4h 1d BTC 35 37 57 75 ETH 38 32 43 100 SOL 39 44 34 67 BNB 42 42 49 33 DOGE 31 28 38 33 XRP 27 23 24 0 ALL 38 41 54 75
30m 1h 4h 1d BTC 28 60 90 99 ETH 29 59 90 99 SOL 52 73 93 99 BNB 30 60 89 98 DOGE 44 70 93 99 XRP 36 64 91 99 ALL 50 73 93 99
03 Enter Long on the Golden Cross of SMA 50 Over SMA 200, Exit on the Death Cross A slow trend-following rule on a single market's close: hold long while the 50-bar simple moving average sits above the 200-bar one — the golden cross — and step aside when it falls back below — the death cross. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 63
30m 1h 4h 1d BTC 77 53 86 7 ETH 100 100 100 34 SOL 44 100 100 27 BNB 94 25 57 0 DOGE 100 100 99 82 XRP 100 100 100 4 ALL 87 88 100 0
30m 1h 4h 1d BTC 58 44 42 28 ETH 60 48 48 23 SOL 53 62 42 36 BNB 64 41 35 26 DOGE 47 50 35 28 XRP 41 37 32 12 ALL 53 60 31 30
30m 1h 4h 1d BTC 98 80 100 43 ETH 100 94 100 36 SOL 82 100 100 67 BNB 100 100 100 85 DOGE 100 100 100 100 XRP 76 75 51 0 ALL 100 100 100 31
30m 1h 4h 1d BTC 34 34 44 89 ETH 42 34 72 89 SOL 36 46 54 33 BNB 45 47 44 54 DOGE 32 32 55 57 XRP 26 32 36 18 ALL 38 36 71 75
30m 1h 4h 1d BTC 70 84 96 99 ETH 71 85 97 99 SOL 80 90 98 100 BNB 72 86 96 99 DOGE 76 88 97 100 XRP 72 86 96 99 ALL 80 90 98 100
04 Enter When WMA 13, 21, and 34 Stack Bullishly, Exit When WMA 13 Drops Below WMA 21 A trend-following filter on three Fibonacci-length weighted moving averages — 13, 21, and 34. A long opens only when all three line up in order, fast above medium above slow, and exits the moment the fast average slips back below the medium. The lengths sit close together, so the stack forms and breaks quickly: a fast, reactive take on the triple moving-average idea. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 60
30m 1h 4h 1d BTC 0 75 61 65 ETH 97 100 100 100 SOL 0 19 45 100 BNB 0 32 57 52 DOGE 13 100 94 100 XRP 9 100 100 99 ALL 100 100 78 100
30m 1h 4h 1d BTC 18 64 58 40 ETH 54 69 56 54 SOL 38 52 59 50 BNB 61 58 60 42 DOGE 34 58 47 41 XRP 13 39 44 30 ALL 75 87 52 52
30m 1h 4h 1d BTC 3 97 85 89 ETH 86 100 100 100 SOL 31 64 85 100 BNB 100 100 100 100 DOGE 60 100 100 100 XRP 0 52 91 46 ALL 100 100 99 100
30m 1h 4h 1d BTC 33 34 42 54 ETH 36 39 42 67 SOL 37 42 52 66 BNB 41 40 46 46 DOGE 32 32 32 83 XRP 27 28 29 32 ALL 42 40 47 68
30m 1h 4h 1d BTC 0 16 75 96 ETH 0 17 75 96 SOL 1 41 83 97 BNB 0 18 75 96 DOGE 0 31 80 97 XRP 0 22 76 96 ALL 1 40 83 98
05 Enter When WMA 7, 20, and 50 Stack Bullishly, Exit When WMA 7 Drops Below WMA 20 A trend-following filter that waits for three weighted moving averages to line up in order — fast above medium above slow — before going long, then leaves the moment the fast average slips back under the medium. Requiring the full stack is a stricter entry than a single crossover; exiting on the fast-versus-medium break is a quicker exit than waiting for the whole stack to unwind. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 55
30m 1h 4h 1d BTC 0 5 52 60 ETH 68 87 100 100 SOL 40 0 73 100 BNB 0 0 20 5 DOGE 0 28 100 76 XRP 78 55 100 95 ALL 100 100 66 94
30m 1h 4h 1d BTC 35 37 55 47 ETH 46 51 60 50 SOL 60 37 69 46 BNB 58 50 53 40 DOGE 32 39 56 35 XRP 31 25 42 30 ALL 93 79 56 45
30m 1h 4h 1d BTC 35 41 78 85 ETH 64 78 100 100 SOL 79 32 100 100 BNB 100 100 100 100 DOGE 48 71 100 100 XRP 28 10 69 43 ALL 100 100 89 100
30m 1h 4h 1d BTC 28 29 42 52 ETH 32 30 42 67 SOL 38 36 50 40 BNB 34 37 53 59 DOGE 24 22 35 51 XRP 25 23 27 28 ALL 40 41 42 63
30m 1h 4h 1d BTC 0 9 72 96 ETH 0 10 72 96 SOL 0 36 81 97 BNB 0 11 72 95 DOGE 0 25 79 97 XRP 0 16 74 96 ALL 0 34 81 97
06 Enter Long When MACD Crosses Above Its Signal Line, Exit When It Crosses Back Down A trend-following rule on a single market's close: ride the move while the MACD line sits above its signal line, and step aside when it falls back. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 47
30m 1h 4h 1d BTC 0 0 41 69 ETH 0 100 81 78 SOL 0 25 4 70 BNB 0 49 46 26 DOGE 0 55 77 66 XRP 0 95 67 100 ALL 100 100 59 27
30m 1h 4h 1d BTC 0 31 50 50 ETH 4 59 46 42 SOL 20 53 46 44 BNB 15 73 67 42 DOGE 0 42 48 44 XRP 0 36 29 39 ALL 100 100 58 44
30m 1h 4h 1d BTC 0 30 69 92 ETH 0 100 73 71 SOL 0 69 53 100 BNB 0 100 100 100 DOGE 0 92 100 100 XRP 0 42 20 87 ALL 100 100 84 59
30m 1h 4h 1d BTC 29 38 45 50 ETH 36 40 45 41 SOL 35 40 38 47 BNB 36 43 43 62 DOGE 27 33 34 46 XRP 28 31 28 40 ALL 46 54 44 53
30m 1h 4h 1d BTC 0 0 58 93 ETH 0 0 58 92 SOL 0 10 70 95 BNB 0 0 58 93 DOGE 0 0 65 95 XRP 0 0 59 94 ALL 0 12 71 95
07 Enter Long When WMA 20 Comes Within 0.5% of Crossing Above WMA 50, Exit Within 0.5% of Crossing Back Below An anticipatory take on the WMA 20/50 crossover: instead of waiting for the fast weighted moving average to cross the slow one, it acts half a percent early — entering as the fast average closes to within 0.5% of crossing up, and exiting as it falls back to within 0.5% of crossing down, stepping aside before the death cross confirms. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 39
30m 1h 4h 1d BTC 0 0 38 25 ETH 4 0 28 64 SOL 0 0 68 100 BNB 0 0 0 0 DOGE 0 0 64 57 XRP 0 0 70 58 ALL 52 0 34 0
30m 1h 4h 1d BTC 0 13 41 33 ETH 25 15 31 34 SOL 37 24 54 41 BNB 53 43 57 31 DOGE 31 34 46 28 XRP 0 0 26 22 ALL 58 22 43 31
30m 1h 4h 1d BTC 0 0 67 57 ETH 12 0 30 60 SOL 27 0 100 100 BNB 100 72 100 85 DOGE 38 36 100 94 XRP 0 0 22 13 ALL 78 1 64 22
30m 1h 4h 1d BTC 90 78 64 56 ETH 95 77 48 71 SOL 74 63 47 81 BNB 89 76 65 67 DOGE 82 61 47 66 XRP 76 62 38 22 ALL 93 64 57 62
30m 1h 4h 1d BTC 58 70 88 98 ETH 48 64 87 98 SOL 55 72 92 99 BNB 51 66 88 98 DOGE 56 70 90 98 XRP 51 67 88 98 ALL 62 75 92 99
08 Enter Long When Price Crosses Above WMA 20, Exit When It Crosses Back Down A trend-following rule on a single market's close: ride the move while the close holds above its 20-bar weighted moving average, and step aside when it slips back below. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 37
30m 1h 4h 1d BTC 0 0 55 76 ETH 0 30 100 96 SOL 0 9 30 100 BNB 0 0 1 34 DOGE 0 0 44 49 XRP 0 0 100 100 ALL 100 100 30 49
30m 1h 4h 1d BTC 0 6 52 48 ETH 0 32 68 46 SOL 20 48 53 48 BNB 0 42 55 38 DOGE 0 20 42 34 XRP 0 0 38 34 ALL 100 100 45 39
30m 1h 4h 1d BTC 0 0 80 98 ETH 0 32 100 86 SOL 0 56 74 100 BNB 0 71 100 100 DOGE 0 0 85 88 XRP 0 0 56 62 ALL 100 100 60 76
30m 1h 4h 1d BTC 3 6 12 20 ETH 6 10 20 16 SOL 10 14 15 18 BNB 8 11 14 34 DOGE 0 4 6 20 XRP 4 4 8 12 ALL 34 38 18 22
30m 1h 4h 1d BTC 0 0 29 86 ETH 0 0 29 85 SOL 0 0 49 90 BNB 0 0 26 86 DOGE 0 0 36 89 XRP 0 0 28 86 ALL 0 0 48 90
09 Enter Long When RSI 20 Crosses Above Its WMA 20, Exit When It Crosses Back Down A momentum-timing rule on a single market's close: the 20-bar relative strength index is smoothed by a 20-bar weighted moving average of itself, and the position follows which line is on top — long while the oscillator sits above its smoothing line, flat when it falls back. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 33
30m 1h 4h 1d BTC 0 0 5 40 ETH 0 0 100 84 SOL 0 0 1 39 BNB 0 0 22 0 DOGE 0 0 100 85 XRP 0 0 77 100 ALL 100 100 27 58
30m 1h 4h 1d BTC 0 0 36 42 ETH 0 10 53 44 SOL 0 35 45 48 BNB 0 12 57 47 DOGE 0 5 46 42 XRP 0 0 31 38 ALL 100 100 48 46
30m 1h 4h 1d BTC 0 0 40 69 ETH 0 0 92 76 SOL 0 20 50 77 BNB 0 0 100 100 DOGE 0 0 100 100 XRP 0 0 28 72 ALL 100 100 59 83
30m 1h 4h 1d BTC 12 12 21 24 ETH 13 17 21 20 SOL 18 19 26 23 BNB 16 18 23 38 DOGE 8 11 20 19 XRP 12 11 14 8 ALL 42 47 27 28
30m 1h 4h 1d BTC 0 0 22 84 ETH 0 0 23 84 SOL 0 0 41 90 BNB 0 0 20 84 DOGE 0 0 32 87 XRP 0 0 24 84 ALL 0 0 41 90
10 Enter Short When WMA 20 Crosses Below WMA 50, Exit When It Crosses Back Up A trend-following crossover on a single market's close, taken from the short side: sell the market while the fast weighted moving average sits below the slow one, and step aside when it climbs back. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 25
30m 1h 4h 1d BTC 10 5 0 0 ETH 85 12 0 47 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 0 0 0 0 XRP 11 0 0 0 ALL 69 0 8 0
30m 1h 4h 1d BTC 38 36 22 27 ETH 50 26 19 38 SOL 36 22 29 13 BNB 56 34 41 33 DOGE 30 6 35 6 XRP 12 2 2 0 ALL 70 34 42 29
30m 1h 4h 1d BTC 46 41 10 25 ETH 77 18 1 46 SOL 26 0 12 0 BNB 100 39 58 39 DOGE 19 0 36 0 XRP 0 0 0 0 ALL 91 26 43 20
30m 1h 4h 1d BTC 33 32 34 55 ETH 36 38 28 62 SOL 39 39 41 0 BNB 41 39 54 52 DOGE 30 24 27 47 XRP 26 23 27 20 ALL 42 41 43 44
30m 1h 4h 1d BTC 4 42 84 98 ETH 5 42 83 98 SOL 31 59 89 0 BNB 7 43 85 98 DOGE 20 52 88 98 XRP 9 44 84 97 ALL 31 60 90 98
11 Ride the WMA 20/50 Crossover, Exit on an ATR Trailing Stop A trend-following crossover that fixes its own slowest part — the exit. A long opens when the fast weighted moving average crosses above the slow one, but instead of waiting for the averages to cross back, it rides a chandelier trailing stop: the highest close since entry, less a multiple of the Average True Range. Whichever comes first — the stop or the downward crossover — closes the trade, so a sharp reversal banks the gain before the slow average catches up. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Trend 25
30m 1h 4h 1d BTC 0 0 0 0 ETH 2 5 0 53 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 0 0 3 0 XRP 0 14 0 82 ALL 44 52 0 0
30m 1h 4h 1d BTC 10 14 19 31 ETH 21 22 0 46 SOL 46 9 14 30 BNB 47 26 36 18 DOGE 0 1 31 20 XRP 0 0 0 26 ALL 91 61 36 42
30m 1h 4h 1d BTC 0 2 9 25 ETH 11 12 0 51 SOL 42 0 0 44 BNB 53 22 53 8 DOGE 0 0 52 9 XRP 0 0 0 33 ALL 71 78 31 24
30m 1h 4h 1d BTC 38 36 37 62 ETH 42 38 38 82 SOL 46 40 40 75 BNB 44 44 50 40 DOGE 27 30 35 55 XRP 28 30 30 20 ALL 49 50 50 75
30m 1h 4h 1d BTC 4 42 84 98 ETH 5 42 83 98 SOL 31 59 89 98 BNB 7 43 84 97 DOGE 19 52 88 98 XRP 9 44 84 97 ALL 30 59 89 98
12 Enter Long When Price Breaks the 20-Bar High, Exit When It Breaks the 20-Bar Low A trend-following breakout rule on a single market's close: the Donchian channel marks the highest and lowest closes of the prior 20 bars, a long position opens when price closes above the channel's upper edge, and it exits when price closes below the lower edge. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Breakout 57
30m 1h 4h 1d BTC 0 11 64 86 ETH 94 72 95 100 SOL 0 0 60 100 BNB 0 0 61 77 DOGE 0 42 100 90 XRP 12 93 100 82 ALL 100 100 96 89
30m 1h 4h 1d BTC 19 38 50 45 ETH 51 44 46 41 SOL 40 45 52 37 BNB 53 50 45 34 DOGE 35 43 46 36 XRP 17 35 36 26 ALL 100 100 55 31
30m 1h 4h 1d BTC 3 46 88 100 ETH 84 66 84 100 SOL 36 48 98 100 BNB 100 100 100 100 DOGE 43 82 100 100 XRP 0 40 72 33 ALL 100 100 100 100
30m 1h 4h 1d BTC 32 32 51 62 ETH 39 40 32 59 SOL 38 40 40 52 BNB 41 39 60 81 DOGE 30 30 42 75 XRP 29 28 33 35 ALL 56 56 46 67
30m 1h 4h 1d BTC 0 34 82 97 ETH 0 35 81 97 SOL 20 53 88 98 BNB 0 36 83 97 DOGE 10 46 86 98 XRP 1 40 83 97 ALL 21 54 88 98
13 Buy the Keltner Breakout, Exit at the Midline A trend-following rule on a single market's close: a Keltner Channel frames the close with a 20-bar exponential moving average and an envelope set two average true ranges above and below it, a long position opens when price breaks out above the upper band, and it exits when price falls back to the midline. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Breakout 48
30m 1h 4h 1d BTC 0 0 60 87 ETH 10 63 100 100 SOL 0 26 5 100 BNB 0 0 0 7 DOGE 0 38 100 81 XRP 0 36 100 100 ALL 100 100 49 71
30m 1h 4h 1d BTC 0 34 57 57 ETH 25 44 57 60 SOL 42 56 45 55 BNB 30 44 50 37 DOGE 15 43 47 39 XRP 0 19 45 34 ALL 100 100 50 47
30m 1h 4h 1d BTC 0 35 85 100 ETH 17 59 100 100 SOL 41 70 53 100 BNB 32 84 100 100 DOGE 0 78 100 100 XRP 0 0 100 68 ALL 100 100 76 94
30m 1h 4h 1d BTC 20 27 37 56 ETH 26 30 33 63 SOL 31 34 36 64 BNB 24 28 35 38 DOGE 15 20 18 51 XRP 16 22 25 26 ALL 45 50 32 62
30m 1h 4h 1d BTC 0 12 72 95 ETH 0 12 72 95 SOL 0 34 80 97 BNB 0 10 72 95 DOGE 0 26 78 96 XRP 0 17 75 96 ALL 0 31 80 97
14 Trade the Turtle Breakout: Enter on the 20-Bar High, Exit on the 10-Bar Low or a Two-ATR Stop A classic trend-following system on a single market's close: a long position opens when price breaks to a fresh 20-bar high, and closes when price breaks the 10-bar low or falls two average true ranges below the entry, whichever comes first — the breakout rules of the Turtle traders, hardened with a volatility stop. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Breakout 46
30m 1h 4h 1d BTC 0 4 36 70 ETH 5 59 89 100 SOL 0 0 0 100 BNB 0 0 14 7 DOGE 0 30 100 58 XRP 0 66 100 100 ALL 100 100 66 51
30m 1h 4h 1d BTC 0 36 50 51 ETH 23 43 49 57 SOL 30 16 40 50 BNB 38 50 53 36 DOGE 15 41 52 40 XRP 1 28 47 31 ALL 100 100 58 48
30m 1h 4h 1d BTC 0 40 66 93 ETH 13 56 79 100 SOL 16 0 42 100 BNB 53 100 100 100 DOGE 0 73 100 96 XRP 0 19 100 55 ALL 100 100 90 78
30m 1h 4h 1d BTC 18 24 34 52 ETH 26 28 31 64 SOL 26 26 31 70 BNB 24 30 38 32 DOGE 12 16 18 54 XRP 13 16 24 17 ALL 41 45 32 64
30m 1h 4h 1d BTC 0 10 72 95 ETH 0 12 72 96 SOL 0 32 80 97 BNB 0 12 72 95 DOGE 0 24 79 96 XRP 0 16 75 96 ALL 0 34 81 97
15 Enter Long When the 90-Bar Return Turns Positive, Exit When It Turns Negative A pure momentum rule on a single market's close: the signal is nothing but the return over the last 90 bars, and the position is long whenever that return is positive and flat whenever it is negative. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Momentum 52
30m 1h 4h 1d BTC 4 38 82 44 ETH 74 100 100 79 SOL 45 61 88 63 BNB 0 37 62 0 DOGE 0 67 100 38 XRP 32 47 100 0 ALL 100 100 84 62
30m 1h 4h 1d BTC 35 45 50 31 ETH 44 48 51 31 SOL 56 56 49 38 BNB 42 56 39 31 DOGE 35 42 43 26 XRP 22 25 34 4 ALL 88 69 47 30
30m 1h 4h 1d BTC 41 68 100 72 ETH 68 88 100 72 SOL 83 98 100 96 BNB 79 100 100 100 DOGE 34 100 100 79 XRP 0 3 71 0 ALL 100 100 100 87
30m 1h 4h 1d BTC 20 22 24 43 ETH 24 30 36 33 SOL 28 28 40 17 BNB 27 27 40 35 DOGE 18 24 29 0 XRP 21 22 24 9 ALL 42 42 36 44
30m 1h 4h 1d BTC 0 14 75 96 ETH 0 16 75 96 SOL 0 36 84 97 BNB 0 17 75 96 DOGE 0 21 78 96 XRP 0 12 74 95 ALL 9 48 83 97
16 Enter Long When RSI 14 Drops Below 30, Exit When It Rises Above 70 A contrarian rule on a single market's close: the 14-bar relative strength index marks the market oversold when it drops below 30 and overbought when it rises above 70, so the position buys into one-sided selling and sells into one-sided buying. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Mean reversion 26
30m 1h 4h 1d BTC 0 0 0 0 ETH 0 0 0 0 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 0 0 0 0 XRP 0 12 13 100 ALL 0 0 0 0
30m 1h 4h 1d BTC 6 0 21 32 ETH 0 0 0 19 SOL 7 1 19 0 BNB 46 26 36 17 DOGE 25 17 7 54 XRP 1 8 10 66 ALL 0 0 6 25
30m 1h 4h 1d BTC 0 0 8 31 ETH 0 0 0 6 SOL 0 0 0 0 BNB 56 12 38 6 DOGE 8 0 0 43 XRP 0 0 0 70 ALL 0 0 0 11
30m 1h 4h 1d BTC 100 100 100 100 ETH 100 100 92 100 SOL 100 95 100 75 BNB 100 100 100 75 DOGE 100 96 75 100 XRP 100 100 100 100 ALL 98 87 100 100
30m 1h 4h 1d BTC 68 82 94 99 ETH 67 81 95 99 SOL 78 89 97 100 BNB 69 84 95 99 DOGE 76 88 96 99 XRP 72 85 95 99 ALL 69 84 97 100
17 Enter Long When Price Pierces the Lower Bollinger Band, Exit at the Middle A mean-reversion rule on a single market's close: Bollinger Bands frame the close with a 20-bar moving average and an envelope two standard deviations wide on each side, a long position opens when price pierces the lower band, and it exits when price reverts back above the middle of the envelope. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Mean reversion 24
30m 1h 4h 1d BTC 7 0 0 0 ETH 0 0 0 0 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 49 0 0 0 XRP 99 0 10 51 ALL 0 0 0 0
30m 1h 4h 1d BTC 41 0 0 8 ETH 6 0 0 16 SOL 45 16 13 7 BNB 47 7 5 24 DOGE 68 0 0 22 XRP 41 0 2 21 ALL 0 0 16 24
30m 1h 4h 1d BTC 42 0 0 0 ETH 0 0 0 0 SOL 41 0 0 0 BNB 60 0 0 14 DOGE 88 0 0 19 XRP 45 0 0 8 ALL 0 0 0 9
30m 1h 4h 1d BTC 100 100 100 100 ETH 100 100 100 100 SOL 100 100 100 100 BNB 100 100 100 100 DOGE 100 100 100 78 XRP 100 100 100 100 ALL 100 89 100 94
30m 1h 4h 1d BTC 0 26 79 97 ETH 0 26 79 96 SOL 9 46 85 98 BNB 0 29 80 97 DOGE 0 39 83 97 XRP 0 31 79 96 ALL 12 49 85 98
18 Enter Long When Price Pierces the Lower Bollinger Band, Exit at the Upper A mean-reversion rule on a single market's close: Bollinger Bands frame the close with a 20-bar moving average and an envelope two standard deviations wide on each side, a long position opens when price pierces the lower band, and it exits only when price crosses the upper band — riding the full swing from one edge of the envelope to the other. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Mean reversion 22
30m 1h 4h 1d BTC 0 0 0 0 ETH 0 0 0 0 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 0 0 0 0 XRP 44 0 0 27 ALL 0 0 0 0
30m 1h 4h 1d BTC 17 19 15 8 ETH 0 18 3 16 SOL 35 33 30 0 BNB 24 56 33 8 DOGE 2 27 0 24 XRP 23 4 0 12 ALL 0 0 0 0
30m 1h 4h 1d BTC 0 2 0 0 ETH 0 0 0 0 SOL 20 16 13 0 BNB 5 84 29 0 DOGE 0 11 0 25 XRP 1 0 0 0 ALL 0 0 0 0
30m 1h 4h 1d BTC 100 100 100 67 ETH 100 100 100 98 SOL 100 100 88 95 BNB 100 100 100 88 DOGE 100 100 90 80 XRP 100 100 91 71 ALL 100 92 93 68
30m 1h 4h 1d BTC 16 50 86 98 ETH 15 49 86 98 SOL 37 66 91 99 BNB 18 51 87 98 DOGE 31 60 90 98 XRP 21 54 88 98 ALL 39 66 91 99
19 Enter Long on a Confirmed Bounce off Support, Exit at Resistance A range-trading rule on a single market's close: support and resistance are the lowest and highest closes of the prior 20 bars, a long position opens when price dips below support and the next close recovers above the broken floor, and it exits when price reaches resistance. The notebook defines the rule, shows it trading on a simulated series, measures it on ten years of real Binance data across a basket of liquid symbols and four timeframes, then replays it on a resampled history, ending in a verdict. Mean reversion 20
30m 1h 4h 1d BTC 0 0 0 0 ETH 0 0 0 0 SOL 0 0 0 0 BNB 0 0 0 0 DOGE 0 0 0 0 XRP 36 0 0 19 ALL 0 0 0 0
30m 1h 4h 1d BTC 13 0 31 5 ETH 0 13 14 0 SOL 30 27 1 0 BNB 0 9 27 10 DOGE 18 0 0 0 XRP 17 0 0 8 ALL 0 6 0 0
30m 1h 4h 1d BTC 0 0 25 0 ETH 0 0 0 0 SOL 13 7 0 0 BNB 0 0 17 0 DOGE 0 0 0 0 XRP 0 0 0 0 ALL 0 0 0 0
30m 1h 4h 1d BTC 100 100 100 100 ETH 100 100 100 100 SOL 100 100 99 64 BNB 100 100 100 100 DOGE 100 100 98 70 XRP 100 100 100 100 ALL 100 100 100 100
30m 1h 4h 1d BTC 7 45 84 97 ETH 9 44 85 98 SOL 29 60 90 98 BNB 10 45 85 98 DOGE 20 54 88 98 XRP 12 49 86 97 ALL 34 63 90 98