Strategie zur Durchbrüche der Steifigkeit

Schriftsteller:ChaoZhang, Datum: 2024-01-03 11:34:34
Tags:

img

Übersicht

Die Steifheitsdurchbruchstrategie ist eine Breakout-Strategie, die auf dem Preissteifheitsindikator basiert. Sie berechnet die Anzahl der Male, in denen der Schlusskurs über einen bestimmten Zeitraum durch die obere Schiene bricht, um die Steifheit des Preises zu bestimmen. Wenn der Steifheitsindikator den festgelegten Schwellenwert überschreitet, wird entschieden, dass der Markt brechen wird und eine Kauforder platziert wird. Wenn der Steifheitsindikator unterhalb des Schwellenwerts liegt, wird entschieden, dass der Markt zurückfallen wird und eine Verkaufsorder platziert wird.

Strategieprinzip

  1. Berechnung des gleitenden Durchschnitts und der Standardabweichung: Berechnen Sie den einfachen gleitenden Durchschnitt von n Perioden als die Referenzobergrenze und das 0,2-fache der Standardabweichung des Preises als die unteren Puffergrenzen.

  2. Berechnen Sie den Steifheitsindikator: Zählen Sie die Anzahl der Tage, an denen der Schlusskurs in m Zyklen über der oberen Schiene liegt, dividieren Sie durch m, um einen Wert zwischen 0 und 100 zu erhalten, und glätten Sie ihn dann mit einem n-Perioden-EMA aus, um den endgültigen Steifheitswert zu erhalten, der die Wahrscheinlichkeit darstellt, dass der Schlusskurs die oberen Schienen durchbricht.

  3. Vergleichen Sie Steifheit und Schwellenwert: Wenn der Steifheitsindikator über den festgelegten Schwellenwert geht, bedeutet dies, dass die Wahrscheinlichkeit eines Durchbruchs steigt und ein Kaufsignal generiert wird.

  4. Eintritt und Ausstieg: Kaufen, wenn der Schlusskurs durch die obere Schiene bricht, und verkaufen, wenn der Durchbruch fehlschlägt und der Rückgang beginnt.

Analyse der Vorteile

  1. Erfassen Sie den Zeitpunkt der Ausbrüche: Beurteilen Sie relativ zuverlässig, wann ein Trend ausbrechen oder sich zurückziehen wird, um im Voraus in den Markt einzutreten.

  2. Berücksichtigen Sie Ausbrüche und Rückgänge: Die Strategie erfasst sowohl lange als auch kurze Chancen, indem sie Ausbrüche und Rückgänge der Steifheitsindikatoren nutzt.

  3. Flexible Parameter: Benutzer können Parameter wie gleitende Durchschnittslänge, Steifheitszyklus, Schwellenwert usw. entsprechend dem Markt anpassen, um sich an die Merkmale der verschiedenen Zyklen und Märkte anzupassen.

  4. Einfach zu implementieren: Nur Steifheitsindikator und Schwellenwertvergleich ohne komplexe Logik verwenden, die Codeimplementierung ist recht einfach.

Risikoanalyse

  1. Risiko eines fehlenden Ausbruchs: Wenn die Steifheit den Schwellenwert überschreitet, kann nicht vollständig garantiert werden, dass die Preise den oberen Rahmen durchbrechen, wobei ein gewisses Risiko für falsche Ausbrüche besteht.

  2. Pullback-Range-Risiko: Bei einem Short gehen kann der spezifische Pullback-Range und -Standort nicht vorhergesagt werden, da das Risiko besteht, zu viel zu verlieren.

  3. Parameteroptimierungsrisiko: Referenzparameter können sich nicht vollständig an Marktveränderungen anpassen und müssen kontinuierlich nach den tatsächlichen Bedingungen getestet und optimiert werden.

  4. Häufiges Handelsrisiko: Die relativ hohe Handelsfrequenz dieser Strategie erhöht den Verlust durch Handelskosten und Slippage.

Optimierungsrichtlinien

  1. Optimieren von Parametern: Testen Sie Parameter-Einstellungen unter verschiedenen Märkten, um die optimale Parameterkombination zu finden.

  2. Hinzufügen von Stop-Loss: Setzen Sie eine angemessene Stop-Loss-Logik, um einzelne Verluste zu kontrollieren.

  3. Einbeziehung anderer Indikatoren: Indikatoren wie MACD und KD können hinzugefügt werden, um bestimmte Einstiegspunkte zu bestimmen und die Wahrscheinlichkeit falscher Ausbrüche zu verringern.

  4. Optimierung der Ausstiegsbedingungen: Trendindikatoren können verwendet werden, um die Merkmale von Trendumkehrungen zu ermitteln und genauere Ausstiegsbedingungen festzulegen.

Zusammenfassung

Insgesamt ist die Stiffness Breakthrough Strategie ziemlich einfach und praktisch. Sie kann mögliche Preis-Breakthroughs und Pullbacks im Voraus vorhersagen, mit etwas praktischem Wert. Aber wir müssen auch auf die Probleme falscher Breakouts und Pullback-Bereich achten und genaue Handelsmöglichkeiten durch Parameteroptimierung und Hinzufügung anderer technischer Indikatoren erfassen.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2020-present, JMOZ (1337.ltd)
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Stiffness Indicator script may be freely distributed under the MIT license.
strategy("Stiffness Strategy", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.075)


maLength = input(title="Moving Average Length", minval=1, defval=100)
stiffLength = input(title="Stiffness Length", minval=1, defval=60)
stiffSmooth = input(title="Stiffness Smoothing Length", minval=1, defval=3)
threshold = input(title="Threshold", minval=1, defval=90)
highlightThresholdCrossovers = input(title="Highlight Threshold Crossovers ?", type=input.bool, defval=false)


bound = sma(close, maLength) - 0.2 * stdev(close, maLength)
sumAbove = sum(close > bound ? 1 : 0, stiffLength)
stiffness = ema(sumAbove * 100 / stiffLength, stiffSmooth)


long_cond = crossover(stiffness, threshold)
long_close = stiffness > threshold and falling(stiffness, 1)
short_cond = crossunder(stiffness, threshold) or stiffness < threshold and falling(stiffness, 1)
short_close = stiffness < threshold and rising(stiffness, 1)


strategy.entry("Long", strategy.long, when=long_cond)
strategy.close("Long", when=long_close)
strategy.entry("Short", strategy.short, when=short_cond)
strategy.close("Short", when=short_close)


transparent = color.new(color.white, 100)

bgColor = highlightThresholdCrossovers ? stiffness > threshold ? #0ebb23 : color.red : transparent
bgcolor(bgColor, transp=90)

plot(stiffness, title="Stiffness", style=plot.style_histogram, color=#f5c75e, transp=0)
plot(threshold, title="Threshold", color=color.red, transp=0)


Mehr