Handelsstrategie zur Umkehrung des Rohstoffkanalindex

Schriftsteller:ChaoZhang, Datum: 2024-01-29 16:18:35
Tags:

img

Übersicht

Diese Strategie identifiziert die zyklischen und saisonalen Merkmale des Marktes anhand des Commodity Channel Index (CCI), um den Beginn und das Ende der Zyklen zu erkennen.

Strategie Logik

Der Commodity Channel Index (CCI) zeigt, wie das Instrument im Verhältnis zu seinem Durchschnittspreis gehandelt wird. Wenn der CCI-Wert hoch ist, bedeutet dies, dass die Preise höher sind als der Durchschnittspreis. Wenn der CCI-Wert niedrig ist, bedeutet dies, dass die Preise niedriger sind als der Durchschnittspreis. Der CCI-Wert fällt normalerweise nicht außerhalb des Bereichs von -300 bis 300.

Diese Strategie verwendet den CCI-Indikator mit Länge 10 und seine einfachen gleitenden Durchschnitte mit Länge 10 und 20. Es geht lang, wenn der langsame gleitende Durchschnitt unter dem schnellen liegt, und geht kurz, wenn der langsame gleitende Durchschnitt über dem schnellen liegt.

Analyse der Vorteile

  • Der CCI-Indikator kann zyklische Merkmale und Wendepunkte effektiv identifizieren
  • Filterung durch zwei gleitende Durchschnitte zur Verringerung falscher Signale
  • Ermöglicht die Auswahl einer langen oder kurzen Richtung für verschiedene Marktumgebungen
  • Kontrollierbare Risiken mit klaren Stop-Loss-Niveaus

Risikoanalyse

  • CCI funktioniert möglicherweise nicht gut für Aktien mit hohen Kursschwankungen
  • Die gleitenden Durchschnittswerte verfallen und können wichtige Punkte verpassen.
  • Keine Berücksichtigung der Fundamentaldaten, keine Beurteilung, ob der Preis unterbewertet oder überbewertet ist
  • Der Stop-Loss kann in größeren Zeitrahmen gebrochen werden.

Die Optimierung kann durch Anpassung von CCI-Parametern oder gleitenden Durchschnittsperioden oder durch Hinzufügen anderer technischer Indikatoren zur Beurteilung der Fundamentaldaten erfolgen.

Optimierungsrichtlinien

  • Optimierung der CCI-Parameter für verschiedene Zyklen und Volatilität
  • Optimierung der gleitenden Durchschnittszeiten zur Balancierung von Verzögerung und Lärm
  • Hinzufügen von Indikatoren wie Volumen, um den wahren Ausbruch zu beurteilen
  • Bestimmung der allgemeinen Entwicklung in längeren Zeitrahmen

Zusammenfassung

Diese Strategie identifiziert kurzfristige Trends, indem CCI und doppelte gleitende Durchschnitte verwendet werden, um zyklische Merkmale zu beurteilen. Ihre Vorteile sind einfache und klare Regeln, flexible Parameteranpassung und kontrollierbare Risiken.


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

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/11/2016
// The Commodity Channel Index (CCI) is best used with markets that display cyclical or 
// seasonal characteristics, and is formulated to detect the beginning and ending of these 
// cycles by incorporating a moving average together with a divisor that reflects both possible 
// and actual trading ranges. The final index measures the deviation from normal, which indicates 
// major changes in market trend.
// To put it simply, the Commodity Channel Index (CCI) value shows how the instrument is trading 
// relative to its mean (average) price. When the CCI value is high, it means that the prices are 
// high compared to the average price; when the CCI value is down, it means that the prices are low 
// compared to the average price. The CCI value usually does not fall outside the -300 to 300 range 
// and, in fact, is usually in the -100 to 100 range.
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="CCI Strategy Reversed Backtest", shorttitle="CCI Strategy")
FastMA = input(10, minval=1)
SlowMA = input(20, minval=1)
reverse = input(true, title="Trade reverse")
hline(0, color=purple)
xCCI = cci(close, 10)
xSMA = sma(xCCI,SlowMA)
xFMA = sma(xCCI,FastMA)
pos = iff(xSMA < xFMA , 1,
	   iff(xSMA > xFMA, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
         iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(pos == -1 ? red: pos == 1 ? green : blue)
plot(xSMA, color=red, title="CCI MA Slow")
plot(xFMA, color=blue, title="CCI MA FAST")


Mehr