Basics
mode: spot
timeframe: 5m
interface version: 3
Settings
stoploss: -0.1
has minimal roi
process only new candles
Indicators
EMA
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 | """Starter Freqtrade strategy. `main.py` launches Freqtrade against this file via `--strategy StarterStrategy`. Edit the indicators and entry/exit logic below, or ask your AI tool to build a new strategy. If you rename the class, update `"strategy"` in config.json. See .cursor/rules/engine.mdc for indicators, hyperopt, callbacks, and recipes. """ import talib.abstract as ta # bundled with Freqtrade from freqtrade.strategy import IStrategy from pandas import DataFrame class StarterStrategy(IStrategy): INTERFACE_VERSION = 3 timeframe = "5m" can_short = False # set True only for futures trading_mode # Hard stop loss (-10%) and a time-based ROI ladder for taking profit. stoploss = -0.10 minimal_roi = {"0": 0.04, "30": 0.02, "60": 0.01} # Only act on closed candles. process_only_new_candles = True def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14) dataframe["ema_fast"] = ta.EMA(dataframe, timeperiod=20) dataframe["ema_slow"] = ta.EMA(dataframe, timeperiod=50) return dataframe def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ (dataframe["rsi"] < 35) & (dataframe["ema_fast"] > dataframe["ema_slow"]) & (dataframe["volume"] > 0), "enter_long", ] = 1 return dataframe def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ (dataframe["rsi"] > 70) & (dataframe["volume"] > 0), "exit_long", ] = 1 return dataframe |
Strategy League — fixed backtest that feeds the ranking
Export report Freqtrade logsRun finished · took 332.1s
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.33%
final wallet97 USDT
win rate76.1%
max drawdown-93.71%
market change+451.55%
vs market-541.88%
timeframe5m
profit factor0.88
expectancy ratio-0.028
break-even fee0.0413%
sharpe-3.118
sortino-2.402
CAGR-37.3%
calmar-1.009
avg MFE+1.51%
avg MAE-2.65%
avg profit/trade-0.12%
avg duration5h 54m
best trade+4.02%
worst trade-10.18%
win/loss streak67 / 16
positive months6/23
consistent (3-mo)14.3%
worst 3-mo-52.22%
trades7714
revision1
likely annual return-71%
range (5th–95th)-82% … -55%
chance of profit0.0%
worst-5% outcome-84%
significance (p)0.9995
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 14% of rolling 3-month windows
- did not beat simply holding the market
- very deep drawdown (-94%)
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 |
|---|---|---|---|---|---|---|---|---|---|
| Nov 2022 | bearish trending high vol | 17 | -2.46 | -1.45 | 10 | 7 | 58.8 | -93.71 | 8h 39m |
| Oct 2022 | bullish choppy low vol | 61 | -1.42 | -0.23 | 41 | 20 | 67.2 | -92.35 | 9h 42m |
| Sep 2022 | bearish choppy high vol | 70 | -0.14 | -0.02 | 47 | 23 | 67.1 | -91.8 | 7h 57m |
| Aug 2022 | bullish choppy high vol | 67 | -1.16 | -0.17 | 46 | 21 | 68.7 | -91.29 | 8h 04m |
| Jul 2022 | bearish trending high vol | 72 | -0.03 | -0.00 | 55 | 17 | 76.4 | -91.62 | 7h 20m |
| Jun 2022 | bearish trending high vol | 86 | -4.97 | -0.58 | 58 | 28 | 67.4 | -91.03 | 5h 47m |
| May 2022 | bearish trending high vol | 136 | -8.73 | -0.64 | 95 | 41 | 69.9 | -87.24 | 6h 19m |
| Apr 2022 | bearish choppy high vol | 157 | -7.84 | -0.50 | 100 | 57 | 63.7 | -81.4 | 10h 20m |
| Mar 2022 | bullish choppy high vol | 220 | +3.20 | 0.15 | 159 | 61 | 72.3 | -79.97 | 7h 13m |
| Feb 2022 | bearish trending high vol | 207 | -8.65 | -0.42 | 146 | 61 | 70.5 | -79.06 | 7h 44m |
| Jan 2022 | bearish trending high vol | 259 | -14.48 | -0.56 | 183 | 76 | 70.7 | -74.95 | 7h 25m |
| Dec 2021 | bearish trending high vol | 353 | -13.47 | -0.38 | 260 | 93 | 73.7 | -64.54 | 7h 16m |
| Nov 2021 | bullish trending high vol | 400 | -17.41 | -0.44 | 283 | 117 | 70.8 | -55.39 | 8h 05m |
| Oct 2021 | bullish trending high vol | 474 | -1.01 | -0.02 | 338 | 136 | 71.3 | -45.3 | 7h 43m |
| Sep 2021 | bearish trending high vol | 499 | -15.87 | -0.32 | 376 | 123 | 75.4 | -43.52 | 5h 51m |
| Aug 2021 | bullish trending high vol | 545 | +12.58 | 0.23 | 410 | 135 | 75.2 | -40.36 | 6h 21m |
| Jul 2021 | bearish trending high vol | 462 | -3.83 | -0.08 | 333 | 129 | 72.1 | -45.9 | 7h 25m |
| Jun 2021 | bearish trending high vol | 514 | -28.11 | -0.55 | 383 | 131 | 74.5 | -43.78 | 5h 41m |
| May 2021 | bearish trending high vol | 575 | -20.28 | -0.35 | 456 | 119 | 79.3 | -23.17 | 4h 07m |
| Apr 2021 | bearish choppy high vol | 603 | +13.63 | 0.23 | 502 | 101 | 83.3 | -10.06 | 3h 51m |
| Mar 2021 | bullish choppy high vol | 631 | +15.94 | 0.25 | 512 | 119 | 81.1 | -14.26 | 5h 27m |
| Feb 2021 | bullish trending high vol | 663 | +4.93 | 0.07 | 536 | 127 | 80.8 | -14.44 | 3h 40m |
| Jan 2021 | bullish trending high vol | 643 | +9.25 | 0.14 | 538 | 105 | 83.7 | -13.08 | 3h 37m |
Yearly breakdown
| Year | Trades | Profit % | Avg % | Win | Loss | Win % | DD % | Avg dur |
|---|---|---|---|---|---|---|---|---|
| 2022 | 1352 | -46.68 | -0.34 | 940 | 412 | 69.5 | -93.71 | 7h 44m |
| 2021 | 6362 | -43.65 | -0.07 | 4927 | 1435 | 77.4 | -64.54 | 5h 31m |
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 | |
|---|---|---|---|
| 15 | review | missing_startup_candles | uses recursive indicators (EMA, 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 EMA(timeperiod=50), 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.