
Bei der Strategie handelt es sich um ein Trendfolgesystem für mehrere Zeiträume, das auf der Kreuzung geglätteter Kerzen (Heikin-Ashi) und des exponentiellen gleitenden Durchschnitts (EMA) basiert. Durch die Kombination der Glättungseigenschaften der Heikin-Ashi-Kerzendiagramme mit der Trendverfolgungsfunktion des gleitenden Durchschnitts über verschiedene Zeiträume und die Verwendung des MACD-Indikators als Filter können Markttrends genau erfasst werden. Die Strategie verwendet ein hierarchisch geordnetes Zeitfensterdesign und führt die Signalberechnung und -überprüfung in drei Zeitfenstern durch: 60 Minuten, 180 Minuten und 15 Minuten.
Die Kernlogik der Strategie umfasst die folgenden Schlüsselelemente:
Diese Strategie verwendet die Heikin-Ashi- und EMA-Systeme mehrerer Zeiträume in Kombination mit dem MACD-Filter, um ein vollständiges trendfolgendes Handelssystem aufzubauen. Bei der Entwicklung der Strategie werden die Zuverlässigkeit der Signale und die Stabilität des Systems umfassend berücksichtigt. Durch Parameteroptimierung und Verbesserung der Risikokontrollmechanismen kann eine Anpassung an unterschiedliche Marktumgebungen erfolgen. Die Hauptvorteile der Strategie liegen in der Glätte des Signals und dem Mechanismus zur Mehrfachüberprüfung. Gleichzeitig sollte jedoch auch auf die Risiken volatiler Märkte und Probleme bei der Parameteroptimierung geachtet werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus
//@version=5
strategy("Heikin Ashi Candle Time Frame @tradingbauhaus", shorttitle="Heikin Ashi Candle Time Frame @tradingbauhaus", overlay=true)
// Inputs
res = input.timeframe(title="Heikin Ashi Candle Time Frame", defval="60")
hshift = input.int(1, title="Heikin Ashi Candle Time Frame Shift")
res1 = input.timeframe(title="Heikin Ashi EMA Time Frame", defval="180")
mhshift = input.int(0, title="Heikin Ashi EMA Time Frame Shift")
fama = input.int(1, title="Heikin Ashi EMA Period")
test = input.int(1, title="Heikin Ashi EMA Shift")
sloma = input.int(30, title="Slow EMA Period")
slomas = input.int(1, title="Slow EMA Shift")
macdf = input.bool(false, title="With MACD filter")
res2 = input.timeframe(title="MACD Time Frame", defval="15")
macds = input.int(1, title="MACD Shift")
// Heikin Ashi calculation
var float ha_open = na
ha_close = (open + high + low + close) / 4
ha_open := na(ha_open[1]) ? (open + close) / 2 : (ha_open[1] + ha_close[1]) / 2
ha_high = math.max(high, math.max(ha_open, ha_close))
ha_low = math.min(low, math.min(ha_open, ha_close))
// Adjusted Heikin Ashi Close for different timeframes
mha_close = request.security(syminfo.tickerid, res1, ha_close[mhshift])
// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdl = request.security(syminfo.tickerid, res2, macdLine[macds])
macdsl = request.security(syminfo.tickerid, res2, signalLine[macds])
// Moving Averages
fma = ta.ema(mha_close[test], fama)
sma = ta.ema(ha_close[slomas], sloma)
plot(fma, title="Heikin Ashi EMA", color=color.green, linewidth=2)
plot(sma, title="Slow EMA", color=color.red, linewidth=2)
// Strategy Logic
golong = ta.crossover(fma, sma) and (macdl > macdsl or not macdf)
goshort = ta.crossunder(fma, sma) and (macdl < macdsl or not macdf)
// Plot Shapes for Buy/Sell Signals
plotshape(golong, color=color.green, text="Buy", style=shape.triangleup, location=location.belowbar)
plotshape(goshort, color=color.red, text="SELL", style=shape.triangledown, location=location.abovebar)
// Strategy Orders
strategy.entry("Long", strategy.long, when=golong)
strategy.close("Long", when=goshort)
strategy.entry("Short", strategy.short, when=goshort)
strategy.close("Short", when=golong)
// Alerts
alertcondition(golong, "Heikin Ashi BUY", "")
alertcondition(goshort, "Heikin Ashi SELL", "")