15 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | from functools import reduce from pandas import DataFrame from freqtrade.strategy import IStrategy import talib.abstract as ta from freqtrade.strategy.interface import IStrategy class TrendFollowingStrategy(IStrategy): INTERFACE_VERSION: int = 3 # ROI table: minimal_roi = {"0": 0.15, "30": 0.1, "60": 0.05} # minimal_roi = {"0": 1} # Stoploss: stoploss = -0.265 # Trailing stop: trailing_stop = True trailing_stop_positive = 0.05 trailing_stop_positive_offset = 0.1 trailing_only_offset_is_reached = False timeframe = "5m" can_short: bool = True def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: # Calculate OBV dataframe['obv'] = ta.OBV(dataframe['close'], dataframe['volume']) # Add your trend following indicators here dataframe['trend'] = dataframe['close'].ewm(span=20, adjust=False).mean() return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: # Add your trend following buy signals here dataframe.loc[ (dataframe['close'] > dataframe['trend']) & (dataframe['close'].shift(1) <= dataframe['trend'].shift(1)) & (dataframe['obv'] > dataframe['obv'].shift(1)), 'enter_long'] = 1 # Add your trend following sell signals here dataframe.loc[ (dataframe['close'] < dataframe['trend']) & (dataframe['close'].shift(1) >= dataframe['trend'].shift(1)) & (dataframe['obv'] < dataframe['obv'].shift(1)), 'enter_short'] = 1 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: # Add your trend following exit signals for long positions here dataframe.loc[ (dataframe['close'] < dataframe['trend']) & (dataframe['close'].shift(1) >= dataframe['trend'].shift(1)) & (dataframe['obv'] > dataframe['obv'].shift(1)), 'exit_long'] = 1 # Add your trend following exit signals for short positions here dataframe.loc[ (dataframe['close'] > dataframe['trend']) & (dataframe['close'].shift(1) <= dataframe['trend'].shift(1)) & (dataframe['obv'] < dataframe['obv'].shift(1)), 'exit_short'] = 1 return dataframe |
Strategy League — fixed backtest that feeds the ranking
Export report Freqtrade logsRun finished · took 891.4s
ℹ️ This strategy uses a trailing stop — freqtrade only
re-checks these once per 5m 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 →
- profit isn't statistically significant (p=0.79) — hard to tell apart from luck
- only 19% of resampled runs were profitable
- did not beat simply holding the market
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 | 5 | -3.55 | -7.13 | 0 | 5 | 0.0 | -50.04 | 790h 18m |
| Dec 2025 | bearish trending low vol | 9 | -1.45 | -1.60 | 7 | 2 | 77.8 | -48.55 | 239h 03m |
| Nov 2025 | bearish trending high vol | 22 | -15.07 | -6.68 | 13 | 9 | 59.1 | -46.62 | 226h 00m |
| Oct 2025 | bearish trending low vol | 22 | -6.46 | -2.97 | 16 | 6 | 72.7 | -35.51 | 185h 32m |
| Sep 2025 | bullish choppy low vol | 19 | +0.96 | 0.27 | 16 | 3 | 84.2 | -29.46 | 302h 49m |
| Aug 2025 | bearish choppy low vol | 22 | -3.40 | -1.60 | 17 | 5 | 77.3 | -26.6 | 222h 46m |
| Jul 2025 | bullish choppy low vol | 32 | -7.02 | -2.21 | 24 | 8 | 75.0 | -24.33 | 221h 31m |
| Jun 2025 | bearish choppy low vol | 30 | +9.25 | 3.14 | 28 | 2 | 93.3 | -24.07 | 158h 08m |
| May 2025 | bullish trending low vol | 19 | +1.25 | 0.71 | 16 | 3 | 84.2 | -30.17 | 328h 09m |
| Apr 2025 | bullish choppy low vol | 28 | -0.76 | -0.22 | 23 | 5 | 82.1 | -31.73 | 247h 07m |
| Mar 2025 | bearish trending high vol | 23 | -3.02 | -1.34 | 18 | 5 | 78.3 | -30.19 | 78h 52m |
| Feb 2025 | bearish trending low vol | 47 | -8.72 | -1.92 | 36 | 11 | 76.6 | -35.31 | 91h 52m |
| Jan 2025 | bearish choppy low vol | 49 | +9.60 | 1.98 | 44 | 5 | 89.8 | -22.5 | 133h 48m |
| Dec 2024 | bullish trending low vol | 54 | -13.14 | -2.42 | 40 | 14 | 74.1 | -28.42 | 100h 41m |
| Nov 2024 | bullish trending low vol | 82 | +9.04 | 1.07 | 71 | 11 | 86.6 | -20.04 | 124h 09m |
| Oct 2024 | bullish choppy low vol | 13 | -4.95 | -3.67 | 9 | 4 | 69.2 | -20.28 | 262h 38m |
| Sep 2024 | bearish choppy low vol | 16 | +5.09 | 3.26 | 15 | 1 | 93.8 | -18.73 | 333h 44m |
| Aug 2024 | bearish choppy high vol | 35 | -5.42 | -1.61 | 27 | 8 | 77.1 | -23.76 | 223h 31m |
| Jul 2024 | bearish trending low vol | 27 | -4.07 | -1.53 | 21 | 6 | 77.8 | -19.58 | 275h 41m |
| Jun 2024 | bearish choppy low vol | 22 | +0.25 | -0.03 | 18 | 4 | 81.8 | -12.44 | 204h 34m |
| May 2024 | bullish choppy high vol | 34 | +11.51 | 3.45 | 32 | 2 | 94.1 | -20.9 | 156h 11m |
| Apr 2024 | bearish choppy high vol | 39 | -16.18 | -4.14 | 27 | 12 | 69.2 | -27.76 | 163h 34m |
| Mar 2024 | bullish trending high vol | 93 | +12.83 | 1.53 | 82 | 11 | 88.2 | -20.43 | 72h 23m |
| Feb 2024 | bullish trending low vol | 36 | -1.75 | -0.67 | 29 | 7 | 80.6 | -21.37 | 249h 02m |
| Jan 2024 | bearish choppy high vol | 34 | +1.54 | 0.57 | 29 | 5 | 85.3 | -23.78 | 124h 11m |
| Dec 2023 | bullish trending low vol | 46 | +14.65 | 3.09 | 42 | 4 | 91.3 | -32.63 | 109h 41m |
| Nov 2023 | bullish trending low vol | 29 | +6.72 | 2.35 | 25 | 4 | 86.2 | -39.67 | 143h 11m |
| Oct 2023 | bullish trending low vol | 11 | +2.61 | 2.46 | 10 | 1 | 90.9 | -40.38 | 770h 21m |
| Sep 2023 | bearish choppy low vol | 8 | +0.84 | 1.07 | 7 | 1 | 87.5 | -43.71 | 273h 14m |
| Aug 2023 | bearish choppy low vol | 12 | -2.92 | -2.42 | 9 | 3 | 75.0 | -44.52 | 408h 02m |
| Jul 2023 | bullish trending low vol | 14 | +0.65 | 0.49 | 11 | 3 | 78.6 | -42.18 | 121h 00m |
| Jun 2023 | bullish trending low vol | 34 | -0.36 | -0.11 | 28 | 6 | 82.4 | -44.45 | 167h 11m |
| May 2023 | bearish choppy low vol | 10 | -3.69 | -3.76 | 7 | 3 | 70.0 | -40.59 | 263h 33m |
| Apr 2023 | bullish trending low vol | 13 | -5.08 | -3.94 | 9 | 4 | 69.2 | -38.48 | 287h 10m |
| Mar 2023 | bullish trending high vol | 34 | +2.55 | 0.79 | 29 | 5 | 85.3 | -36.52 | 176h 46m |
| Feb 2023 | bullish trending low vol | 16 | -0.40 | -0.25 | 13 | 3 | 81.2 | -36.08 | 193h 18m |
| Jan 2023 | bullish trending low vol | 34 | +2.74 | 0.79 | 29 | 5 | 85.3 | -36.71 | 174h 13m |
| Dec 2022 | bearish trending low vol | 9 | -4.29 | -4.75 | 6 | 3 | 66.7 | -35.47 | 481h 29m |
| Nov 2022 | bearish trending high vol | 40 | +2.49 | 0.64 | 33 | 7 | 82.5 | -35.0 | 171h 18m |
| Oct 2022 | bullish choppy low vol | 14 | +1.22 | 0.89 | 12 | 2 | 85.7 | -38.95 | 356h 27m |
| Sep 2022 | bearish choppy high vol | 28 | +8.04 | 2.89 | 26 | 2 | 92.9 | -42.11 | 98h 38m |
| Aug 2022 | bullish choppy high vol | 22 | -1.15 | -0.44 | 18 | 4 | 81.8 | -42.98 | 125h 20m |
| Jul 2022 | bullish trending high vol | 20 | +4.20 | 2.15 | 18 | 2 | 90.0 | -49.02 | 193h 45m |
| Jun 2022 | bearish trending high vol | 40 | -15.18 | -3.85 | 28 | 12 | 70.0 | -45.49 | 112h 45m |
| May 2022 | bearish trending high vol | 87 | -3.73 | -0.57 | 70 | 17 | 80.5 | -47.11 | 51h 49m |
| Apr 2022 | bearish choppy high vol | 46 | -3.58 | -0.80 | 37 | 9 | 80.4 | -27.46 | 121h 46m |
| Mar 2022 | bullish choppy high vol | 45 | +0.07 | -0.07 | 37 | 8 | 82.2 | -32.4 | 136h 21m |
| Feb 2022 | bearish trending high vol | 53 | -8.43 | -1.64 | 41 | 12 | 77.4 | -25.42 | 101h 39m |
| Jan 2022 | bearish trending high vol | 93 | -1.90 | -0.35 | 76 | 17 | 81.7 | -32.16 | 85h 03m |
| Dec 2021 | bearish trending high vol | 75 | +11.37 | 1.43 | 66 | 9 | 88.0 | -33.91 | 77h 56m |
| Nov 2021 | bearish trending high vol | 38 | +3.65 | 1.14 | 33 | 5 | 86.8 | -28.78 | 142h 10m |
| Oct 2021 | bullish trending high vol | 45 | +10.16 | 2.54 | 41 | 4 | 91.1 | -37.79 | 101h 45m |
| Sep 2021 | bearish trending high vol | 65 | +8.56 | 1.29 | 56 | 9 | 86.2 | -51.7 | 63h 44m |
| Aug 2021 | bullish trending high vol | 32 | -8.36 | -2.70 | 23 | 9 | 71.9 | -51.16 | 99h 43m |
| Jul 2021 | bullish trending high vol | 44 | +0.62 | 0.24 | 37 | 7 | 84.1 | -39.44 | 95h 29m |
| Jun 2021 | bearish trending high vol | 92 | -0.07 | 0.02 | 76 | 16 | 82.6 | -44.52 | 50h 20m |
| May 2021 | bearish trending high vol | 202 | -27.16 | -1.43 | 157 | 45 | 77.7 | -42.35 | 31h 13m |
| Apr 2021 | bearish choppy high vol | 162 | -11.64 | -0.78 | 128 | 34 | 79.0 | -20.74 | 45h 31m |
| Mar 2021 | bullish choppy high vol | 74 | +13.45 | 1.97 | 66 | 8 | 89.2 | -11.05 | 87h 22m |
| Feb 2021 | bullish trending high vol | 197 | -4.46 | -0.25 | 160 | 37 | 81.2 | -18.79 | 30h 52m |
| Jan 2021 | bullish trending high vol | 175 | -6.21 | -0.37 | 142 | 33 | 81.1 | -16.72 | 32h 58m |
Yearly breakdown
| Year | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|
| 2026 | 5 | -3.55 | -7.13 | 0 | 5 | 0.0 | -50.04 | 790h 18m |
| 2025 | 322 | -24.84 | -0.78 | 258 | 64 | 80.1 | -48.55 | 184h 53m |
| 2024 | 485 | -5.25 | -0.09 | 400 | 85 | 82.5 | -28.42 | 156h 11m |
| 2023 | 261 | +18.31 | 0.69 | 219 | 42 | 83.9 | -44.52 | 205h 05m |
| 2022 | 497 | -22.24 | -0.51 | 402 | 95 | 80.9 | -49.02 | 119h 58m |
| 2021 | 1201 | -10.09 | -0.09 | 985 | 216 | 82.0 | -51.7 | 53h 17m |
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 | |
|---|---|---|---|
| 32 | review | unbounded_recursive_indicator | uses OBV, which accumulates over the WHOLE series with no decay floor -- raising startup_candle_count doesn't converge it, so `freqtrade recursive-analysis` will keep flagging it no matter how large the warmup is. That's inherent to the indicator, not a misconfiguration; judge it on whether the strategy only ever compares it to itself (a running total drifting is fine) rather than to a fixed threshold (which it will eventually cross by drift alone) |
ran by Ron · took s
Lookahead analysis
freqtrade lookahead-analysis: detects strategies peeking at future candles.