Backtesting Arena

Backtesting Arena

Back to blog

Stacking More Sats With Altcoin Rotation? 45 Tests, One Answer

Stacking more sats by rotating between altcoins, BTC and stablecoins sounds compelling. We measured it across 45 test cases. The result: less BTC than doing nothing.

Backtesting Arena·July 28, 2026·7 min read·1 views
Stacking More Sats With Altcoin Rotation? 45 Tests, One Answer

Stacking more sats through altcoin rotation is a tempting idea, and it resurfaces every cycle. Stop counting in dollars and count in bitcoin instead. When the altcoin outruns BTC, hold the altcoin. When it doesn't, rotate back into BTC. When BTC itself is falling, wait in a stablecoin. The promise is that you end up with more bitcoin than someone who did nothing at all.

We had the mechanism fully specified and were about to build it. First we measured it. It doesn't work.

What was actually tested

The machine has three states: altcoin, bitcoin, stablecoin. Two signals drive it — one on the altcoin/BTC ratio, one on BTC/USD. If the altcoin beats BTC, hold the altcoin. If it doesn't, the second signal decides between BTC and the stablecoin.

Everything is accounted in bitcoin units, which makes the benchmark refreshingly unambiguous: hold one bitcoin and do nothing, and you end with one bitcoin. Multiplier 1.00. Anything below that means the strategy destroyed bitcoin.

ParameterValue
Pairs9 altcoins with a native BTC pair (ETH, MATIC, BNB, TRX, XRP, EOS, LTC, BCH, VET)
PeriodEach pair's listing through 2026-06-30
SignalsRSI/SMA (14/14), EMA cross (9/21), Golden Cross (50/200)
IntervalsDaily and weekly
Test cells45 (pair × signal × interval)
Costs0.10% per side (Binance spot taker)
ExecutionSignal at candle close, executed at the next candle's open

The universe was not picked with hindsight. It is the same frozen field we selected by December 2019 trading volume for the Wyckoff spring study — chosen by what was liquid back then, not by what has worked out since.

The result in one line

The median ending balance across all interpretable cells is 0.86 bitcoin. One bitcoin became 0.86. Fourteen percent worse than doing absolutely nothing.

CriterionResult
Beats simply holding BTC (multiplier > 1.00)0.86no
Beats holding the altcoin outright0.86 vs 0.23yes
Beats its own placebo (p < 0.05)p = 0.12no
Survives multiple-testing correction0 of 45no

One criterion passes, and passes clearly. We'll come back to it, because it is the only part that holds.

The placebo is the real story

Nineteen of the 45 cells finish above 1.00. Eight of those also look statistically clean. Glance at the leaderboard and you have a product page.

So every cell is run against a placebo — 200 runs per cell. The placebo holds the altcoin, bitcoin and stablecoin for exactly as many bars as the real strategy, switches state exactly as many times, and therefore pays exactly the same fees. Only the timing of those switches is shuffled. Same market exposure, no rule.

On median, 12 percent of those random runs match or beat the real strategy. That is nowhere near a defensible finding. The gains did not come from when the rule switched. They came from having been in altcoins at all.

That is the difference between a strategy and a circumstance. Without the placebo arm, we would have shipped the circumstance as a strategy.

What fees do to a high-turnover machine

The specification treated trading costs as a side note: "roughly 0.5 to 1 percentage point annually." That estimate is off by orders of magnitude, for a structural reason — the machine never stops switching.

The clearest case is ETH/BTC with the RSI/SMA signal on daily candles:

Value
Ending balance before costs2.159 BTC
State changes731
Trade legs (an alt→stable switch is two)973
Ending balance after costs0.816 BTC

A doubling turns into an 18 percent loss. Nothing about the strategy changed — the fees were simply counted, at the standard Binance rate, with no slippage on top.

Across all cells, costs eat a median 10.7 percent of the ending value at a median of 113 trade legs. Three cells sit above 1.00 gross and below it net. Anyone reporting this kind of system gross is reporting the wrong number.

The robustness check that refutes itself

The specification proposed a quality seal we rather liked: split the history into three equal periods, check separately whether the strategy won in each, and report "3 of 3" or "1 of 3." A result that holds in every period should be robust.

We tested the seal itself, by moving the two internal cut points by 5 and 10 percent. Nothing else — same data, same strategy, slightly different window boundaries.

In 34 of 45 cells the score flips. By a full point out of three, on median. "3 of 3, robust" becomes "2 of 3, likely robust" because a boundary moved by a few weeks.

A measure that reacts to an arbitrary window boundary is measuring the window, not the strategy. Three periods are three observations, and three observations do not carry a quality seal. We didn't build it.

What survives

One criterion holds, and it isn't trivial: rotation clearly beats holding the altcoin outright — 0.86 against 0.23 on median. Buy an altcoin from this field and sit on it, and you ended up with roughly a fifth of your bitcoin. Rotate, and you ended up with roughly four fifths.

That is a real damage-limitation effect. It just doesn't answer the question the product would have asked. Rotation protects you from the altcoin — less well than not buying it in the first place.

Limits of this test

  • Native BTC pairs only. The specification also allowed synthetic pairs (altcoin/USD divided by BTC/USD). Those are untested here and carry construction artifacts of their own.
  • The universe is 2019 majors, most of which lost against BTC. That is precisely why the placebo arm carries the verdict: it compares within the same pairs at the same exposure, so the conclusion does not rest on the altcoins having been weak.
  • Slippage beyond the taker fee is not modeled. On thin BTC order books that makes things worse, not better.
  • Delistings are invisible. A pair removed from the market since 2019 never appears. For majors that set is empty; the residual is documented either way.
  • Multipliers are not annualized and cover different spans per pair. The benchmark is unaffected: holding BTC returns 1.00 over any span.

The sober conclusion

The idea isn't stupid. Thinking in bitcoin units instead of flattering yourself with dollar gains is the right instinct, and it's why we specified the thing in the first place. Implementing that instinct as a three-state machine driven by trend signals does not deliver it. It pays fees, it fails to beat its own random twin, and not one of the 45 cells survives the correction for having tried 45 things.

Measuring it cost one day. Building it would have cost weeks — including database columns, an interface, two languages, and a marketing page built around the quality seal the measurement dismantled along the way.

What Backtesting Arena contributes here

The bitcoin denominator isn't a separate mode on the platform; it simply falls out of the data. BTC-quoted pairs like ETH/BTC are selectable in the backtester, and a test on ETH/BTC is denominated in bitcoin by construction. The "hold" benchmark there is 1.00 by definition.

For the two questions this idea died on, there are permanent tools. The net-of-cost view recomputes every result with trading fees applied — visible on every backtest, not relegated to a footnote. And the robustness field places a result next to its neighbours and applies the multiple-testing correction with a counted number of trials instead of a guessed one. Both would have argued against this idea before the study ran.

We publish failures because they carry the same value as hits: they tell you what you don't have to build.

Frequently asked questions

Does this mean altcoin rotation never works? It means this implementation, on these nine pairs, with these three trend signals, across these two intervals, does not work. Other signals or other pairs might land differently. Anyone claiming so should measure against a placebo, though — otherwise they are measuring altcoin exposure again.

Why are individual results so spectacular? One cell ends at 219 bitcoin from one. That is exactly why we report the median and apply a multiple-testing correction. Try 45 things and you will find something spectacular; that is arithmetic, not skill. That cell fails the correction too.

Would lower fees change the outcome? With entirely free trading, 22 instead of 19 cells would finish above 1.00. It doesn't change the verdict, because the placebo test has no fee question in it: the random twin pays exactly the same costs and still reaches the same results.

What is a placebo arm in this context? A run with identical market exposure and identical trading frequency, but shuffled timing. It answers one question: with the same presence in the market but no rule, would you have got the same outcome? Here, usually yes.

Why not simply use more periods in the consistency test? That would be the right reflex — except you then land on overlapping windows with ever fewer independent observations inside each one. The problem isn't the number three; it's the notion that a short history can yield many independent verdicts.

Can the numbers be reproduced? The computation rules were fixed before the run, including the pass criteria, and the result protocol is stored as a file in the project. The calculation cores are covered by 70 checks, among them one that rules out future candles influencing the past.

Try it yourself

Run the backtest with your own parameters and time ranges.

Run backtest →
📬

Don't miss new blog posts

One short email per new post — strategies, backtests, market analysis. No spam, unsubscribe with one click anytime.

By subscribing you accept our privacy policy. We use Resend for delivery. Double opt-in confirmation required.

Comments (0)

Join free to post comments.

Sign up →

No comments yet. Be the first!