
Die MACD Stochastics Oscillation Breakout Strategy ist eine quantitative Trading-Strategie, die die MACD- und Stochastics-Indikatoren kombiniert. Die Strategie versucht, die Trendrichtung der Aktienpreise zu identifizieren und eine Position einzunehmen, wenn die Preise aus den Schwingungsbereichen brechen.
Die Strategie berücksichtigt die Signale von MACD und Stochastics beim Eintritt in die Position, um die Qualität der Einträge zu verbessern. Zusätzlich setzt die Strategie einen Stop-Loss- und einen Stop-Stop-Punkt vor, um das Risiko effektiv zu kontrollieren.
Die MACD Stochastics-Bereichsbewegungs-Breakout-Strategie basiert hauptsächlich auf folgenden Prinzipien:
Die Strategie verwendet die Kreuzung der DIFF- und DEA-Linien des MACD-Indikators als Signal, um die Richtung der Preisentwicklung zu bestimmen. Wenn die DIFF nach oben durch die DEA geht, wird ein Mehrkopfsignal erzeugt, das im Gegensatz dazu ein Leerkopfsignal erzeugt.
Gleichzeitig erzeugt die K-Linie der Stochastics ein Handelssignal, wenn sie in der Nähe der Überkauf-Überverkaufszonen (die Standard 30 und 70) mit der D-Linie aufwärts oder abwärts kreuzt.
Die Strategie wählt den Einstieg, wenn der MACD- und der Stochastics-Indikator gleichzeitig ein Gleichgewichtsignal geben. In diesem Fall ist es wahrscheinlich, dass der Aktienpreis einen größeren Durchbruch erzielt.
Nach dem Eintritt setzt die Strategie einen rationalen Stop-Loss- und einen Stop-Off-Punkt. Ein vernünftiger Stop-Loss kann die Einzelschäden wirksam kontrollieren, und ein Stop-Off kann die Gewinne sperren.
Die MACD Stochastics-Bereich-Schock-Breakout-Strategie hat folgende Vorteile:
Die Strategie nutzt gleichzeitig MACD und Stochastics, um falsche Signale zu filtern und die Qualität der Einträge zu verbessern.
Die Strategie wurde speziell entwickelt, um nach längeren Aktienpreisschwankungen einen Durchbruch zu erfassen. Diese Trends sind in der Regel größer.
Die Strategie enthält eine Stop-Loss-Sicherung, die die Einzelschäden vernünftigerweise kontrolliert und die Gewinne rechtzeitig sperrt.
Trotz der sorgfältigen Gestaltung der Strategie für einen Ausbruch der MACD Stochastics-Bandschwankungen bestehen bestimmte Risiken:
Vor dem Börsengang kann es zu einem False-Breakout kommen. Die falsche Wahl des Einstiegszeitraums kann dazu führen, dass der Einstieg zu einem verpassten Einstiegspunkt wird.
Obwohl die Vorbereitungen für den Durchbruch gut sind, besteht die Möglichkeit, dass der Durchbruch fehlschlägt. In diesem Fall kann es zu Verlusten kommen.
Die Einstellung der Parameter der Strategie hat einen großen Einfluss auf die Ergebnisse. Wenn die Parameter nicht richtig eingestellt werden, wird ein großer Rabatt gewährt.
Für diese Risiken können Optimierungen wie folgt vorgenommen werden:
Kombination mit anderen Indikatoren Filtersignale
Ein manuelles Eingreifen sorgt für einen Durchbruch
Mehrgruppen-Parameter-Optimierungstests
Die MACD Stochastics Waveband-Shock-Breakout-Strategie hat noch Raum für weitere Optimierungen:
Optimierung von MACD-Parametern, um die beste Kombination zu finden
Optimierung von Stochastics-Parametern, um die beste Kombination zu finden
Hinzufügen von anderen Kennzahlen wie KDJ, BOLL und so weiter, um die Qualität der Entries zu verbessern
Verschiedene Haltedauer testen und Stop-Loss-Strategien optimieren
Test der Parameterdifferenz zwischen verschiedenen Handelszeichen
Erweiterung der Algorithmen und automatische Optimierung der Parameter
Die MACD Stochastics-Strategie nutzt die beiden Indikatoren MACD und Stochastics, um einen qualitativ hochwertigen Einstieg zu ermöglichen, wenn die Wellenbewegung durchbricht. Gleichzeitig wird die Stop-Loss-Strategie zur effektiven Risikokontrolle unterstützt. Diese Strategie greift die kurzfristige Trendentwicklung des Aktienpreises auf und hat einen gewissen Handelsvorteil.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true)
// Getting inputs
fast_length = input(title = "Fast Length", defval = 180)
slow_length = input(title = "Slow Length", defval = 390)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135)
sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"])
sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
// hline(0, "Zero Line", color = color.new(#787B86, 50))
// plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
// plot(macd, title = "MACD", color = #2962FF)
// plot(signal, title = "Signal", color = #FF6D00)
periodK = input.int(14, title="%K Length", minval=1)
smoothK = input.int(1, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
// plot(k, title="%K", color=#2962FF)
// plot(d, title="%D", color=#FF6D00)
// h0 = hline(80, "Upper Band", color=#787B86)
// hline(50, "Middle Band", color=color.new(#787B86, 50))
// h1 = hline(20, "Lower Band", color=#787B86)
// fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
// Make inputs that set the take profit % (optional)
longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01
// Calculate trading conditions
enterLong = macd>signal and ta.crossover(k,30)
enterShort = macd<signal and ta.crossunder(k,70)
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Plot take profit values for confirmation
plot(strategy.position_size > 0 ? longExitPrice : na,
color=color.green, style=plot.style_circles,
linewidth=3, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortExitPrice : na,
color=color.red, style=plot.style_circles,
linewidth=3, title="Short Take Profit")
// Submit entry orders
if enterLong
strategy.entry("long", strategy.long)
if enterShort
strategy.entry("short", strategy.short)
// STEP 3:
// Submit exit orders based on take profit price
if strategy.position_size > 0
strategy.exit("long TP", limit=longExitPrice)
if strategy.position_size < 0
strategy.exit("short TP", limit=shortExitPrice)