Basics
mode: futures
timeframe: 1h
interface version: 3
Settings
stoploss: -0.02
has minimal roi
Indicators
Bollinger_Bands
MACD
RSI
talib
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | """ Basic Futures Strategy Template """ import talib.abstract as ta from freqtrade.strategy import IStrategy, informative from pandas import DataFrame class BasicFuturesStrategy(IStrategy): """ Basic futures trading strategy template """ # Strategy settings INTERFACE_VERSION = 3 can_short = True # ROI table minimal_roi = { "0": 0.05, "30": 0.03, "60": 0.01, "120": 0 } # Stoploss stoploss = -0.02 # Timeframe timeframe = '1h' def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ Populate indicators """ # RSI dataframe['rsi'] = ta.RSI(dataframe, timeperiod=14) # MACD macd = ta.MACD(dataframe) dataframe['macd'] = macd['macd'] dataframe['macdsignal'] = macd['macdsignal'] dataframe['macdhist'] = macd['macdhist'] # Bollinger Bands bollinger = ta.BBANDS(dataframe, timeperiod=20) dataframe['bb_lowerband'] = bollinger['lowerband'] dataframe['bb_middleband'] = bollinger['middleband'] dataframe['bb_upperband'] = bollinger['upperband'] return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ Entry trend logic """ # Long entry conditions dataframe.loc[ ( (dataframe['rsi'] < 30) & (dataframe['macd'] > dataframe['macdsignal']) & (dataframe['close'] < dataframe['bb_lowerband']) ), 'enter_long'] = 1 # Short entry conditions (for futures) dataframe.loc[ ( (dataframe['rsi'] > 70) & (dataframe['macd'] < dataframe['macdsignal']) & (dataframe['close'] > dataframe['bb_upperband']) ), 'enter_short'] = 1 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ Exit trend logic """ # Long exit conditions dataframe.loc[ ( (dataframe['rsi'] > 70) | (dataframe['macd'] < dataframe['macdsignal']) ), 'exit_long'] = 1 # Short exit conditions dataframe.loc[ ( (dataframe['rsi'] < 30) | (dataframe['macd'] > dataframe['macdsignal']) ), 'exit_short'] = 1 return dataframe |
Strategy League — fixed backtest that feeds the ranking
Export report Freqtrade logsRun finished · took 36.8s
pairs 33 pairs
timerange 20210101-20260101
mode futures
timeframe 1h
stake 100 USDT
wallet 1000 USDT
max open trades 10
fee exchange lowest tier
total profit-22.07%
final wallet779 USDT
win rate46.9%
max drawdown-24.21%
market change+442.71%
vs market-464.78%
timeframe1h
profit factor0.62
expectancy ratio-0.204
break-even fee-0.0414%
sharpe-1.644
sortino-2.978
CAGR-4.9%
calmar-0.954
avg MFE+1.32%
avg MAE-1.79%
avg profit/trade-0.28%
avg duration0h 59m
best trade+5.01%
worst trade-2.12%
win/loss streak11 / 21
positive months21/59
consistent (3-mo)22.8%
worst 3-mo-4.71%
trades789
revision1
likely annual return-5%
range (5th–95th)-6% … -3%
chance of profit0.0%
worst-5% outcome-7%
significance (p)1.0
risk of ruin0.0%
- profit isn't statistically significant (p=1.00) — hard to tell apart from luck
- only 0% of resampled runs were profitable
- profitable in only 23% of rolling 3-month windows
- 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 |
|---|---|---|---|---|---|---|---|---|---|
| Dec 2025 | bearish trending low vol | 12 | +0.06 | 0.05 | 7 | 5 | 58.3 | -22.71 | 1h 30m |
| Nov 2025 | bearish trending high vol | 12 | +0.88 | 0.74 | 9 | 3 | 75.0 | -23.76 | 1h 05m |
| Oct 2025 | bearish trending low vol | 32 | -1.30 | -0.41 | 17 | 15 | 53.1 | -24.21 | 0h 56m |
| Sep 2025 | bullish choppy low vol | 11 | +0.60 | 0.56 | 9 | 2 | 81.8 | -22.71 | 1h 16m |
| Aug 2025 | bearish choppy low vol | 17 | -0.81 | -0.49 | 6 | 11 | 35.3 | -23.05 | 0h 53m |
| Jul 2025 | bullish choppy low vol | 14 | +0.23 | 0.16 | 10 | 4 | 71.4 | -22.06 | 1h 13m |
| Jun 2025 | bearish choppy low vol | 16 | -0.21 | -0.11 | 7 | 9 | 43.8 | -22.59 | 0h 49m |
| May 2025 | bullish trending low vol | 17 | +0.44 | 0.28 | 10 | 7 | 58.8 | -22.37 | 1h 07m |
| Apr 2025 | bullish choppy low vol | 7 | +0.15 | 0.21 | 4 | 3 | 57.1 | -22.57 | 1h 26m |
| Mar 2025 | bearish trending high vol | 24 | -1.37 | -0.57 | 9 | 15 | 37.5 | -22.59 | 1h 42m |
| Feb 2025 | bearish trending low vol | 4 | -0.19 | -0.48 | 2 | 2 | 50.0 | -21.24 | 1h 00m |
| Jan 2025 | bearish choppy low vol | 23 | +0.36 | 0.21 | 15 | 8 | 65.2 | -21.82 | 0h 57m |
| Dec 2024 | bullish trending low vol | 14 | -0.67 | -0.43 | 5 | 9 | 35.7 | -21.36 | 0h 51m |
| Nov 2024 | bullish trending low vol | 14 | -1.06 | -0.77 | 4 | 10 | 28.6 | -21.18 | 0h 56m |
| Oct 2024 | bullish choppy low vol | 18 | +0.46 | 0.26 | 12 | 6 | 66.7 | -19.96 | 1h 10m |
| Sep 2024 | bearish choppy low vol | 10 | -0.11 | -0.15 | 5 | 5 | 50.0 | -20.24 | 1h 18m |
| Aug 2024 | bearish choppy high vol | 31 | -1.35 | -0.46 | 12 | 19 | 38.7 | -20.32 | 1h 02m |
| Jul 2024 | bearish trending low vol | 24 | -1.79 | -0.75 | 8 | 16 | 33.3 | -19.0 | 0h 45m |
| Jun 2024 | bearish choppy low vol | 15 | -0.47 | -0.32 | 6 | 9 | 40.0 | -16.93 | 1h 20m |
| May 2024 | bullish choppy high vol | 24 | -0.03 | 0.01 | 14 | 10 | 58.3 | -17.7 | 1h 08m |
| Apr 2024 | bearish choppy high vol | 37 | -3.24 | -0.90 | 12 | 25 | 32.4 | -17.13 | 0h 32m |
| Mar 2024 | bullish trending high vol | 5 | -0.51 | -1.02 | 1 | 4 | 20.0 | -13.13 | 1h 00m |
| Feb 2024 | bullish trending low vol | 9 | -0.02 | -0.13 | 4 | 5 | 44.4 | -12.79 | 1h 13m |
| Jan 2024 | bearish choppy high vol | 10 | -1.21 | -1.22 | 1 | 9 | 10.0 | -12.6 | 0h 42m |
| Dec 2023 | bullish trending low vol | 6 | +0.26 | 0.43 | 3 | 3 | 50.0 | -11.75 | 1h 00m |
| Nov 2023 | bullish trending low vol | 5 | +0.34 | 0.69 | 3 | 2 | 60.0 | -12.09 | 1h 12m |
| Oct 2023 | bullish trending low vol | 8 | -0.14 | -0.17 | 2 | 6 | 25.0 | -12.14 | 1h 08m |
| Sep 2023 | bearish choppy low vol | 17 | -0.82 | -0.48 | 6 | 11 | 35.3 | -12.07 | 1h 35m |
| Aug 2023 | bearish choppy low vol | 19 | -0.52 | -0.28 | 11 | 8 | 57.9 | -11.68 | 0h 47m |
| Jul 2023 | bullish trending low vol | 12 | +0.40 | 0.34 | 9 | 3 | 75.0 | -11.13 | 1h 05m |
| Jun 2023 | bullish trending low vol | 24 | +0.16 | 0.08 | 15 | 9 | 62.5 | -11.38 | 0h 55m |
| May 2023 | bearish choppy low vol | 7 | -0.33 | -0.49 | 4 | 3 | 57.1 | -11.11 | 1h 43m |
| Apr 2023 | bullish trending low vol | 12 | -0.84 | -0.71 | 4 | 8 | 33.3 | -10.74 | 0h 50m |
| Mar 2023 | bullish trending high vol | 22 | -2.79 | -1.29 | 4 | 18 | 18.2 | -10.04 | 0h 35m |
| Feb 2023 | bullish trending low vol | 27 | -1.08 | -0.39 | 13 | 14 | 48.1 | -7.14 | 1h 09m |
| Jan 2023 | bullish trending low vol | 8 | -0.39 | -0.48 | 4 | 4 | 50.0 | -6.06 | 1h 15m |
| Dec 2022 | bearish trending low vol | 19 | -1.01 | -0.54 | 7 | 12 | 36.8 | -5.68 | 1h 16m |
| Nov 2022 | bearish trending high vol | 21 | -1.19 | -0.57 | 7 | 14 | 33.3 | -4.89 | 0h 34m |
| Oct 2022 | bullish choppy low vol | 5 | -0.22 | -0.44 | 2 | 3 | 40.0 | -3.49 | 0h 48m |
| Sep 2022 | bearish choppy high vol | 8 | +0.10 | 0.10 | 4 | 4 | 50.0 | -3.54 | 1h 00m |
| Aug 2022 | bullish choppy high vol | 21 | +0.33 | 0.17 | 14 | 7 | 66.7 | -4.2 | 1h 11m |
| Jul 2022 | bullish trending high vol | 27 | -1.81 | -0.68 | 12 | 15 | 44.4 | -3.69 | 0h 40m |
| Jun 2022 | bearish trending high vol | 12 | +0.70 | 0.56 | 7 | 5 | 58.3 | -2.96 | 0h 45m |
| May 2022 | bearish trending high vol | 11 | -0.02 | 0.05 | 6 | 5 | 54.5 | -2.82 | 0h 55m |
| Apr 2022 | bearish choppy high vol | 4 | +0.01 | 0.00 | 3 | 1 | 75.0 | -2.57 | 1h 45m |
| Mar 2022 | bullish choppy high vol | 8 | -0.07 | -0.11 | 3 | 5 | 37.5 | -2.92 | 1h 00m |
| Feb 2022 | bearish trending high vol | 11 | -0.00 | 0.02 | 6 | 5 | 54.5 | -2.91 | 0h 55m |
| Jan 2022 | bearish trending high vol | 7 | -1.07 | -1.59 | 1 | 6 | 14.3 | -2.52 | 0h 26m |
| Dec 2021 | bearish trending high vol | 15 | -0.43 | -0.30 | 7 | 8 | 46.7 | -1.61 | 0h 40m |
| Nov 2021 | bearish trending high vol | 9 | +0.49 | 0.58 | 6 | 3 | 66.7 | -1.53 | 1h 00m |
| Oct 2021 | bullish trending high vol | 11 | -0.51 | -0.58 | 4 | 7 | 36.4 | -1.52 | 0h 55m |
| Sep 2021 | bearish trending high vol | 7 | -0.24 | -0.33 | 3 | 4 | 42.9 | -1.31 | 0h 26m |
| Aug 2021 | bullish trending high vol | 4 | -0.39 | -0.99 | 1 | 3 | 25.0 | -0.78 | 0h 45m |
| Jul 2021 | bullish trending high vol | 6 | +0.04 | 0.01 | 3 | 3 | 50.0 | -0.47 | 1h 10m |
| Jun 2021 | bearish trending high vol | 3 | -0.22 | -0.74 | 0 | 3 | 0.0 | -0.43 | 0h 40m |
| Apr 2021 | bearish choppy high vol | 4 | +0.30 | 0.77 | 3 | 1 | 75.0 | -0.21 | 0h 45m |
| Mar 2021 | bullish choppy high vol | 5 | +0.09 | 0.18 | 3 | 2 | 60.0 | -0.32 | 0h 36m |
| Feb 2021 | bullish trending high vol | 3 | +0.05 | 0.15 | 1 | 2 | 33.3 | -0.05 | 1h 00m |
| Jan 2021 | bullish trending high vol | 1 | -0.09 | -0.95 | 0 | 1 | 0.0 | 0.0 | 1h 00m |
Yearly breakdown
| Year | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|
| 2025 | 189 | -1.16 | -0.05 | 105 | 84 | 55.6 | -24.21 | 1h 08m |
| 2024 | 211 | -10.00 | -0.48 | 84 | 127 | 39.8 | -21.36 | 0h 57m |
| 2023 | 167 | -5.75 | -0.34 | 78 | 89 | 46.7 | -12.14 | 1h 02m |
| 2022 | 154 | -4.25 | -0.28 | 72 | 82 | 46.8 | -5.68 | 0h 54m |
| 2021 | 68 | -0.91 | -0.16 | 31 | 37 | 45.6 | -1.61 | 0h 48m |
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 | |
|---|---|---|---|
| 9 | review | missing_startup_candles | uses recursive indicators (MACD, RSI) but startup_candle_count is not set (default 0). Their value at a bar depends on all bars before it, so freqtrade trims no warmup and the backtest opens with unwarmed values that can't occur live. The longest lookback visible here is RSI(timeperiod=14) needing 8x warmup, so it needs at least that many. Set it to a few times the longest period and confirm with `freqtrade recursive-analysis` |
ran by Ron · took s
Lookahead analysis
freqtrade lookahead-analysis: detects strategies peeking at future candles.