Stochastische Momentum-Ausbruchsstrategie


Erstellungsdatum: 2023-10-24 16:35:24 zuletzt geändert: 2023-10-24 16:35:24
Kopie: 0 Klicks: 816
1
konzentrieren Sie sich auf
1617
Anhänger

Stochastische Momentum-Ausbruchsstrategie

Überblick

Die Dynamik-Breakout-Strategie verwendet hauptsächlich den Stochastic-Oscillator-Indikator, um die Richtung des Markttrends zu bestimmen, in Kombination mit dem ADX-Indikator, der den Trend als schwach beurteilt, um ein Handelssignal zu erzeugen. Diese Strategie ist hauptsächlich für den Handel mit mittleren und langen Trends geeignet.

Strategieprinzip

Die Strategie basiert hauptsächlich auf zwei technischen Indikatoren:

  1. Der Stochastic-Oszillator wird verwendet, um die Richtung des Markttrends zu bestimmen. Die Werte des Stochastic-Oszillators liegen zwischen 0 und 100, wenn die Periode 14 beträgt. Werte zwischen 45 und 55 bedeuten, dass es keinen klaren Trend gibt.

  2. Der ADX-Indikator wird verwendet, um zu beurteilen, ob ein Trend stark oder schwach ist.

Die Strategie beginnt damit, anhand der Werte des Stochastic-Oszillators zu beurteilen, ob es derzeit einen klaren Auf- oder Abwärtstrend gibt. Wenn der Stochastic über 55 liegt, wird ein bullischer Trend vermutet. Wenn der Stochastic unter 45 liegt, wird ein bullischer Trend vermutet.

Die Strategie erkennt dann, ob der ADX über 20 liegt. Wenn der ADX über 20 liegt, bedeutet dies, dass der Trend stark ist, und der Trend kann gehandelt werden.

Der Stochastic Oscillator und der ADX zusammen legen nahe, dass eine Strategie ein Kauf-/Verkaufssignal erzeugt, wenn die folgenden beiden Bedingungen erfüllt sind:

  1. Der Stochastic liegt über 55, was auf eine positive Tendenz hindeutet.
  2. Der ADX liegt über 20, was auf eine starke Beobachtungsbewegung hindeutet.

Eine Strategie erzeugt ein Verkaufssignal, wenn die folgenden beiden Bedingungen erfüllt sind:

  1. Der Stochastic liegt unter 45, was auf eine Abwärtsbewegung hindeutet.
  2. Der ADX liegt über 20, was eine starke Abwärtstrend bedeutet.

Durch diese Beurteilungsregeln entsteht eine tendenziell orientierte, mittlere und lange Linie-Handelsstrategie.

Strategische Vorteile

Diese Strategie hat folgende Vorteile:

  1. Erfassung von mittleren und langen Trends: In Kombination mit Stochastic und ADX kann die Richtung und Stärke von mittleren und langen Trends in den Märkten effektiv beurteilt und die wichtigsten Trends erfasst werden.

  2. Zurückziehungskontrolle: Nur wenn der Trend sichtbar ist, kann der Rückziehung durch unnötige Umkehrung effektiv kontrolliert werden.

  3. Parameteroptimierungsraum: Stochastic- und ADX-Zyklen können optimiert werden, um die Parameter für verschiedene Märkte anzupassen.

  4. Einfach intuitiv: Die gesamte Logik der Strategie ist einfach und klar und besteht aus zwei häufig verwendeten technischen Indikatoren, die intuitiv und leicht verständlich sind.

  5. universality:The strategy can be applied to different markets with parameter tuning.

Strategisches Risiko

Die Strategie birgt auch einige Risiken:

  1. Fehlende Durchbruchspunkte: Stochastic und ADX gehören zu den Trendfollowing-Indikatoren und können potenzielle Trendwendepunkte verpassen und frühe Durchbruchsmöglichkeiten verpassen.

  2. Trendumkehrrisiko: In der Endphase des Trends können Stochastic und ADX fälschlicherweise feststellen, dass der Trend weitergeht, und verpassen die Gelegenheit, rechtzeitig auszusteigen, was zu Verlusten führt.

  3. Schwierigkeiten bei der Optimierung der Parameter: Die Stochastic- und ADX-Parameter müssen für verschiedene Märkte optimiert werden.

  4. Whipsaws: Diese Strategie kann zu mehreren ungültigen Handelssignalen führen, wenn der Trend nicht eindeutig ist.

  5. Divergence:When the price trend conflicts with the Stochastic oscillator trend, divergence emerges, which may lead to losing trades.

Das Risiko kann durch folgende Maßnahmen verringert werden:

  1. In Kombination mit anderen Indikatoren wurden lokale Trends ermittelt und potenzielle Durchbruchspunkte identifiziert.

  2. Das ist ein Trendwechselsignal, das bei einem deutlichen Trendwechsel ausgeschaltet wird.

  3. Automatische Optimierung der Parameter durch Methoden wie maschinelles Lernen.

  4. Increase the ADX threshold to filter out weak trend signals in ranging markets.

  5. Apply additional indicators to confirm the Stochastic signals and avoid divergence trades.

Richtung der Strategieoptimierung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Stochastic-Parameter: Anpassung der Parameter K-Zyklus, D-Zyklus, Optimierung der Position der Kauf- und Verkaufspunkte.

  2. Optimierung der ADX-Parameter: Anpassung der ADX-Zyklen, um die Parameter zu ermitteln, die am besten die Trendstärke bestimmen.

  3. Erhöhung des Trendumkehrsignals: Erhöhung der Positionen in den überkauften und überverkauften Bereichen des Stochastic und Einrichtung eines Stop-Losses.

  4. In Kombination mit anderen Indikatoren: In Kombination mit Indikatoren wie RSI, MACD, um zu bestimmen, wann man kaufen oder verkaufen soll.

  5. Maschinelles Lernen: Die optimale Kombination von Parametern wird durch Maschinelles Lernen ermittelt.

  6. Erhöhung der Stop-Loss-Strategie: Setzen Sie eine mobile Stop-Loss-Strategie oder wechseln Sie zu einer Stop-Loss-Strategie, um einzelne Verluste zu kontrollieren.

  7. Trailong stop loss: Add trailing stop loss to lock in profits as the trend extends.

  8. Money management: Optimize the risk management by adjusting position sizing based on ADX strength.

Zusammenfassen

Zusammenfassend kann man sagen, dass die Dynamik-Breakout-Strategie insgesamt trendorientiert ist und die Trendrichtung der Stochastik und die Trendstärke der ADX nutzt, um eine mittlere und längere Handelsstrategie zu bilden. Die Strategie hat den Vorteil, dass sie den Trend erfasst, den Rückzug kontrolliert und einfach ist.

Strategiequellcode
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END