Moving Average Slope: The Best Filter I Have Found
After testing 100 different filter conditions across thousands of breakout strategies, one indicator kept rising to the top. Not an exotic oscillator. Not an AI-generated secret formula. A simple moving average slope indicator – the rate of change of a moving average – outperformed everything else I threw at it.
What makes this result so remarkable is not just that it works on one market. I have now confirmed it across NASDAQ, Gold, Nikkei, and Bitcoin. Across completely different asset classes, the moving average slope keeps showing up as the single most effective trade filter. In all my years of building and testing breakout strategies, I have rarely seen anything this consistent.
If you followed my previous research where I tested 100 AI trading indicators, you already know that moving averages as a category ranked second overall, just behind volatility filters. This video goes one level deeper – isolating the exact condition that dominated every ranking.
Watch the full video below, then read on for the complete breakdown.
How the Moving Average Slope Indicator Emerged as Number One
In the previous study, I used Gemini AI to generate 100 filter conditions and tested them inside BreakoutOS on Bitcoin and crypto breakout strategies. Each condition was evaluated using an in-sample and out-of-sample split – the same rigorous framework I always use to make sure results are not just curve-fitted noise.
The cluster analysis showed volatility filters ranked first as a category, and moving averages ranked second. But when I drilled down to the individual condition level, something striking happened. One specific condition – labeled Condition 79 in the study – dominated the rankings no matter how I sliced the data:
| Ranking Method | Top Condition | Condition Type |
|---|---|---|
| Out-of-sample performance | #1 | EMA slope |
| Robustness index (IS + OOS combined) | #1 | SMA slope |
| Total score | #1 | SMA slope |
| Total score (EMA variant) | #4 | EMA slope |
Whether you look at pure out-of-sample results, robustness across both data sets, or total composite score, the moving average slope indicator sits at or near the very top. The simple moving average version ranked first in robustness and total score. The exponential moving average version ranked first in out-of-sample and fourth in total. Either way, slope dominates.
Why This Result Is So Unusual
I have tested hundreds of indicators and filter conditions over the years. Most of them work on one market but fail on another. Some look great in-sample but collapse the moment you test out-of-sample. Finding something that holds up consistently is the exception, not the rule.
What makes the moving average slope indicator different is that it keeps appearing independently across completely unrelated studies. I found it working on NASDAQ. I found it on Gold. I found it on Nikkei. And now on Bitcoin and crypto. Each time, it was not because I was looking for it – it just kept surfacing as the best or near-best filter in the data.
That kind of cross-market consistency is extremely rare. When the same condition wins across equities, commodities, indices, and crypto, you are not looking at a fluke. You are looking at something that captures a genuine edge in how markets move. I would go as far as calling it a universal condition – one of very few I have encountered in my trading career.
If you have seen my work on filtering bad trades with a simple trend hack, you will recognize this theme. The most powerful filters are not complex. They measure whether the market has directional momentum – and the slope of a moving average does exactly that.
The Exact Moving Average Slope Condition Explained
Here is how the moving average slope indicator works in practice. The logic is straightforward, which is part of why it is so robust:
- Calculate a moving average – either simple (SMA) or exponential (EMA) – over a given period. I optimize the period from 5 to 100 in steps of 5, applied to a 60-minute chart.
- Compare the current value to the previous bar’s value – shift the moving average by 1 bar and compare. If the current MA value is greater than the value 1 bar ago, the slope is rising.
- Define the minimum slope size – not every tiny uptick qualifies. You set a threshold for how steep the slope needs to be before a trade is allowed.
- Use percentages for normalization – this is critical. Express the slope as a percentage change rather than an absolute value. This way the condition works across different price scales – whether you are trading Bitcoin at 60,000 or Gold at 2,000.
- Apply directionally – for long trades, require a rising slope. For short trades, require a falling slope. Test both directions independently.
You can also experiment with comparing the current value to more than 1 bar back – say 2 or 3 bars – to capture a slightly longer slope measurement. But the 1-bar comparison is the simplest starting point and already delivers strong results.
What the Moving Average Slope Measures and Why It Works
At its core, the moving average slope indicator measures one thing: is the trend accelerating or decelerating? A rising slope means the average price is increasing at an increasing rate. A flat or falling slope means momentum is fading.
For breakout trading, this is exactly the information you need. Breakouts work best when there is genuine momentum behind the move. If the moving average is rising steeply, the market has directional conviction. If the moving average is flat or declining, the breakout is more likely to fail or reverse.
This is fundamentally different from a simple moving average crossover or a price-above-MA filter. Those tell you whether the market is above or below a level. The slope tells you whether momentum exists right now – not just position. That distinction is why it outperforms so many other moving average conditions.
Think of it this way: a market can be above its 50-period moving average but drifting sideways. The price-above-MA filter says “go ahead and trade.” The slope filter says “wait – there is no momentum.” That difference in timing is where the edge lives.
The Proof: Performance Data on Crypto
Here is what happened when I applied the moving average slope filter to crypto breakout strategies built with the Mr. Breakouts Formula. Every major metric improved – and crucially, the improvements held in both in-sample and out-of-sample testing:
| Metric | Without Slope Filter | With Slope Filter | Direction |
|---|---|---|---|
| Net profit | Baseline | Higher | Improved |
| Maximum drawdown | Baseline | Lower | Improved |
| Average trade | Baseline | Higher | Improved |
| Win percentage | Baseline | Higher | Improved |
| Net profit / drawdown ratio | Baseline | Higher | Improved |
This is important: most filters improve one thing but hurt another. A tight filter might boost win percentage but kill net profit because it removes too many trades. The moving average slope improves everything simultaneously. Net profit goes up. Drawdown goes down. Average trade size increases. Win rate increases. The profit-to-drawdown ratio improves.
On the crypto data specifically, the simple moving average version performed slightly better than the exponential version. But both variants delivered meaningful improvement. The key takeaway is that whether you prefer SMA or EMA, the slope concept itself is what carries the edge.
SMA Slope vs. EMA Slope: Which Should You Use?
Both the simple and exponential moving average slope variants rank near the top. But there are subtle differences worth understanding:
| Variant | Strength | Best For |
|---|---|---|
| SMA slope | Higher robustness index, top total score | More conservative filtering, smoother signals |
| EMA slope | Best out-of-sample performance, more reactive | Faster-moving markets, quicker entries |
The SMA slope is smoother and less reactive to individual bars, which tends to produce more robust results across different market conditions. The EMA slope responds faster to recent price changes, which can be an advantage in fast markets but may also generate more noise.
My recommendation: start with the SMA slope as your default. It ranked first in robustness and total score, which means it delivered the most consistent improvement across both in-sample and out-of-sample data. If you are trading faster markets or shorter timeframes, experiment with the EMA variant to see if the added responsiveness helps.
For more on how volatility-based filters compare, see my breakdown of the best crypto volatility indicator – the category that ranked just above moving averages in the overall cluster analysis.
How to Add the Moving Average Slope to Your Strategies
If you want to implement this filter, here is a practical starting framework:
- Moving average type: Start with SMA. Test EMA as a second variant.
- Period range: Optimize from 5 to 100 in steps of 5 on a 60-minute chart.
- Slope measurement: Compare current MA value to the value 1 bar ago. Optionally test 2-3 bars back.
- Slope threshold: Express as a percentage. Optimize the minimum slope size to find the sweet spot between filtering too many trades and not filtering enough.
- Direction: For long strategies, require a positive (rising) slope. For short strategies, require a negative (falling) slope.
- Validation: Always split your data into in-sample and out-of-sample. A filter that only improves in-sample results is worthless.
The beauty of this approach is its simplicity. You are not adding a complex indicator with multiple inputs and interdependencies. You are adding a single, clean measurement – is the average moving up or down, and by how much? That simplicity is a feature, not a limitation. Simple conditions tend to be more robust because they are harder to overfit.
Want to add moving average filters to your breakout strategies and test them instantly? BreakoutOS includes the Best Breakout Filters Finder and Filters Robustness Tester – so you know which filters hold up in live markets. Explore the platform at breakoutos.com