Strategie für den Ausbruch von doppelten gleitenden Durchschnittsschwingungen

Schriftsteller:ChaoZhang, Datum: 08.01.2024
Tags:

img

Übersicht

Die Dual Moving Average Oscillation Breakout-Strategie ist eine kurzfristige Handelsstrategie, die ein Dual Moving Average-System nutzt. Die Strategie erzeugt Handelssignale basierend auf Preiskanälen und doppelten Bollinger Bands, unterstützt durch schnelle RSI-Indikatoren, um Überkauf- und Überverkaufszustände zu bestimmen. Sie zielt darauf ab, Breakouts in mittelfristigen Preistrends für Gewinn zu erfassen.

Strategie Logik

Die Strategie des Dual Moving Average Oscillation Breakout verwendet 20-Perioden-Preiskanale und Bollinger Bands als Haupthandelsindikatoren. Der Preiskanal besteht aus gleitenden Durchschnitten der höchsten und niedrigsten Preise, die die aktuelle Preisschwankungspalette darstellen. Bollinger Bands werden durch die Mittellinie des Preiskanals und Standarddeviationen gebildet, die intuitiv die Preisschwankungspalette beschreiben. Wenn sich die Preise den oberen und unteren Schienen des Kanals nähern, zeigt dies an, dass die Preise durch die Oszillationspalette durchbrechen und einen neuen Trend bilden können. An diesem Punkt kann in Kombination mit dem schnellen RSI-Indikator, um überkaufte oder überverkaufte Bedingungen zu beurteilen, die Trendrichtung bestimmt und Handelsentscheidungen getroffen werden.

Insbesondere gilt, wenn der schnelle RSI unter 5 liegt, als Überverkaufszone, und wenn der schnelle RSI 99 übersteigt, als Überkaufszone. Darüber hinaus sollten Faktoren wie die Richtung von K-Line-Einheiten und neue Höchststände (Tiefstände) in den Preisen ebenfalls berücksichtigt werden, um falsche Ausbrüche zu vermeiden. Wenn die oben genannten Bedingungen erfüllt sind, werden Kauf- und Verkaufssignale generiert.

Vorteile

Der größte Vorteil der Dual Moving Average Oscillation Breakout-Strategie ist, dass sie die Wendepunkte mittelfristiger Preistrends für den Gewinn erfasst. Im Vergleich zu einzelnen gleitenden Durchschnitten und Kanälen spiegeln doppelte Bollinger Bands Preisschwankungen und Volumina intuitiver wider. Und im Vergleich zu längeren Zyklusindikatoren wie 20-Tage- und 60-Tage-gleitenden Durchschnitten reagiert sie schneller auf Preisänderungen und hat eine höhere Erfolgsrate bei der Erfassung von Wendungen. Darüber hinaus kann die Kombination des schnellen RSI-Indikators falsche Breakouts effektiv filtern. Daher kann diese Strategie die Gewinnwahrscheinlichkeit maximieren.

Risiken

Die Strategie des Dual Moving Average Oscillation Breakouts birgt einige Risiken. Erstens hat der mittelfristige Handel selbst höhere Stop-Loss-Risiken. In einem starken Trend können mehrmals falsche Breakouts auf mittelfristigen Indikatoren auftreten, was zu Stops führt. Zweitens wird die Wirksamkeit von schnellen RSI-Indikatoren bei der Beurteilung von überkauften und überverkauften Zonen von der Marktstimmung beeinflusst. Wenn auf dem Markt strukturelle Veränderungen auftreten, sinkt der Nutzen solcher Hilfsindikatoren. Schließlich kann die Einbeziehung anderer Faktoren wie Schlusskurs, Volumen und Umsatz die Entscheidungsgenauigkeit verbessern.

Die Gegenmaßnahme besteht darin, den Stop-Loss-Bereich angemessen anzupassen, den Stop-Loss-Punkt bei einem Aufwärtstrend zu lockern und bei einem Abwärtstrend zu verschärfen. Darüber hinaus sollten Sie mehr Hilfsindikatoren berücksichtigen, um nicht nur auf einen oder zwei Indikatoren zu vertrauen. Wenn der Urteileffekt abnimmt, reduzieren Sie die Position angemessen, um Risiken zu vermeiden.

Optimierungsrichtlinien

Es gibt noch Raum für eine weitere Optimierung der Dual Moving Average Oscillation Breakout-Strategie. Erstens, Parameteroptimierung. Mehr Zyklusparameter können getestet werden, um die optimale Parameterkombination zu finden. Zweitens, Modelloptimierung. Einführung von maschinellen Lernmodellen, um überkaufte und überverkaufte Bereiche genauer zu beurteilen. Drittens, Zeitrahmenoptimierung. Test unter verschiedenen Zeitrahmen wie täglich und 60 Minuten separat, um das beste Anwendungsszenario zu bestimmen. Viertens, Konditionsoptimierung. Fügen Sie mehr Volumen- und Preisindikatoren zu Filtersignalen hinzu, wie zum Beispiel Volumen-Expansions- und Indextrend-DMI.

Schlussfolgerung

Die Dual Moving Average Oscillation Breakout Strategie erfasst mittelfristige Preisbreakouts, indem sie ein doppeltes Bollinger-Band-System konstruiert, das eine effektive Trendverfolgungsstrategie ist. Die Strategie hat eine hohe Erfolgsquote und eine schnelle Reaktion und kann effektiv profitieren. Durch Parameteroptimierung, Modelloptimierung, Zeitrahmenwahl und andere Mittel kann die Strategieleistung weiter verbessert werden. Diese Strategie eignet sich für erfahrene quantitative Trader, um quantitative Verbesserungen und Anwendungen durchzuführen.


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.4", shorttitle = "NoroBands str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
usemm = input(true, "Use min/max")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0

//Locomotive
uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0
plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0)

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Mehr