Basics
mode: spot
timeframe: 5m
Settings
stoploss: -0.04
has minimal roi
startup candle count: 20
Indicators
EMA
MFI
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 | """Strategy 10: Money Flow Index""" import talib.abstract as ta from freqtrade.strategy import IStrategy from pandas import DataFrame class MoneyFlowStrategy(IStrategy): timeframe = "5m" minimal_roi = {"0": 0.08, "120": 0.04} stoploss = -0.04 startup_candle_count = 20 def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe["mfi"] = ta.MFI(dataframe, timeperiod=14) dataframe["mfi_prev"] = dataframe["mfi"].shift(1) dataframe["ema50"] = ta.EMA(dataframe, timeperiod=50) dataframe["ema100"] = ta.EMA(dataframe, timeperiod=100) dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14) return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ (dataframe["mfi"] > 20) & (dataframe["mfi_prev"] <= 20) & (dataframe["ema50"] > dataframe["ema100"]) & (dataframe["rsi"] < 65) & (dataframe["volume"] > 0), "enter_long", ] = 1 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ (dataframe["mfi"] > 80) | (dataframe["rsi"] > 72), "exit_long", ] = 1 return dataframe |
Strategy League — fixed backtest that feeds the ranking
Export report Freqtrade logsRun finished · took 300.4s
pairs 33 pairs
timerange 20210101-20260101
mode spot
timeframe 5m
stake 100 USDT
wallet 1000 USDT
max open trades 10
fee exchange lowest tier
total profit-90.13%
final wallet99 USDT
win rate57.3%
max drawdown-91.54%
market change+451.55%
vs market-541.68%
timeframe5m
profit factor0.89
expectancy ratio-0.046
sharpe-3.204
sortino-5.758
CAGR-37.0%
calmar-1.03
avg MFE+2.07%
avg MAE-2.29%
avg profit/trade-0.14%
avg duration4h 16m
best trade+8.04%
worst trade-4.19%
positive months2/17
consistent (3-mo)13.3%
worst 3-mo-49.29%
trades6541
revision1
likely annual return-82%
range (5th–95th)-90% … -68%
chance of profit0.0%
worst-5% outcome-91%
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 13% of rolling 3-month windows
- did not beat simply holding the market
- very deep drawdown (-92%)
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 |
|---|---|---|---|---|---|---|---|---|---|
| May 2022 | bearish trending high vol | 67 | -4.43 | -0.66 | 30 | 37 | 44.8 | -91.54 | 3h 39m |
| Apr 2022 | bearish choppy high vol | 92 | -3.36 | -0.36 | 52 | 40 | 56.5 | -87.74 | 5h 15m |
| Mar 2022 | bullish choppy high vol | 113 | -1.47 | -0.13 | 64 | 49 | 56.6 | -85.71 | 4h 46m |
| Feb 2022 | bearish trending high vol | 156 | -2.39 | -0.15 | 88 | 68 | 56.4 | -84.08 | 3h 50m |
| Jan 2022 | bearish trending high vol | 173 | -4.30 | -0.25 | 99 | 74 | 57.2 | -84.04 | 4h 35m |
| Dec 2021 | bearish trending high vol | 223 | -8.59 | -0.39 | 123 | 100 | 55.2 | -77.88 | 4h 31m |
| Nov 2021 | bullish trending high vol | 272 | -3.36 | -0.12 | 163 | 109 | 59.9 | -71.13 | 5h 20m |
| Oct 2021 | bullish trending high vol | 304 | -5.55 | -0.18 | 167 | 137 | 54.9 | -68.65 | 5h 48m |
| Sep 2021 | bearish trending high vol | 360 | -2.15 | -0.06 | 210 | 150 | 58.3 | -63.56 | 4h 38m |
| Aug 2021 | bullish trending high vol | 412 | -10.45 | -0.25 | 239 | 173 | 58.0 | -61.74 | 4h 29m |
| Jul 2021 | bearish trending high vol | 416 | -8.44 | -0.20 | 237 | 179 | 57.0 | -56.14 | 4h 46m |
| Jun 2021 | bearish trending high vol | 445 | -20.95 | -0.47 | 238 | 207 | 53.5 | -49.53 | 4h 28m |
| May 2021 | bearish trending high vol | 607 | -19.90 | -0.33 | 317 | 290 | 52.2 | -30.77 | 3h 50m |
| Apr 2021 | bearish choppy high vol | 713 | +15.73 | 0.22 | 444 | 269 | 62.3 | -20.45 | 4h 08m |
| Mar 2021 | bullish choppy high vol | 669 | +11.01 | 0.16 | 418 | 251 | 62.5 | -30.1 | 4h 43m |
| Feb 2021 | bullish trending high vol | 697 | -13.05 | -0.19 | 395 | 302 | 56.7 | -30.61 | 3h 24m |
| Jan 2021 | bullish trending high vol | 822 | -8.48 | -0.10 | 465 | 357 | 56.6 | -22.47 | 3h 20m |
Yearly breakdown
| Year | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|
| 2022 | 601 | -15.95 | -0.26 | 333 | 268 | 55.4 | -91.54 | 4h 25m |
| 2021 | 5940 | -74.18 | -0.12 | 3416 | 2524 | 57.5 | -77.88 | 4h 15m |
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 | |
|---|---|---|---|
| 11 | review | startup_candles_too_small | startup_candle_count is 20, but EMA(timeperiod=100) needs at least 100 candles -- so the first 80+ candles of every backtest use an indicator that hasn't warmed up. Recursive indicators (EMA/RSI/ADX/ATR) want several times their period, not exactly it |
ran by Ron · took s
Lookahead analysis
freqtrade lookahead-analysis: detects strategies peeking at future candles.