Diese Strategie ist ein intelligentes Handelssystem, das klassische technische Analysetools einschließlich gleitender Durchschnitts-Crossovers und Kerzenmustererkennung kombiniert. Die Strategie identifiziert potenzielle Marktwendepunkte, indem sie die Beziehung zwischen Kerzenschatten und Körpern analysiert und gleichzeitig doppelte gleitende Durchschnitts-Crossover-Signale integriert. Das System konzentriert sich nicht nur auf Preistrends, sondern berechnet auch Durchschnittsbereiche, um die Handelsparameter dynamisch anzupassen, um die Anpassungsfähigkeit zu verbessern.
Die Kernlogik besteht aus zwei Hauptkomponenten:
Das Modul zur Erkennung von Kerzenmustern identifiziert potenzielle Umkehrsignale, indem es das Verhältnis zwischen Schatten und Körpern berechnet. Das System enthält einstellbare Parameter für den Schattenmultiplikator (wickMultiplier) und den Körperprozentsatz (bodyPercentage), um die Signalqualität zu optimieren. Wenn ein Kerzenstock qualifizierte lange obere oder untere Schatten anzeigt, erzeugt das System entsprechende lange oder kurze Signale.
Das Dual Moving Average Crossover-System verwendet 14-Perioden- und 28-Perioden-Simple Moving Averages (SMA) als Trendindikatoren.
Diese Strategie baut einen relativ vollständigen Handelsentscheidungsrahmen auf, indem sie Kerzenmustererkennung mit gleitenden Durchschnitts-Crossover-Systemen kombiniert. Ihre Stärken liegen in strengen Signalfiltermechanismen und flexiblen Parameteranpassungsmöglichkeiten, während auf Parameteroptimierung und Anpassungsfähigkeit an die Marktumgebung geachtet werden muss. Durch kontinuierliche Optimierung und Verfeinerung zeigt die Strategie das Potenzial, eine stabile Performance unter verschiedenen Marktbedingungen zu erhalten.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 indicator("Wick Reversal Setup", overlay=true) // Input parameters wickMultiplier = input.float(3.5, title="Wick Multiplier", minval=0.5, maxval=20) bodyPercentage = input.float(0.25, title="Body Percentage", minval=0.1, maxval=1.0) // Calculate the average range over 50 periods avgRange = ta.sma(high - low, 50) // Define the lengths of wicks and bodies bodyLength = math.abs(close - open) upperWickLength = high - math.max(close, open) lowerWickLength = math.min(close, open) - low totalRange = high - low // Long signal conditions longSignal = (close > open and upperWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (close < open and lowerWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (close == open and close != high and upperWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (open == high and close == high and totalRange >= avgRange) // Short signal conditions shortSignal = (close < open and (high - open) >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (close > open and (high - close) >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (close == open and close != low and lowerWickLength >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (open == low and close == low and totalRange >= avgRange) // Plot signals plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Long") plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Short") // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Sahaj_Beriwal //@version=5 strategy("My strategy", overlay=true, margin_long=100, margin_short=100) longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) if (longCondition) strategy.entry("L", strategy.long) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) if (shortCondition) strategy.entry("S", strategy.short)