Diese Strategie ist ein Trendfolgensystem, das auf glatten Heikin-Ashi-Kerzen und einfachen gleitenden Durchschnitten (SMA) basiert. Sie identifiziert Trendveränderungen durch die Schnittstelle von EMA-glatten Heikin-Ashi-Kerzen mit einem 44-Perioden-SMA, um wichtige Trendchancen auf dem Markt zu erfassen. Die Strategie beinhaltet einen dynamischen Positionsmanagementmechanismus, der Positionen automatisch schließt, wenn die Preise dem langfristigen gleitenden Durchschnitt zu nahe kommen, um Schwankungsrisiken bei der Konsolidierung von Märkten zu vermeiden.
Die Kernlogik besteht aus drei Schlüsselelementen: Erstens, die Umwandlung traditioneller Kerzen in Heikin-Ashi-Kerzen, indem das arithmetische Mittel der offenen, hohen, niedrigen und schließenden Preise berechnet wird, um Marktlärm zu filtern; Zweitens, die Verwendung eines 6-Perioden-EMA, um den Heikin-Ashi zu glätten, um die Signalzuverlässigkeit weiter zu verbessern; Schließlich, die Kombination des glätteten Heikin-Ashi-Schlusskurses mit einem 44-Perioden-SMA, der lange Signale bei Aufwärtskreuzen und kurze Signale bei Abwärtskreuzen erzeugt. Das Konzept einer
Die Strategie baut ein robustes Trend-Folge-Handelssystem auf, indem sie Heikin-Aschi-Kerzen mit SMA-Systemen kombiniert. Es verfügt über umfassende Signalgenerierungsmechanismen und eine angemessene Risikokontrolle, die besonders für Märkte mit unterschiedlichen Trendmerkmalen geeignet ist. Die praktische Wirksamkeit der Strategie kann durch die vorgeschlagenen Optimierungsrichtungen weiter verbessert werden. Insgesamt stellt sie eine gut gestaltete Trend-Folge-Strategie mit klarer Logik dar.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true) // Input parameters for SMAs s1 = input.int(11, title="Short SMA Period") s2 = input.int(44, title="Long SMA Period") noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001) // Calculate the original Heikin-Ashi values haClose = (open + high + low + close) / 4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(high, math.max(haOpen, haClose)) haLow = math.min(low, math.min(haOpen, haClose)) // Smoothing using exponential moving averages smoothLength = input.int(6, title="Smoothing Length") smoothedHaClose = ta.ema(haClose, smoothLength) smoothedHaOpen = ta.ema(haOpen, smoothLength) smoothedHaHigh = ta.ema(haHigh, smoothLength) smoothedHaLow = ta.ema(haLow, smoothLength) // Calculate SMAs smaShort = ta.sma(close, s1) smaLong = ta.sma(close, s2) // Plotting the smoothed Heikin-Ashi values plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi") plot(smaShort, color=color.blue, title="SMA Short") plot(smaLong, color=color.red, title="SMA Long") // Generate buy/sell signals based on SHA crossing 44 SMA longCondition = ta.crossover(smoothedHaClose, smaLong) shortCondition = ta.crossunder(smoothedHaClose, smaLong) noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (noPositionCondition and strategy.position_size != 0) strategy.close_all("No Position") // Plot buy/sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)