This is the strategy every educator recommends: identify the trend on a higher timeframe, then enter on a pullback in the trade timeframe — buy the dip to a moving average only when the bigger picture is pointing up, sell the rally only when it is pointing down. The combination is meant to fix the two great weaknesses of the strategies elsewhere in this batch: a trend filter is supposed to keep you out of the chop that destroys breakouts and fades, and a pullback entry is supposed to give you a tight stop and a good location instead of chasing.
We pinned the textbook reading and ran it mechanically: a higher-timeframe trend filter plus a pullback to the 20 EMA in the trend’s direction, with a structure stop and a 2R target, on 15-minute candles from 12 months of real Binance 1-minute data on BTC and ETH — both directions, 1% risk, 0.05% commission per side, the same deterministic engine behind Secuora’s AI backtester. The honest and slightly uncomfortable headline: the most-recommended recipe in trading still lost on both symbols after costs, with low-30s win rates and large drawdowns. The trend filter helped the shape but did not manufacture an edge from a generic entry. Full numbers below.
Verified Result
No edge: net negative after costs across 2 markets.
| Market | TF | Trades | Win | PF | Max DD | Net |
|---|---|---|---|---|---|---|
| ETH | 15m | 582 | 32.6% | 0.76 | 70.3% | -69.1% |
| BTC | 15m | 670 | 30.6% | 0.57 | 89.2% | -88.7% |
How the SVS 24 breaks down ▾
12 months of real 1-minute data, fees on (0.05%/side), $10k start, 1% risk. How the score works →
The exact rules we tested
- Determine the higher-timeframe trend and only trade in its direction — longs in an uptrend, shorts in a downtrend.
- Compute the 20 EMA on the 15-minute trade timeframe.
- Enter on a pullback to the 20 EMA in the trend’s direction (buy the dip to the EMA in an uptrend; sell the rally to it in a downtrend).
- Stop beyond the last opposing swing (structure stop, fractal lookback 3); target 2R.
- No session filter beyond the trend gate — crypto trades 24/7, so every qualifying in-trend pullback is taken.
- Risk 1% of equity per trade; 0.05% commission per side; 10× max notional leverage.
Results
Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe · starting balance $10,000 · risk 1%/trade · Commission 0.05% per side; no spread/slippage modeled (BTC/ETH spot spreads are sub-basis-point); position size capped at 10× notional leverage. Generated 2026-06-12 by the Secuora ai-strategy deterministic runner (same engine as the in-app AI backtester).
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 35 | 23% | −$2,068 |
| 2025-07 | 32 | 22% | −$1,500 |
| 2025-08 | 70 | 29% | −$1,624 |
| 2025-09 | 40 | 33% | −$510 |
| 2025-10 | 50 | 38% | −$199 |
| 2025-11 | 70 | 39% | $84 |
| 2025-12 | 61 | 11% | −$1,852 |
| 2026-01 | 61 | 33% | −$340 |
| 2026-02 | 68 | 32% | −$269 |
| 2026-03 | 70 | 33% | −$233 |
| 2026-04 | 77 | 29% | −$394 |
| 2026-05 | 36 | 47% | $38 |
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 16 | 19% | −$806 |
| 2025-07 | 73 | 37% | −$678 |
| 2025-08 | 68 | 38% | −$279 |
| 2025-09 | 18 | 39% | −$5 |
| 2025-10 | 5 | 60% | $297 |
| 2025-11 | 38 | 29% | −$930 |
| 2025-12 | 57 | 30% | −$1,352 |
| 2026-01 | 61 | 33% | −$642 |
| 2026-02 | 61 | 30% | −$635 |
| 2026-03 | 50 | 28% | −$696 |
| 2026-04 | 75 | 29% | −$920 |
| 2026-05 | 60 | 37% | −$267 |
Assumptions (how loose terms were pinned down)
- Higher-timeframe trend filter + 20 EMA pullback in trend direction; structure stop; 2R
The most-recommended recipe still needs more than "with the trend"
The result is a useful corrective to a piece of advice that gets repeated as if it were a guarantee. "Trade with the higher-timeframe trend and buy the pullback" is genuinely sound principle — but principle is not an edge, and the mechanical version of it lost on both BTC and ETH after costs, with low-30s win rates and large drawdowns. The reason is that "pullback to the 20 EMA" is a very loose entry: in a real trend price touches the 20 EMA constantly, including right before it rolls over, so the rule fires often and a meaningful share of those touches are not the start of the next leg but the start of the reversal that ends the trend. The trend filter genuinely helped — it kept the strategy from shorting strength and buying weakness, which is why the drawdowns, though large, were not the total wipeouts some unfiltered rules produced — but a filter that removes bad trades is not the same as an entry that finds good ones.
What the textbook version is missing is a trigger. "Price is near the 20 EMA in an uptrend" is a condition, not a signal; the discretionary traders who run this successfully wait for something to actually happen at the EMA — a bullish engulfing or pin-bar rejection, a break of a small lower-timeframe structure back in the trend direction, a fair value gap at the level — so they enter on confirmation that the pullback is ending rather than on mere proximity. Each of those confirmations cuts the trade count hard and, the thesis goes, lifts the quality of what remains. That is the right experiment to run against this baseline: keep the trend filter, keep the location, and add a confirmation trigger at the EMA — then see whether expectancy crosses zero.
How to backtest the HTF trend pullback on Secuora
A higher-timeframe trend filter, the 20 EMA and the candlestick confirmations are all built-in primitives of the AI backtester, so you can build this in layers and watch each one move the result.
- Open /backtest/ai and describe it in plain English: "only trade in the direction of the higher-timeframe trend; enter on a pullback to the 20 EMA on the 15-minute chart; structure stop; 2R target." It compiles to the same engine that produced this page.
- Run it on BTC and ETH with costs on and confirm you reproduce the net-negative result above — proof that the trend filter alone does not turn a loose entry into an edge.
- Add a confirmation trigger at the EMA one at a time: a bullish engulfing or pin bar, a lower-timeframe structure break, or a fair value gap at the level — and watch the trade count fall and the win rate respond.
- Sign up free and use the replay terminal — plot the 20 EMA, set a higher-timeframe bias, and replay a trending stretch bar by bar with simulated orders to feel which pullbacks resumed the trend and which ended it.
- Journal the in-trend pullbacks you would actually take, with confluences and screenshots, so the confirmation-gated version you trade live is the one you tested.
Methodology, in one paragraph
Data: Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe, June 1, 2025 – June 1, 2026 (12 months). Execution: Secuora’s deterministic strategy runner (the same engine behind the in-app AI backtester) — single position at a time, entries at the close of the signal candle, commission 0.05% per side; no spread/slippage modeled (btc/eth spot spreads are sub-basis-point); position size capped at 10× notional leverage, starting balance $10,000, 1% risk per trade. Swings are confirmed fractals with no look-ahead. These are mechanical results: no discretion, every signal taken. Past performance does not predict future results; this is research, not financial advice.
Frequently asked questions
What is the higher-timeframe trend pullback strategy?
A multi-timeframe approach: read the trend on a higher timeframe and only trade in its direction, then enter on a pullback in the trade timeframe — typically a dip to a moving average like the 20 EMA in an uptrend, or a rally to it in a downtrend — aiming to join an established trend at a good location with a tight stop.
What win rate does the trend pullback have?
Low-30s on 15-minute BTC and ETH in our test, with a 2R target. That is acceptable arithmetic for 2R in principle, but after costs both symbols lost with large drawdowns, because a bare "pullback to the 20 EMA" entry fires too often, including right before trends reverse. The exact figures are in the results table above.
Does the trend pullback strategy work on crypto?
Not in this bare form — the most-recommended recipe in trading still lost on both BTC and ETH after costs in our test. The higher-timeframe trend filter helped the shape (it avoided the worst self-inflicted trades) but did not create an edge on its own, because proximity to the 20 EMA is a condition, not a trigger. Adding a confirmation signal at the EMA is the standard and necessary next step.
How do I backtest a trend pullback strategy myself?
Two ways on Secuora: describe it in plain English at /backtest/ai — higher-timeframe trend filters, the 20 EMA and candlestick confirmations are all built-in primitives that compile to the same deterministic engine used here — or sign up free, plot the 20 EMA with a higher-timeframe bias in the replay terminal, and trade the in-trend pullbacks bar by bar with simulated stop-loss and take-profit orders.
