2 related strategies (⧉ identical code, ≈ similar name)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | """ Winning Strategy — 15m Dual EMA+MACD+ROC+ADX Backtest: 27.6% annual, Sharpe 3.23, 65.8% win rate All 6 sliding windows profitable """ from pandas import DataFrame import talib.abstract as ta from freqtrade.strategy import IStrategy class Winner15m(IStrategy): INTERFACE_VERSION = 3 timeframe = '15m' can_short = True stoploss = -0.025 trailing_stop = True trailing_stop_positive = 0.005 trailing_stop_positive_offset = 0.018 trailing_only_offset_is_reached = True minimal_roi = {"0": 0.08, "480": 0.05, "1440": 0.03, "4320": 0} max_open_trades = 10 startup_candle_count = 200 process_only_new_candles = True use_exit_signal = False def populate_indicators(self, d, m): d['e10'] = ta.EMA(d, timeperiod=10) d['e30'] = ta.EMA(d, timeperiod=30) macd = ta.MACD(d, fastperiod=12, slowperiod=26, signalperiod=9) d['md'] = macd['macd'] d['ms'] = macd['macdsignal'] d['mom'] = ta.ROC(d, timeperiod=3) d['adx'] = ta.ADX(d, timeperiod=14) d['vr'] = d['volume'] / ta.SMA(d['volume'], timeperiod=20) return d def populate_entry_trend(self, d, m): d.loc[ (d['e10'] > d['e30']) & (d['md'] > d['ms']) & (d['mom'] > 0.1) & (d['adx'] > 18) & (d['vr'] > 1.0) & (d['volume'] > 0), ['enter_long', 'enter_tag'] ] = (1, 'L') d.loc[ (d['e10'] < d['e30']) & (d['md'] < d['ms']) & (d['mom'] < -0.1) & (d['adx'] > 18) & (d['vr'] > 1.0) & (d['volume'] > 0), ['enter_short', 'enter_tag'] ] = (1, 'S') return d def populate_exit_trend(self, d, m): return d |
Strategy League — fixed backtest that feeds the ranking
Export report Freqtrade logsRun finished · took 568.8s
ℹ️ This strategy uses a trailing stop — freqtrade only
re-checks these once per 15m candle by default, not against the price movement within it.
For a more accurate read, re-run this backtest locally with --timeframe-detail 1m. Freqle doesn't do this for every check here: multiplying every
League/sweep backtest by a finer detail timeframe is more compute than the sandbox can sustain
across every indexed strategy. why this matters →
- statistically significant edge (p=0.00)
- 100% of resampled runs stayed profitable
- profitable across 98% of rolling 3-month windows
- comfortably beat buy-and-hold
Resampling the trade sequence 2,000× shows the spread of results this edge could plausibly produce — separating a dependable strategy from one that got lucky once.
Loading charts…
Monthly breakdown
| Month | Regime | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|---|
| Jan 2026 | bullish trending low vol | 10 | -0.64 | -0.64 | 3 | 7 | 30.0 | -0.74 | 36h 12m |
| Dec 2025 | bearish trending low vol | 877 | +20.80 | 0.24 | 589 | 288 | 67.2 | -1.43 | 8h 09m |
| Nov 2025 | bearish trending high vol | 1397 | +4.38 | 0.03 | 838 | 559 | 60.0 | -1.46 | 4h 51m |
| Oct 2025 | bearish trending low vol | 1335 | +70.65 | 0.53 | 862 | 473 | 64.6 | -1.18 | 5h 19m |
| Sep 2025 | bullish choppy low vol | 580 | +7.31 | 0.13 | 364 | 216 | 62.8 | -1.53 | 12h 36m |
| Aug 2025 | bearish choppy low vol | 871 | +9.43 | 0.11 | 544 | 327 | 62.5 | -0.93 | 8h 03m |
| Jul 2025 | bullish choppy low vol | 1092 | +31.34 | 0.29 | 734 | 358 | 67.2 | -0.54 | 6h 49m |
| Jun 2025 | bearish choppy low vol | 766 | +33.78 | 0.45 | 537 | 229 | 70.1 | -0.46 | 9h 11m |
| May 2025 | bullish trending low vol | 1093 | +25.10 | 0.23 | 723 | 370 | 66.1 | -0.86 | 6h 44m |
| Apr 2025 | bullish choppy low vol | 1219 | +23.47 | 0.19 | 792 | 427 | 65.0 | -2.25 | 5h 38m |
| Mar 2025 | bearish trending high vol | 1480 | +7.95 | 0.05 | 894 | 586 | 60.4 | -2.07 | 4h 45m |
| Feb 2025 | bearish trending low vol | 1780 | +78.46 | 0.45 | 1164 | 616 | 65.4 | -1.51 | 3h 31m |
| Jan 2025 | bearish choppy low vol | 1666 | +20.70 | 0.13 | 1068 | 598 | 64.1 | -1.81 | 4h 15m |
| Dec 2024 | bullish trending low vol | 2582 | +57.04 | 0.22 | 1635 | 947 | 63.3 | -2.03 | 2h 38m |
| Nov 2024 | bullish trending low vol | 2319 | +22.15 | 0.10 | 1431 | 888 | 61.7 | -2.08 | 2h 52m |
| Oct 2024 | bullish choppy low vol | 698 | +12.83 | 0.19 | 456 | 242 | 65.3 | -0.94 | 10h 32m |
| Sep 2024 | bearish choppy low vol | 655 | +8.72 | 0.13 | 418 | 237 | 63.8 | -1.53 | 11h 07m |
| Aug 2024 | bearish choppy high vol | 1406 | +32.74 | 0.23 | 887 | 519 | 63.1 | -2.33 | 4h 56m |
| Jul 2024 | bearish trending low vol | 1064 | +56.99 | 0.55 | 771 | 293 | 72.5 | -0.73 | 7h 01m |
| Jun 2024 | bearish choppy low vol | 725 | +36.64 | 0.51 | 456 | 269 | 62.9 | -1.38 | 9h 47m |
| May 2024 | bullish choppy high vol | 758 | +4.42 | 0.07 | 468 | 290 | 61.7 | -1.72 | 9h 27m |
| Apr 2024 | bearish choppy high vol | 1515 | +64.19 | 0.42 | 971 | 544 | 64.1 | -3.03 | 4h 36m |
| Mar 2024 | bullish trending high vol | 2157 | +26.62 | 0.13 | 1289 | 868 | 59.8 | -2.09 | 3h 07m |
| Feb 2024 | bullish trending low vol | 769 | -2.62 | -0.02 | 457 | 312 | 59.4 | -1.66 | 8h 59m |
| Jan 2024 | bearish choppy high vol | 1332 | +36.91 | 0.28 | 860 | 472 | 64.6 | -2.18 | 5h 24m |
| Dec 2023 | bullish trending low vol | 1190 | +3.33 | 0.03 | 707 | 483 | 59.4 | -1.87 | 6h 22m |
| Nov 2023 | bullish trending low vol | 1194 | +6.29 | 0.05 | 725 | 469 | 60.7 | -1.11 | 5h 43m |
| Oct 2023 | bullish trending low vol | 704 | +16.61 | 0.23 | 454 | 250 | 64.5 | -1.52 | 10h 41m |
| Sep 2023 | bearish choppy low vol | 348 | +4.27 | 0.12 | 222 | 126 | 63.8 | -1.25 | 20h 04m |
| Aug 2023 | bearish choppy low vol | 581 | +25.79 | 0.45 | 371 | 210 | 63.9 | -2.21 | 12h 57m |
| Jul 2023 | bullish trending low vol | 691 | +21.99 | 0.32 | 453 | 238 | 65.6 | -1.01 | 10h 19m |
| Jun 2023 | bullish trending low vol | 955 | +27.05 | 0.29 | 609 | 346 | 63.8 | -2.02 | 7h 29m |
| May 2023 | bearish choppy low vol | 463 | +4.25 | 0.10 | 293 | 170 | 63.3 | -1.97 | 16h 06m |
| Apr 2023 | bullish trending low vol | 715 | +6.82 | 0.10 | 442 | 273 | 61.8 | -2.45 | 9h 48m |
| Mar 2023 | bullish trending high vol | 1256 | +27.99 | 0.23 | 815 | 441 | 64.9 | -1.91 | 5h 52m |
| Feb 2023 | bullish trending low vol | 929 | +15.11 | 0.17 | 592 | 337 | 63.7 | -3.64 | 6h 55m |
| Jan 2023 | bullish trending low vol | 1134 | +16.91 | 0.15 | 676 | 458 | 59.6 | -4.03 | 6h 30m |
| Dec 2022 | bearish trending low vol | 519 | +17.77 | 0.34 | 335 | 184 | 64.5 | -1.18 | 13h 55m |
| Nov 2022 | bearish trending high vol | 1864 | +19.21 | 0.11 | 1120 | 744 | 60.1 | -3.2 | 3h 36m |
| Oct 2022 | bullish choppy low vol | 659 | +19.99 | 0.30 | 439 | 220 | 66.6 | -1.26 | 11h 07m |
| Sep 2022 | bearish choppy high vol | 1025 | +6.53 | 0.06 | 616 | 409 | 60.1 | -2.77 | 6h 47m |
| Aug 2022 | bullish choppy high vol | 1155 | +10.29 | 0.09 | 702 | 453 | 60.8 | -4.92 | 6h 12m |
| Jul 2022 | bullish trending high vol | 1529 | +10.02 | 0.07 | 917 | 612 | 60.0 | -2.89 | 4h 38m |
| Jun 2022 | bearish trending high vol | 2342 | +34.68 | 0.15 | 1435 | 907 | 61.3 | -7.55 | 2h 39m |
| May 2022 | bearish trending high vol | 2706 | -4.28 | -0.02 | 1576 | 1130 | 58.2 | -10.21 | 2h 15m |
| Apr 2022 | bearish choppy high vol | 1015 | +33.41 | 0.35 | 681 | 334 | 67.1 | -3.5 | 6h 59m |
| Mar 2022 | bullish choppy high vol | 1092 | -5.13 | -0.05 | 634 | 458 | 58.1 | -4.63 | 6h 28m |
| Feb 2022 | bearish trending high vol | 1512 | +51.20 | 0.35 | 1004 | 508 | 66.4 | -4.51 | 4h 10m |
| Jan 2022 | bearish trending high vol | 2008 | +44.65 | 0.23 | 1316 | 692 | 65.5 | -5.27 | 3h 19m |
| Dec 2021 | bearish trending high vol | 1769 | +51.65 | 0.30 | 1115 | 654 | 63.0 | -6.69 | 3h 56m |
| Nov 2021 | bearish trending high vol | 1539 | +39.33 | 0.26 | 939 | 600 | 61.0 | -9.61 | 4h 26m |
| Oct 2021 | bullish trending high vol | 1381 | -3.84 | -0.02 | 791 | 590 | 57.3 | -11.44 | 5h 12m |
| Sep 2021 | bearish trending high vol | 2330 | +22.22 | 0.10 | 1382 | 948 | 59.3 | -25.93 | 2h 38m |
| Aug 2021 | bullish trending high vol | 1981 | -0.06 | 0.00 | 1173 | 808 | 59.2 | -21.28 | 3h 32m |
| Jul 2021 | bullish trending high vol | 1619 | +11.95 | 0.08 | 986 | 633 | 60.9 | -24.31 | 4h 17m |
| Jun 2021 | bearish trending high vol | 2689 | +18.66 | 0.07 | 1648 | 1041 | 61.3 | -40.66 | 2h 12m |
| May 2021 | bearish trending high vol | 5290 | +25.35 | 0.06 | 3088 | 2202 | 58.4 | -43.19 | 0h 50m |
| Apr 2021 | bearish choppy high vol | 2705 | +12.12 | 0.05 | 1557 | 1148 | 57.6 | -44.31 | 1h 34m |
| Mar 2021 | bullish choppy high vol | 1234 | +1.86 | 0.02 | 726 | 508 | 58.8 | -48.45 | 3h 22m |
| Feb 2021 | bullish trending high vol | 3285 | -0.74 | 0.00 | 1851 | 1434 | 56.3 | -46.99 | 1h 04m |
| Jan 2021 | bullish trending high vol | 3389 | -35.32 | -0.11 | 1872 | 1517 | 55.2 | -45.48 | 1h 11m |
Yearly breakdown
| Year | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|
| 2026 | 10 | -0.64 | -0.64 | 3 | 7 | 30.0 | -0.74 | 36h 12m |
| 2025 | 14156 | +333.37 | 0.24 | 9109 | 5047 | 64.3 | -2.25 | 5h 58m |
| 2024 | 15980 | +356.63 | 0.23 | 10099 | 5881 | 63.2 | -3.03 | 5h 17m |
| 2023 | 10160 | +176.41 | 0.18 | 6359 | 3801 | 62.6 | -4.03 | 8h 30m |
| 2022 | 17426 | +238.34 | 0.14 | 10775 | 6651 | 61.8 | -10.21 | 4h 42m |
| 2021 | 29211 | +143.18 | 0.05 | 17128 | 12083 | 58.6 | -48.45 | 2h 18m |
Trade charts — best 2 and worst 2 performing pairs (full OHLC candles are expensive to render for every pair)
Backtests — over a market period
Backtest this strategy over a chosen crypto-cycle period. These don't affect the League ranking, and need that period's candle data downloaded.
Log in or sign up to run backtests.
| Period | Range | Total % | Win % | Max DD | Trades | |
|---|---|---|---|---|---|---|
| 2020 · DeFi Summer & Pre-Halving Rally | 20200101-20210101 | not run | ||||
| 2021 · Institutional Bull Market | 20210101-20220101 | not run | ||||
| 2022 · Post-Bull Crash & Macro Tightening | 20220101-20230101 | not run | ||||
| 2023–2024 · Recovery & ETF Anticipation | 20230101-20250101 | not run | ||||
| 2025–2026 · Current Cycle | 20250101-20260101 | not run | ||||
Walk forward
Out-of-sample backtest on recent data · 33 pairs · 20260101-20260701.
Backtest trust check
no lookahead patterns · 1 thing(s) worth reviewing before trusting the numbers
| Line | Pattern | Detail | |
|---|---|---|---|
| 40 | review | enter_tag_overwrite | enter_tag/exit_tag is written by 2 separate assignments -- they share one column and run in source order, so a row matching more than one condition keeps only the LAST tag. Per-tag statistics won't mean what they appear to |
ran by Ron · took s
Lookahead analysis
Freqtrade logsno lookahead bias detected
20 signal(s) analysed · 0 biased entries · 0 biased exits
ran by Ron · took 218.9s