Momentum Breakthrough ATR Volatilitätsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-12 13:50:44
Tags:

img

Übersicht

Diese Strategie nutzt eine Kombination aus einfachen gleitenden Durchschnitten und doppelten gleitenden Durchschnittsstrategien, ergänzt durch den ATR-Volatilitätsindex, um die Marktvolatilität zu bestimmen. Wenn die kurzfristige Durchschnittslinie über die langfristige Durchschnittslinie überschreitet, wird sie als Bullenmarkt bestimmt und eine Long-Position eingenommen. Wenn die kurzfristige Durchschnittslinie unter die langfristige Durchschnittslinie überschreitet, wird sie als Bärenmarkt bestimmt und eine Short-Position eingenommen. Gleichzeitig wird die Zuverlässigkeit des gleitenden Durchschnittssignals beurteilt, indem der volumengewichtete Durchschnittspreis VWAP kombiniert wird. Darüber hinaus wird der RSI-Indikator integriert, um Umkehrungen zu vermeiden. Der ATR-Volatilitätsindex wird zur Bestimmung der Marktvolatilität verwendet, um den Handel während niedrigerer Volatilitätsperioden auszuwählen.

Strategieprinzip

Der Kern der Strategie ist der doppelte gleitende Durchschnitt. Die doppelte gleitende Durchschnittsstrategie wählt typischerweise einen kurzfristigen gleitenden Durchschnitt und einen langfristigen gleitenden Durchschnitt, wie den 50-Tage-gleitenden Durchschnitt und den 200-Tage-gleitenden Durchschnitt. Ein Kaufsignal wird erzeugt, wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt geht. Ein Verkaufssignal wird erzeugt, wenn der kurzfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt geht. Die doppelte gleitende Durchschnittsstrategie beurteilt Veränderungen in langfristigen und kurzfristigen Markttrends und verwendet gleitende Durchbrüche, um Trendwendepunkte zu erfassen.

Diese Strategie wählt den 50-tägigen gleitenden Durchschnitt als kurzfristigen gleitenden Durchschnitt und den 200-tägigen gleitenden Durchschnitt als langfristigen gleitenden Durchschnitt. Kombiniert mit dem volumengewichteten Durchschnittspreis VWAP, um die Zuverlässigkeit des gleitenden Durchschnittssignals zu bestimmen. Das heißt, nur dann in den Markt eintreten, wenn das gleitende Durchschnittssignal mit VWAP ausgerichtet ist. Dies filtert einige falsche Signale aus.

Darüber hinaus ist der RSI-Indikator eingebunden, um Überkauf und Überverkauf zu vermeiden.

Die durchschnittliche Schwankungsamplitude des ATR-Indikators wird verwendet, um die Volatilität und das Risiko des Marktes zu bestimmen. Wenn der ATR-Wert größer als 1,18 ist, wird er als hohe Volatilität definiert.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie spiegeln sich in drei Aspekten wider:

  1. Der doppelte gleitende Durchschnitt erfasst den Wendepunkt des mittelfristigen und langfristigen Markttrends und nutzt den Trendhandel, um relativ hohe Gewinne zu erzielen.

  2. Kombinieren Sie VWAP, um falsche Signale zu filtern und die Signalzuverlässigkeit zu verbessern.

  3. Einführung des RSI-Indikators, um den Handel gegen den Markt zu vermeiden, was Verluste reduzieren kann.

  4. Die Anwendung des ATR-Volatilitätsindex zur Bestimmung der Marktrisikostandards verhindert hohe Volatilitätsperioden, die Verluste reduzieren können.

  5. Die Kombination verschiedener Indikatoren ist einfach und leicht zu verstehen und umzusetzen und eignet sich für den quantitativen Handel.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Wenn der gleitende Durchschnitt ein Signal erzeugt, kann sich der Preis stark verändert haben, was das Risiko eines Überhandels darstellt.

  2. VWAP kann Fehler aufweisen, was dazu führt, dass korrekte Handelssignale ausgefiltert werden.

  3. Am Ende des Trends kann der RSI lange im Überkauf-/Überverkaufsbereich bleiben und den Wendepunkt der Trendumkehr verfehlen.

  4. Die Lösung besteht darin, den höchsten Preis, den niedrigsten Preis usw. zu kombinieren, um die Marktvolatilität zu bestimmen.

  5. Die Rendite entspricht möglicherweise nicht den Erwartungen und die Parameter müssen entsprechend angepasst werden.

Optimierungsrichtung

In dieser Strategie gibt es noch viel Optimierungsmöglichkeiten:

  1. Testen Sie mehr gleitende Durchschnittskombinationen, um optimale Parameter zu finden.

  2. Fügen Sie mehr Hilfsindikatoren zu den Filtersignalen hinzu, wie MACD, KDJ usw.

  3. Optimieren Sie Stop-Loss- und Take-Profit-Parameter, um Verluste zu reduzieren und Gewinne zu steigern.

  4. Bewertung der Unterschiede in den Handelsstrategien zwischen starken und schwachen Aktien für die Klassifizierungsmodellierung.

  5. Einbeziehung von Algorithmen für maschinelles Lernen wie RNN zur automatischen Optimierung von Parametern und zur Bewertung von Strategien.

  6. Entwickeln Sie automatisierte Handelssysteme und verbinden Sie sich mit Live-Handel für Backtesting.

Zusammenfassung

Insgesamt ist diese Strategie eine relativ einfache Trendverfolgungsstrategie. Der Kern verwendet doppelte gleitende Durchschnitte, um langfristige und kurzfristige Trends zu bestimmen. Kombiniert VWAP und RSI, um Signale zu verarbeiten und ATR anzuwenden, um Risiken zu beurteilen. Die Strategieidee ist einfach und leicht zu verstehen und zu bedienen. Durch einige Optimierungsräume können gute Renditen erzielt werden.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Mehr