
Die Strategie ist ein intelligentes Handelssystem, das die klassischen Ebenenkreuzungen und K-Linienformerkennungen in der technischen Analyse kombiniert. Die Strategie analysiert die Beziehung zwischen den Ober- und Unterlinien der K-Linien und den Entitäten, kombiniert mit dem Signal der Doppel-Ebenenkreuzung, um die Wendepunkte der Markttrends genau zu erfassen. Das System beobachtet nicht nur die Preisentwicklung, sondern auch die dynamische Anpassung der Handelsparameter durch die Berechnung der mittleren Wellenlänge, um die Anpassung der Strategie zu verbessern.
Die Kernlogik der Strategie besteht aus zwei Hauptteilen:
Das K-Linien-Form-Erkennungsmodul erkennt potenzielle Umkehrsignale, indem es die proportionale Beziehung zwischen den oberen und unteren Schattenlinien und den Objekten berechnet. Das System setzt ein einstellbares Schattenlinie-Multiplikator-Parameter (wickMultiplier) und den Körperprozentsatz-Parameter (bodyPercentage) ein, um die Signalqualität zu optimieren.
Bei einem Doppel-Gleichgewichts-Kreuzungssystem wird ein einfacher gleitender Durchschnitt (SMA) mit 14 und 28 Perioden als Trendindikator verwendet. Wenn ein kurzfristiger Mittelwert den langfristigen Mittelwert nach oben durchquert, erzeugt das System ein Mehrwertsignal. Wenn ein kurzfristiger Mittelwert den langfristigen Mittelwert nach unten durchquert, erzeugt das System ein Fehlwertsignal.
Die Strategie baut durch die Kombination von K-Linien-Form-Erkennung und einheitlicher Linien-Kreuzung ein relativ vollständiges Handelsentscheidungs-Framework auf. Die Vorteile der Strategie liegen in ihrer strengen Signalfilterung und flexiblen Parameter-Anpassungsfähigkeit, aber auch in der Optimierung der Parameter und der Anpassungsfähigkeit an die Marktumgebung. Durch kontinuierliche Optimierung und Verbesserung wird die Strategie in der Lage sein, eine stabile Leistung in verschiedenen Marktumgebungen zu halten.
/*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)