Die Ressourcen sind geladen. Beförderung...

Die in Artikel 4 Absatz 1 Buchstabe a der Verordnung (EU) Nr. 575/2013 festgelegten Risikopositionen sind zu berücksichtigen.

Schriftsteller:ChaoZhang, Datum: 2024-05-24 17:45:49
Tags:CCI- Nein.

img

Übersicht

Die CCI + MA Crossover Pullback Buy Strategie ist eine quantitative Handelsstrategie, die den Commodity Channel Index (CCI) und doppelte gleitende Durchschnitts-Crossover-Signale kombiniert. Die Strategie kauft, wenn der Preis zum schnellen gleitenden Durchschnitt zurückzieht und der CCI nach einem bullischen Crossover Überverkaufszustände anzeigt. Sie verkauft, wenn der Preis nach dem schnellen gleitenden Durchschnitt und der CCI nach einem bärischen Crossover überkauft wird. Durch die Kombination von CCI und doppelten gleitenden Durchschnitts-Crossover-Signalen kann diese Strategie Trending-Möglichkeiten besser erfassen und gleichzeitig bessere Ein- und Ausstiegspunkte durch Pullback-Käufe und Rally-Verkäufe erreichen, wodurch das Risiko-Rendite-Verhältnis verbessert wird.

Strategie Logik

  1. Der CCI-Indikator wird auf der Grundlage von vom Nutzer definierten CCI-Parametern (Quelle, Zeitraum, gleitender Durchschnittstyp, Überkauf-/Überverkaufsschwellenwerte) berechnet.
  2. Bestimmung der CCI-Überkauf-/Überverkaufsbedingungen. Setzen Sie die Hintergrundfarbe auf Rot, wenn CCI über der überkauften Schwelle liegt, und auf Grün, wenn sie unter der überverkauften Schwelle liegt.
  3. Berechnen der schnellen und langsamen gleitenden Durchschnittswerte anhand von benutzerdefinierten Parametern (Quelle, Periode, gleitender Durchschnittsart).
  4. Identifizieren Sie bullische und bärische Kreuzungen. Zeichnen Sie ein bullisches Signal auf, wenn der schnelle MA über den langsamen MA überschreitet, und ein bärisches Signal, wenn der schnelle MA unter den langsamen MA überschreitet.
  5. Entscheidungen im Handel treffen:
    • Long-Entry: Wenn der schnelle MA über dem langsamen MA liegt, die vorherige Kerze unter dem schnellen MA schließt, die aktuelle Kerze bullisch ist und der CCI unter der Überverkaufsschwelle liegt, kaufen, um eine Longposition zu eröffnen.
    • Kurzer Einstieg: Wenn der schnelle MA unter dem langsamen MA liegt, die vorherige Kerze über dem schnellen MA schließt, die aktuelle Kerze bärisch ist und der CCI über der überkauften Schwelle liegt, wird eine Leerposition eröffnet.

Strategische Vorteile

  1. Trendverfolgung: Die doppelten Kreuzungssignale für gleitende Durchschnitte helfen, die Trendrichtung zu erkennen und sich besser an die Markttrends anzupassen.
  2. Gegentrend-Eintritt: Warten auf Preisrückgänge, um zu kaufen, oder auf Preiserhöhungen, um zu verkaufen, nachdem sich der Trend bestätigt hat, kann zu besseren Einstiegspreisen und einer besseren Risikovergütung führen.
  3. Verringerte falsche Signale: Durch die Kombination von CCI und gleitenden Durchschnitts-Crossover-Signalen können die durch einen einzelnen Indikator erzeugten falschen Signale wirksam reduziert werden.
  4. Flexible Parameter: Benutzer können CCI- und gleitende Durchschnittsparameter flexibel nach ihren Vorlieben festlegen, um die Strategieleistung zu optimieren.

Strategische Risiken

  1. Unbeständiges Marktrisiko: In einem unbeständigen Markt können häufige bullische und bärische Kreuzungen zu mehr Verlusten führen.
  2. Parameterrisiko: Eine unangemessene Einstellung von Parametern kann zu einer schlechten Strategieleistung führen.
  3. Trendrisiko: Wenn sich die Marktentwicklung umkehrt, kann die Strategie den Ausgang verzögern und größere Rückgänge verursachen.

Strategieoptimierungsrichtlinien

  1. Einführung der Positionsgröße, um die Positionsgröße jedes Handels dynamisch anhand der aktuellen Trendstärke und Volatilität anzupassen, um die Risiken besser zu kontrollieren.
  2. Optimierung der Einstiegsbedingungen durch Einbeziehung von Lautstärkenindikatoren oder anderen Hilfsbestätigungsindikatoren zur Verbesserung der Zuverlässigkeit der Einstiegssignale.
  3. Optimieren Sie die Ausstiegsbedingungen, indem Sie Trailing-Stops oder Zeitstopps festlegen, um den maximalen Verlust pro Handel zu reduzieren.
  4. Parameteroptimierung für verschiedene Märkte und Instrumente separat durchführen, um die Anpassungsfähigkeit und Robustheit der Strategie zu verbessern.

Zusammenfassung

Die CCI + MA Crossover Pullback Buy Strategie ist eine quantitative Handelsstrategie, die die Vorteile des Trendfolgens und des Gegentrend-Eintritts kombiniert. Durch die Erfassung der Trendrichtung mit doppelten gleitenden Durchschnitten und die Identifizierung von Überkauf-/Überverkauftzonen mit dem CCI-Indikator, während auf Preisrückgänge und Rallyes gewartet wird, um bessere Einstiegspreise zu erzielen, kann die Strategie die Rentabilität und das Risiko-Rendite-Verhältnis möglicherweise bis zu einem gewissen Grad verbessern. Die Strategie ist jedoch auch mit Risiken wie Parameteroptimierung, unruhigen Märkten und plötzlichen Trendänderungen konfrontiert. Weitere Optimierungen und Verbesserungen sind erforderlich, um die Robustheit und Rentabilität der Strategie zu verbessern. Die Strategie ist klar, die Codestruktur ist vollständig und sie eignet sich für den gesamten Live-Handel.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)


ma(source, length, type) =>
  type == "SMA" ? ta.sma(source[1], length) :
  type == "EMA" ? ta.ema(source[1], length) :
  type == "SMMA (RMA)" ? ta.rma(source[1], length) :
  type == "WMA" ? ta.wma(source[1], length) :
  type == "VWMA" ? ta.vwma(source[1], length) :
  na

//CCI settings
cci_coloring  = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length    = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type   = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce    = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))

bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")

//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")

fastma_type   = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color  = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")

slowma_type   = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color  = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")

bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)

// // strategy
// if bullish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)

// else if bearish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
    strategy.entry("Long", strategy.long)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
    //     label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)

if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
    strategy.entry("Short", strategy.short)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
    //     label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)

Verwandt

Mehr