All Research

Study #001

107,016 BTC Backtests: How Does a Simple EMA Pullback Strategy Behave Across Parameter Variations?

A large-scale parameter sweep of a simple EMA + RSI strategy on Bitcoin Spot data.

BTCUSDT•Binance Spot•Period: January 1, 2022 → September 1, 2026
Download Raw Results (CSV)

Why This Study?

When testing a trading idea, it’s easy to try a few parameter combinations, find one that looks promising, and move on.

The problem is that a few tests only show a small part of the picture. You may spend hours tuning parameters without knowing whether you’re exploring an interesting part of the strategy — or simply testing combinations that were unlikely to work in the first place.

For this study, we wanted to see the bigger picture: how does the same BTC strategy behave across a large range of parameter combinations?

A video walkthrough of the EMA Pullback + RSI parameter sweep.

What Did We Want to Find Out?

We took a simple EMA Pullback + RSI strategy and systematically tested 107,016 parameter combinations across multiple timeframes, pullback distances, RSI thresholds, take-profit levels, and stop-loss levels.

The goal was not to find a single “best” setup. Instead, we wanted to map the results and see which parts of the parameter space look interesting, which consistently perform poorly, and where further research may be worth the time.

Methodology

Strategy Logic Flow

1. Trend

EMA(20) > EMA(50)

2. Pullback

EMA(20) > Close by X%

3. RSI Filter

RSI(14) < X

The strategy framework remained fixed throughout the study. Only the tested parameter values changed.

Strategy & Market Setup

Market settingValue
ExchangeBinance
MarketSpot
SymbolBTCUSDT
PositionLong
PeriodJan 1, 2022 → Sep 1, 2026
Starting balance$10,000
Position sizingFull Equity
Sleep / cooldown0 bars
Entry / Exit Fee0.10% / 0.10%

Tested Parameter Space

ParameterValues tested
Timeframe1m, 5m, 15m, 30m, 1h, 4h, 1d
RSI threshold20, 25, 30, 35, 40, 45, 50
Pullback distance (%)0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 3, 3.5, 4
Take profit (%)1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 8, 10
Stop loss (%)0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 3, 3.5, 4, 5

Each value was combined with every other value and backtested independently.

7

timeframes

7

RSI thresholds

14

Pullback distances

12

Take profits

13

Stop losses

107,016

parameter combinations

These are parameter combinations of one strategy framework, not 107,016 fundamentally different trading strategies.

What We Measured

For every parameter combination, the backtest produced the same set of performance metrics.

Net Return · Net PnL · Number of Trades · Win Rate · Profit Factor · Expectancy · Sharpe Ratio · Maximum Drawdown · Total Fees

This allows us to analyze the distribution of results across all backtests rather than focusing only on the single highest-return combination.

Results

Across all 107,016 parameter combinations, most of the tested configurations produced negative net returns.

The median Net Return was −14.09%, while the mean was −22.73%. Only 17.93% of combinations finished with a positive Net Return.

Another 6.71% of combinations produced no trades at all, indicating that parts of the tested parameter space generated no signals during the study period.

This gives us the first clear picture of the parameter space: profitable results existed, but they represented a relatively small part of the full set of tested combinations, while other regions produced no signals at all.

107,016

total combinations

19,186 (17.93%)

profitable combinations

-14.09%

median net return

Overall resultValue
Profitable combinations19,186 (17.93%)
Combinations with no trades7,176 (6.71%)
Median Net Return-14.09%
Mean Net Return-22.73%
Total trades across all backtests22,415,204
Average Max Drawdown33.28%
Maximum observed drawdown99.95%
Best Net Return328.87%

1. The overall distribution

The two distributions need to be read together. Net Return shows how the combinations performed, while Trade Count shows how much trading activity generated those results. The number of trades varies widely across the tested parameter space, from zero to more than 4,000 per combination.

Distribution of Net Returns

Net Return across all 107,016 parameter combinations.

Distribution of Trade Counts

Trade Count across all 107,016 parameter combinations.

The Net Return distribution is heavily skewed toward negative returns. While a minority of parameter combinations produced positive results, the typical outcome was negative.

Trade counts varied widely across the parameter space. 6.71% of combinations produced no trades at all, while 21.4% produced 20 trades or fewer.

This becomes especially relevant when we later narrow the parameter space for further analysis.

2. Timeframe changes the distribution

The same strategy framework produced noticeably different results across timeframes.

The median Net Return ranged from −24.83% on 4h to −0.15% on 1d. Shorter timeframes generally produced more active trading, while higher timeframes produced fewer signals and, in some cases, a large number of no-trade combinations.

Net Return Distribution by Timeframe

The distributions are not simply shifted versions of one another. Both their central tendency and spread change across timeframes, suggesting that timeframe is an important part of how this strategy behaves.

The 1d results should be interpreted with caution: 28.57% of 1d combinations produced no trades, which pushes the median toward zero.

3. Pullback distance behaves differently across timeframes

The effect of pullback distance was not consistent across timeframes.

To show this more clearly, we use two views of the same parameter space. Median Net Returnshows how the typical result changes, while Profitable Combinations shows what share of combinations in each region finished above zero.

At smaller pullback thresholds, median Net Return was strongly negative across most intraday timeframes. As the required pullback increased, results improved noticeably on shorter timeframes, while higher timeframes remained mostly negative.

Median Net Return by Pullback Distance and Timeframe

Median Net Return for each pullback threshold across the seven tested timeframes.

Profitable Combinations by Pullback Distance and Timeframe

Percentage of combinations with positive Net Return for each pullback threshold across the seven tested timeframes.

The difference between the two views is important. At a 3% pullback, for example, 5m had a median Net Return of +5.25%, with 76.4% of combinations in that region finishing positive. On 15m, the corresponding figures were +4.08% and 67.9%.

On higher timeframes, the picture was different. At the same 3% pullback, median Net Return remained negative on 1h (−10.40%) and 4h (−22.12%), with only 15.0% and 14.5% of combinations finishing positive.

Looking at median performance alone would show that larger pullbacks generally moved results upward. The profitable-share view adds another layer: the size of the typical result and the breadth of the profitable region are not the same thing.

Note: 1d contains a large share of no-trade combinations. Results near 0% on this timeframe should therefore not be interpreted as breakeven trading performance.

4. RSI threshold and pullback distance interact

RSI threshold and pullback distance did not behave independently. Their interaction produced a clear gradient across the tested parameter space.

As with the previous comparison, we show both Median Net Return and Profitable Combinations. The first describes the typical result in each region, while the second shows how widely positive results were distributed within that region.

Median Net Return by RSI Threshold and Pullback Distance

Profitable Combinations by RSI Threshold and Pullback Distance

Higher RSI thresholds were associated with increasingly negative median returns at smaller pullbacks. Increasing the pullback distance generally improved the distribution across RSI levels.

But the two views also reveal why median Net Return should not be interpreted on its own. At RSI 20 and a 3% pullback, the median Net Return was 0.00%, yet only 14.1% of combinations were profitable. A near-zero median therefore did not mean that most combinations in that region made money.

At RSI 30 and a 3% pullback, the median was −0.32%, while 49.1% of combinations finished positive. These two regions have similarly small median returns, but very different distributions of profitable outcomes.

This is why we use both measures throughout the parameter-space analysis. Median Net Return describes the center of the distribution; profitable share shows how widely positive results are spread within that region. Looking at only one of them can hide important structure.

What the Parameter Space Tells Us

Results showed that the parameter space contains very different outcomes and very different amounts of trading activity. The next question is how much of that space is actually informative enough to investigate further.

A backtest based on hundreds of trades provides a different amount of evidence from one based on only a handful of observations. For the next stage of the research, we therefore use trade count as a way to prioritize which regions deserve deeper analysis.

1. Where the low-trade regions are

Trade count falls sharply as pullback distance increases.

Trade frequency changes substantially across the pullback parameter space.

Median trade count falls from 229 trades at a 0.10% pullback to just 16 trades at 3.0%. At the same time, the share of combinations with fewer than 100 trades rises from 35.7% to 95.9%.

This is important when interpreting the more favorable returns observed at larger pullbacks: those results are supported by substantially fewer trades.

2. RSI creates another low-observation region

RSI thresholdMedian TradesNo-trade
20530.61%
252916.33%
30540%
351070%
401500%
451770%
501980%

RSI threshold creates a second, independent source of low trading activity. At RSI 20, the median combination produced only 5 trades, and 30.61% of combinations produced no trades at all.

This does not make low RSI thresholds invalid. It means that results in this region require more caution because they are based on much fewer observations.

3. Defining a practical research filter

To make the next stage of the research more focused, we chose 100 trades as a practical minimum observation threshold.

This is not a statistical cutoff or a guarantee of robustness. It is simply a research criterion: combinations with fewer than 100 trades are deprioritized because they provide a relatively small historical sample for deeper analysis.

FilterRemaining combinationsShare of originalProfitable
No filter107,016100%17.93%
>0 trades99,84093.29%19.22%
≥50 trades60,95356.96%9.99%
≥100 trades46,29643.26%7.22%

The filter reduces the search space from 107,016 to 46,296 combinations, but it does not select profitable strategies. In fact, the percentage of profitable combinations decreases after the filter.

4. What remains after filtering?

Full parameter space

107,016

Research filter

Minimum 100 trades

Focused research space

46,296 (-56.74% reduction)

After applying the minimum trade-count filter, the research space is smaller and more focused. The remaining combinations provide a more practical starting point for deeper analysis without presenting the filter as a profitability guarantee.

5. What this filter does — and does not — do

The filter does not identify the best strategies. It simply removes regions with limited trading activity from the first layer of deeper research.

The remaining 46,296 combinations still need further validation. In particular, a combination with 100 or more trades is not automatically robust, and a low-trade combination is not automatically useless.

The full sweep gives us more than a ranking of returns. It shows where the strategy produces enough trading activity for deeper investigation and where results are supported by only a small number of observations.

Using 100 trades as a practical research threshold reduces the space from 107,016 to 46,296 combinations. Importantly, this does not eliminate entire parameter dimensions. Instead, it shows which regions remain sufficiently active and which become increasingly sparse.

This filtered space can then serve as the starting point for a more focused second-stage analysis rather than repeatedly optimizing the entire original grid.

6. Take Profit and Stop Loss

After applying the 100-trade criterion, we examined how the exit parameters shaped the remaining 46,296 combinations.

As in the earlier parameter comparisons, we use two views: Median Net Return shows the typical outcome in each region, while Profitable Combinations shows how widely positive results were distributed.

Median Net Return by Take Profit and Stop Loss

Profitable Combinations by Take Profit and Stop Loss

A clear pattern appears across the filtered space: combinations with lower take-profit targets and tighter stop losses remained deeply negative, while larger take-profit targets and wider stop losses shifted the distribution substantially upward.

The effect becomes especially visible in the upper-right part of the parameter space. At TP 10% / SL 3.5%, for example, the median Net Return reached +9.99%, and 60.9% of combinations in that region finished with a positive Net Return.

This does not mean that 10% TP and 3.5% SL is the “best” configuration. The heatmaps show how the distribution changes across the exit-parameter space; they do not establish that any single configuration is robust or optimal.

What We Observed

1. Most of the tested space was unprofitable

Across the full 107,016-combination sweep, only 17.93% of combinations finished with a positive Net Return. The median result was −14.09%, and 6.71% of combinations produced no trades at all.

The profitable results therefore occupied a relatively small part of the tested parameter space rather than forming a broad region of positive performance.

2. Timeframe materially changed strategy behavior

The same strategy framework behaved very differently across timeframes. Median Net Return ranged from −24.83% on 4h to −0.15% on 1d, while shorter timeframes generally generated substantially more trades.

This means that parameter behavior cannot be interpreted independently of timeframe. A parameter region that looks interesting on one timeframe may behave very differently on another.

3. Larger pullbacks changed both performance and trading frequency

Increasing the required pullback distance produced one of the clearest shifts in the study. Median trade count fell from 229 trades at a 0.10% pullback to 16 trades at 3.0%, while the median Net Return moved from −36.6% to 0.0%.

The improvement in returns therefore came together with a sharp reduction in trading activity. Larger pullbacks were not simply “better”; they represented a fundamentally different, much less frequent region of the strategy.

4. RSI and pullback distance interacted strongly

RSI threshold and pullback distance did not act as independent parameters. The effect of one depended heavily on the value of the other.

At a 0.10% pullback, median Net Return ranged from −2.67% at RSI 20 to −73.66% at RSI 50. At a 3.0% pullback, the same range narrowed to 0.00% and −3.54%.

This interaction is one reason why testing parameters independently can miss important structure in a larger parameter space.

5. Exit parameters shaped the remaining search space

Within the 46,296 combinations meeting the 100-trade research criterion, take-profit and stop-loss settings also produced a clear gradient.

Lower take-profit targets combined with tighter stop losses were associated with strongly negative results, while larger take-profit targets and wider stop losses shifted the distribution upward. The strongest region in this filtered space appeared around the higher take-profit and wider stop-loss settings, but this should be treated as an observed pattern rather than an optimal configuration.

Taken together, the results show that the strategy does not have a single stable response to parameter changes. Timeframe, pullback distance, RSI threshold, and exit settings interact to reshape both performance and trading frequency.

The value of the broad sweep is therefore not in identifying one “best” parameter set. It is in revealing where the behavior of the strategy changes, where trading activity becomes sparse, and which parts of the parameter space may deserve deeper validation.

What This Study Tells Us — and What It Doesn't

This study describes how one specific EMA Pullback + RSI strategy framework behaved on historical BTCUSDT Spot data under the assumptions used in the backtest.

It does not identify a universally optimal strategy or prove that any parameter combination will remain profitable in the future. The highest-return combinations may reflect characteristics of the tested period and can be affected by parameter selection and overfitting.

The 100-trade criterion used in the second-stage analysis is a practical research filter, not a statistical guarantee of robustness. A combination with 100 or more trades may still fail outside the tested period, while a combination with fewer trades is not automatically invalid.

The study also does not test whether the observed patterns generalize to other assets, market regimes, or execution conditions. The experiment is limited to BTCUSDT Spot, the period from January 1, 2022 to September 1, 2026, and the specific strategy and fee assumptions described in the methodology.

The main takeaway is therefore not a trading recommendation. It is a map of how this strategy framework behaved across a large parameter space — and a starting point for deciding what should be validated next.

Raw data

Large-scale backtesting is only useful when the results can be inspected beyond the headline number. Instead of publishing only the best-performing configurations, we are making the complete result set available so traders and researchers can explore the data themselves.

Download the complete dataset

107,016 rows · Full parameter and performance data

Download Raw Results (CSV)