CCI Moving Average Crossover-Strategie mit Bollinger Bands RSI-Indikator


Erstellungsdatum: 2023-12-20 16:24:49 zuletzt geändert: 2023-12-20 16:24:49
Kopie: 0 Klicks: 1107
1
konzentrieren Sie sich auf
1621
Anhänger

CCI Moving Average Crossover-Strategie mit Bollinger Bands RSI-Indikator

Überblick

Diese Strategie kombiniert die Verwendung von drei Indikatoren, den Brin-Band, den Relativ Strong Index (RSI) und den Commodity Path Index (CCI), um ihre Kreuzungen zu suchen und Kauf- und Verkaufssignale auszusenden. Die Strategie zielt darauf ab, überkaufende und überverkaufte Markte zu entdecken und an den Wendepunkten einzutreten, um eine bessere Rendite zu erzielen.

Strategieprinzip

Brin-Band

Der Brin-Band besteht aus einer mittleren, einer oberen und einer unteren Bahn. Die mittlere Bahn verwendet normalerweise einen 20-Tage-Moving Average. Die oberen und unteren Bahnen sind jeweils zwei Standardabweichungen über und unter der mittleren Bahn.

RSI-Indikatoren

Der RSI-Indikator spiegelt die Geschwindigkeit der An- und Abwärtsentwicklung der Schließungspreise über einen Zeitraum hinweg wider und dient zur Messung des Kräfteverhältnisses zwischen Kauf und Verkauf. Der RSI-Wert ist bei 0 bis 30 als Überverkaufszone und bei 70 bis 100 als Überkaufszone bezeichnet. Wenn der RSI aus der Überkaufszone fällt, kann dies als Verkaufssignal verwendet werden, und wenn der RSI aus der Überkaufszone steigt, kann dies als Kaufsignal verwendet werden.

CCI-Indikatoren

Der CCI-Wert wird verwendet, um zu messen, inwieweit die Aktienpreise von ihrem Durchschnittspreis abweichen. +100 bedeutet, dass der Preis weit über dem Durchschnittspreis liegt, was ein Überkauf ist. -100 bedeutet, dass der Preis weit unter dem Durchschnittspreis liegt, was ein Überverkauf ist.

Strategische Kreuzung

Diese Strategie verwendet die Bollinger Bands, um zu beurteilen, ob der Preis kurzfristig überkauft oder überverkauft ist. Der RSI beurteilt die Ausgewogenheit der Kauf- und Verkaufskräfte und der CCI beurteilt die Abweichung der Preise. Der Bollinger Band, der RSI und der CCI geben gleichzeitig ein Kauf- / Verkaufssignal und geben einen Handelsbefehl aus.

Strategische Vorteile

  1. Kombination von mehreren Indikatoren zur Verringerung von Falschsignalen und zur Verbesserung der Signalgenauigkeit
  2. Es ist wichtig, dass die Marktentwicklung in den kommenden Jahren nicht zu einem Rückschritt führt.
  3. Die Parameter lassen sich an unterschiedliche Marktbedingungen anpassen
  4. Einheitliche CCI-Filter, geräuschreduziert und stabiler

Risiken und Lösungen

  1. Die Brinband-, RSI- und CCI-Indikatoren können falsche Signale erzeugen, was zu einem Handelsverlust führt. Die Parameter können entsprechend gelockert oder andere Indikatoren hinzugefügt werden, um sie zu überprüfen.
  2. Der CCI-Indikator ist für kurvige Verhaltensweisen weniger geeignet und kann durch Durchschnittslinie- oder Schwankungsrateindikatoren ersetzt werden.
  3. Die Handelsanweisung beinhaltet nur einen Stop-Loss, keine Stop-Losses. Es kann ein Moving Stop-Loss hinzugefügt werden, um einen Teil der Gewinne zu sperren.

Optimierungsrichtung

  1. Es ist wichtig, mehr Parameterkombinationen zu testen, um die besten Parameter zu finden.
  2. Das ist eine neue Art von “Machine-Learning-Algorithmus”, der die Parameter in Echtzeit optimiert.
  3. Das Unternehmen hat eine Strategie entwickelt, um die Verluste zu reduzieren.
  4. In Kombination mit anderen Indikatoren wie MACD, KD und anderen wird die Signalsicherheit beurteilt.

Zusammenfassen

Diese Strategie berücksichtigt die kurz-, mittelfristigen und langfristigen Marktbedingungen und beurteilt die Zeit der Marktausweichung anhand der Kreuzung der drei Indikatoren Brin-Band, RSI und CCI. Sie gehört zu den robusteren Strategien zur Rückwärtsverfolgung. Sie kann durch Parameteranpassung, Stop-Off-Methoden und andere Optimierungen weiter optimiert werden und ist für verschiedene Marktumgebungen geeignet.

Strategiequellcode
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

//RSI
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

//cci
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, "CCI", color=#2962FF)
band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(0, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(cci, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)


longCBB= close < lower
shortCBB = close>upper
longBRSI = rsi < 33
shortBRSI = rsi > 70
longcci = cci < -215
shortcci = cci > 250

strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci)
strategy.exit("Exit ", profit = 600)
strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci)
strategy.exit("Exit ", profit = 600)