
Die Strategie ist ein Trend-Tracking-System, das auf der Heikin-Ashi-K-Linie basiert. Durch eine glatte Verarbeitung des traditionellen EMA-Doppelindex-Moving Averages auf der Heikin-Ashi-K-Linie wird der Marktrauschen reduziert und ein klareres Trendsignal bereitgestellt. Die Strategie arbeitet nur in mehreren Arten, hält Positionen in Aufwärtstrends und hält Positionen in Abwärtstrends, um durch eine effiziente Trendfangung Marktgewinn zu erzielen.
Die Kernlogik der Strategie umfasst die folgenden wichtigen Schritte:
Die Strategie baut mit einer doppelten Glattabwicklung und einer verbesserten Ping-Yang-K-Linie einen robusten Trend-Tracking-System auf. Die Strategie ist schlicht und einfach zu verstehen und zu implementieren, und bietet mehrere Optimierungsrichtungen für verschiedene Marktumgebungen. Obwohl es ein gewisses Rückstands- und Rücknahmerisiko gibt, bietet die Strategie den Anlegern ein zuverlässiges Trend-Tracking-Tool durch vernünftige Kapitalmanagement- und Risikokontrollmaßnahmen.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Smoothed Heiken Ashi Strategy Long Only", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input.int(10, title="EMA Length")
len2 = input.int(10, title="Smoothing Length")
start_date = input(defval=timestamp("2020-01-01"), title="Backtest Start Date")
o = ta.ema(open, len)
c = ta.ema(close, len)
h = ta.ema(high, len)
l = ta.ema(low, len)
haclose = (o + h + l + c) / 4
var float haopen = na
haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = math.max(h, math.max(haopen, haclose))
halow = math.min(l, math.min(haopen, haclose))
o2 = ta.ema(haopen, len2)
c2 = ta.ema(haclose, len2)
h2 = ta.ema(hahigh, len2)
l2 = ta.ema(halow, len2)
col = o2 > c2 ? color.red : color.lime
// Plot candles without visible wicks
plotcandle(o2, o2, c2, c2, title="Heikin Smoothed", color=col, wickcolor=color.new(col, 100))
// Delayed Buy and Sell signals
colorChange = col != col[1]
buySignal = colorChange[1] and col[1] == color.lime
sellSignal = colorChange[1] and col[1] == color.red
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Strategy entry and exit
if (true)
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.close("Long")
// Add a vertical line at the start date
// if (time == start_date)
// line.new(x1=bar_index, y1=low, x2=bar_index, y2=high, color=color.blue, width=2)
// Alert conditions
alertcondition(colorChange[1], title="Color Change Alert", message="Heiken Ashi Candle Color Changed")
alertcondition(buySignal, title="Buy Signal Alert", message="Buy Signal: Color changed from Red to Green")
alertcondition(sellSignal, title="Sell Signal Alert", message="Sell Signal: Color changed from Green to Red")