Backtesting Arena

Backtesting Arena

PricingBlogBuild SaaS
🧭How it works🥋Strategies📖Wiki📓Glossary🎓How-To📚Reports
🧭Market State Today
🧱Market Structure₿BTC × Macro📈Market Pulse
🌀Arena Pulse
🌡Arena Heat Chart
🎯Dip Decision Tool
💶DCA vs. Lump Sum
🔗Portfolio Correlation
💧Liquidity Fair Value
🌍Macro Regime
🌐Market Pulse (Multi-Asset)soon
📊Bitcoin Charts
📍Max Pain History
🧘Bitcoin Lifestyle Calculator
📖Bitcoin Wiki
🔥Altcoin SeasonPro
💎Altcoin Screener
📥Market Charts
📊Strategy InsightsPro
🌍Market InsightsPro🔬Filter InsightsElite
🧪Edge Library
🥇Edge Leaderboard
📡Live Tracking
⏳Volatility InsightsPro
🏅Arena Score
💼Portfolio
₿Crypto
📈Tokenized RWAPro
📋My Backtests
⚖️Active vs Passive
🔔Alerts
🚦Signal Status
🤖Grid Bot Testing
🧪Strategy Mixersoon
🏆Winner's List
🎰Backtest Roulette
🌡️Sentiment
💡Improvements
🎁Referral
💬Telegram
🦋Bluesky
👥Reddit
𝕏X (Twitter)
🧭How it works
🥋Strategies
📖Wiki
📓Glossary
🎓How-To
📚Reports
🏠Overview
📖API Docs (interactive)
🔑Keys & Plans
📜OpenAPI 3.1
📦Postman Collection
🤖llms.txt
🧩skill.md
📝 BlogBuild SaaS💳 Pricing
LoginSign up

⚠ Not financial advice. All backtests are historical simulations — no guarantee of future results.

Study the Past — Improve your Future.

🟠Backtesting Arena· © 2026
How it worksPricingLeaderboardAPIImpressumDatenschutzAGBCookie-HinweisKontakt
📘 Built with Claude — how this platform was built in 70h (guide + boilerplate)→
Backtesting Arena

Backtesting Arena

PricingBlogBuild SaaS
🧭How it works🥋Strategies📖Wiki📓Glossary🎓How-To📚Reports
🧭Market State Today
🧱Market Structure₿BTC × Macro📈Market Pulse
🌀Arena Pulse
🌡Arena Heat Chart
🎯Dip Decision Tool
💶DCA vs. Lump Sum
🔗Portfolio Correlation
💧Liquidity Fair Value
🌍Macro Regime
🌐Market Pulse (Multi-Asset)soon
📊Bitcoin Charts
📍Max Pain History
🧘Bitcoin Lifestyle Calculator
📖Bitcoin Wiki
🔥Altcoin SeasonPro
💎Altcoin Screener
📥Market Charts
📊Strategy InsightsPro
🌍Market InsightsPro🔬Filter InsightsElite
🧪Edge Library
🥇Edge Leaderboard
📡Live Tracking
⏳Volatility InsightsPro
🏅Arena Score
💼Portfolio
₿Crypto
📈Tokenized RWAPro
📋My Backtests
⚖️Active vs Passive
🔔Alerts
🚦Signal Status
🤖Grid Bot Testing
🧪Strategy Mixersoon
🏆Winner's List
🎰Backtest Roulette
🌡️Sentiment
💡Improvements
🎁Referral
💬Telegram
🦋Bluesky
👥Reddit
𝕏X (Twitter)
🧭How it works
🥋Strategies
📖Wiki
📓Glossary
🎓How-To
📚Reports
🏠Overview
📖API Docs (interactive)
🔑Keys & Plans
📜OpenAPI 3.1
📦Postman Collection
🤖llms.txt
🧩skill.md
📝 BlogBuild SaaS💳 Pricing
LoginSign up
Strategies›Smoothed Heiken Ashi
Smoothed Heiken Ashi master

Smoothed Heiken Ashi Strategy

Heiken-Ashi candles smoothed twice — colour flip = signal. A noise filter that turns a chart into trend or no-trend.

Try in Arena →View Live Insights →

Quick Facts

Type:
Trend Following · Momentum
Plan:
Pro
Asset Classes:
Crypto · Tokenized RWA
Indicators:
Heiken-Ashi · EMA · SMA · WMA

Community Performance

ⓘ
CAGR
+2.9%
Win Rate
36%
Max DD
-68%

Basis: 1230 user backtests · BTCUSDT · 1d · 4 years

How It Works

Smoothed Heiken Ashi (SHA) is a classic noise filter that converts a regular OHLC chart into two trend states — bullish (green) or bearish (red) — and trades the colour flips.

The pipeline runs in three stages:

Stage 1 — Pre-smooth the input candles. Each of the four OHLC series (open / high / low / close) is independently smoothed with a moving average of length smoothLength (default 10). You can pick the MA type: SMA, EMA or WMA. This step kills high-frequency wicks before the Heiken-Ashi recursion sees them.

Stage 2 — Compute Heiken-Ashi. Classic HA formula on the smoothed series: haClose = (o + h + l + c) / 4, haOpen = (prev haOpen + prev haClose) / 2, haHigh = max(h, haOpen, haClose), haLow = min(l, haOpen, haClose). Heiken-Ashi is already a smoothing technique — running it on already-smoothed input compounds the effect.

Stage 3 — Post-smooth the HA series. Apply the same MA again with length afterSmoothLength (default 10) to haOpen and haClose. The final coloured candle is what triggers the signal.

Signals (colour flip):

  • BUY — smoothed haClose > haOpen on the current bar AND was not strictly green on the previous bar (red → green transition).
  • SELL — smoothed haClose < haOpen on the current bar AND was not strictly red on the previous bar (green → red transition).

With double-smoothing the strategy becomes lazy by design: false flips in choppy markets are absorbed by the second MA layer, but real trend reversals also arrive a few bars late. That's the trade-off.

Entry & Exit Rules

▲Entry

  • ●Final smoothed-HA close > open on the current bar (candle is green)
  • ●Previous smoothed-HA bar was not strictly green (red or doji)
  • ●Position is currently flat

▼Exit

  • ●Final smoothed-HA close < open on the current bar (candle is red)
  • ●Previous smoothed-HA bar was not strictly red (green or doji)
  • ●Position is currently long

Parameters

NameDefaultRangeDescription
Pre-Smooth Length101–100Moving-average length applied to the raw OHLC series before the Heiken-Ashi step. Higher = smoother input, fewer false flips.
Post-Smooth Length101–100Moving-average length applied to the HA-open / HA-close series. Higher = lazier colour, fewer signals.
MA Type00–2Type of moving average used for both smoothing stages. SMA (simple), EMA (exponential, default) or WMA (weighted).

Live Backtest

The pre-baked mini-backtest is refreshed daily — check back soon or start a live run in the Arena.

Run in Arena →

Performance per Asset

Top-10 assets by average CAGR (1d interval), aggregated from community + platform backtests. Actual results depend on parameters and period.

AssetCAGRvs B&H★Win%YearsRuns
FTMUSDT+151.4%+28.3pp—38%5.510
MATICUSDT+84.9%-17.3pp—38%5.310
SEIUSDT+74.1%+106.2pp—44%2.71
PEPEUSDT+69.5%+69.8pp—43%3.01
BNBUSDT+69.3%-7.1pp—34%8.510
AVAXUSDT+66.2%+61.1pp—44%5.85
SOLUSDT+60.4%-10.4pp—37%5.98
DOGEUSDT+58.9%-15.1pp—40%6.910
INJUSDT+57.0%+19.4pp—46%5.710
THETAETH+49.4%+62.2pp7842%6.41
pp = delta vs avg-B&H · ★ = robustness score 0-100 (CAGR / win-rate / drawdown / consistency).Full Insights →

Pseudo-Code

expand
// Stage 1: smooth raw OHLC
so = MA(open,  smooth_length, ma_type)
sh = MA(high,  smooth_length, ma_type)
sl = MA(low,   smooth_length, ma_type)
sc = MA(close, smooth_length, ma_type)

// Stage 2: Heiken-Ashi on smoothed candles
for i in 0..n:
  haClose[i] = (so[i] + sh[i] + sl[i] + sc[i]) / 4
  haOpen[i]  = i == 0 ? (so[i] + sc[i]) / 2
                       : (haOpen[i-1] + haClose[i-1]) / 2

// Stage 3: smooth HA again
finalOpen  = MA(haOpen,  after_smooth_length, ma_type)
finalClose = MA(haClose, after_smooth_length, ma_type)

// Signals: colour flip
for i in 1..n:
  prev_green = finalClose[i-1] > finalOpen[i-1]
  prev_red   = finalClose[i-1] < finalOpen[i-1]
  curr_green = finalClose[i]   > finalOpen[i]
  curr_red   = finalClose[i]   < finalOpen[i]

  if curr_green and not prev_green and position.is_flat:
    BUY
  if curr_red   and not prev_red   and position.is_long:
    SELL

Strengths & Weaknesses

+Strengths

  • ●Filters out a lot of intra-bar noise — works well on trending assets
  • ●Three parameters only — hard to overfit
  • ●MA-type toggle (SMA / EMA / WMA) gives a quick way to test smoothing flavour
  • ●Asset-class agnostic — same logic on stocks, FX, commodities

−Weaknesses

  • ●Double-smoothing is lagging by design — late entries on fast reversals
  • ●Long warmup (smoothLength + afterSmoothLength + ~10 bars) — short test periods may produce few or zero trades
  • ●Choppy ranges still produce some whipsaws, even with both smoothing stages
  • ●No volatility or volume context — every colour flip looks the same to the strategy

Frequently Asked Questions

Which MA type should I use?+

Start with **EMA** (default) — reacts a bit faster than SMA while still smoothing well. **SMA** is the most lagging but cleanest in pure trends. **WMA** sits between the two and emphasises the most recent bars. Test all three on your asset of choice — the difference can be meaningful on shorter timeframes.

Why do I see fewer trades than other strategies?+

Two reasons: (1) the warmup is `smoothLength + afterSmoothLength + ~10 bars` — on weekly candles that's already ~30 weeks of dead time before the first signal can fire. (2) Double-smoothing absorbs many small flips that simpler strategies would trade. If you want more signals, shorten both lengths or switch to a daily timeframe.

How is this different from plain Heiken-Ashi?+

Plain Heiken-Ashi already smooths the chart via its `(o+h+l+c)/4` and recursive open formula. Smoothed HA adds a pre-smoothing step (MA over each raw OHLC series) and a post-smoothing step (MA over the HA-open / HA-close). The result is much lazier — and that's the whole point: false signals in choppy markets get absorbed, real trend changes still come through, just slower.

Related Strategies

EMA Trend Bias

Two EMAs plus an ATR-based neutral zone — like the commercial Larsson Line, but tunable, transparent, and backtested. Choose your bias.

EMA · ATR

WMA Trend Signal

Two weighted moving averages crossing — recent candles weight more, signals fire faster than SMA-based crosses. Validated on BTC weekly.

WMA

Golden Cross

The classic trend-following signal — when the 50-day SMA crosses above the 200-day SMA, the trend has flipped bullish.

SMA

Don't want to backtest yourself?

Check out our Strategy Insights Reports — pre-baked deep-dives with historical results, comparisons, and market context.

📊 View Reports →

Ready to backtest?

Open the Arena →