'Only trade when there IS a trend' — ADX above 25 as the permission slip.
Momentum entries lose money in chop, so gate them behind Wilder's ADX: only take the momentum signal when ADX(14) > 25 says a real trend exists.
ADX is Wilder's (1978); 'ADX above 25 = trending market' is one of the most-repeated filters in trading education.
Long on ROC(6) > +1.5%, short on ROC(6) < −1.5%, but only while ADX(14) > 25, on 1-hour candles. Exits: 3-ATR trailing stop, 100-bar time exit.
The backtest above is history. Since publication, this exact spec also runs in our nightly forward-test harness (the same one behind /forward-tests): only trades entered after publication count, open positions are never force-closed, and the record publishes either way.
No closed forward trades recorded yet — the record accrues nightly as trades complete their full exit windows.
{
"name": "ADX-Filtered Trend Rider",
"universe": [
"BTC/USDT:USDT",
"ETH/USDT:USDT",
"SOL/USDT:USDT",
"BNB/USDT:USDT",
"XRP/USDT:USDT",
"DOGE/USDT:USDT",
"LINK/USDT:USDT",
"AVAX/USDT:USDT"
],
"risk": {
"risk_per_trade_pct": 1,
"leverage_cap": 3,
"max_daily_loss_pct": 5,
"max_dd_halt_pct": 25
},
"sleeves": [
{
"name": "main",
"timeframe": "1h",
"entry": {
"type": "rule",
"logic": "all",
"long": [
{
"indicator": "roc",
"period": 6,
"op": ">",
"value": 1.5
}
],
"short": [
{
"indicator": "roc",
"period": 6,
"op": "<",
"value": -1.5
}
]
},
"exit": {
"trail_atr": 3,
"time_exit_bars": 100
},
"regime": {
"adx_gt": 25
}
}
]
}Every strategy graded on identical terms: 1-hour candles, 8 liquid USDT perpetuals (BTC, ETH, SOL, BNB, XRP, DOGE, LINK, AVAX), ~6 years of data with a chronological train/test split, real cost hurdle, 1% risk-per-trade sizing, 3x leverage cap. All numbers are out-of-sample (test window only).
A Grade is a historical, out-of-sample statistical measurement — not investment advice, a prediction, or a guarantee. Most strategies fail; a passing grade can stop working as markets change. Risk disclosure