Diese Strategie integriert den Supertrend-Indikator und den Commodity Channel Index (CCI), um eine mehrjährige Trendverfolgung und Handelssignalgenerierung zu realisieren.
Der CCI-Indikator kann überkaufte und überverkaufte Szenarien identifizieren. Ein Aufwärts-Crossover der Nulllinie ist ein bullisches Signal, während ein Abwärtssignal ein bärisches Signal ist. Diese Strategie nutzt diese Funktion, um die kurzfristige Trendrichtung zu bestimmen.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Der oben genannte Code definiert die CCI-Periode und die mittlere Position.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Dieser Code überprüft, ob cci über/unter die 0-Linie geht, um das obere/untere Band des Supertrends zu aktualisieren.
Der Supertrend-Indikator kombiniert ATR mit dem Preis, um mittelfristige bis langfristige Trends zu bestimmen.
Der Supertrend wird berechnet:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Hierbei sind Faktor und Pd einstellbare Parameter.
Die Trendvariable bestimmt die aktuelle Supertrend-Richtung:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Durch die Integration von CCI und Supertrend realisiert diese Strategie eine Trendbeurteilung für mehrere Zeitrahmen.
Wenn die Richtungen übereinstimmen, werden zuverlässigere Handelssignale erzeugt.
isLong = st_trend == 1
isShort = st_trend == -1
Eintritte, wenn kurz- und mittelfristige Linie, Ausstiege, wenn Richtungen nicht übereinstimmen.
Integration von kurz- und mittelfristigen Indikatoren für zuverlässigere Signale.
Der Supertrend-Faktor und die CCI-Periode können an die Marktbedingungen angepasst werden.
Einfache Logik und leicht verständlich, ideal für Anfänger.
Anwendbar für Aktien, Devisen, Krypto durch Parameter-Tuning.
Bei starken Kursschwankungen können viele falsche Signale auftreten.
Der Supertrend ist etwas zurückgeblieben.
Zusätzliche Stop-Loss auf Basis von ATR zur Risikokontrolle.
Anpassung der Parameter für verschiedene Märkte.
Kombination mit MACD, KDJ usw., um starke Momentumbewegungen zu erfassen.
Verwenden Sie KI und Ensemble-Methoden zur Optimierung von Parametern und Regeln.
Diese Strategie kombiniert erfolgreich Supertrend und CCI für die Multi-Timeframe-Trendverfolgung. Einfache Logik, gutes Belohnungspotenzial und Anpassbarkeit. Kann durch Parameter-Tuning, Stop-Loss und maschinelles Lernen weiter verbessert werden, um ein solides Handelssystem zu werden.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author=Daveatt StrategyName = "Best Supertrend CCI Strategy" ShortStrategyName = "Best Supertrend CCI Strategy" strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true ) ////////////////////////// //* COLOR CONSTANTS *// ////////////////////////// AQUA = #00FFFFFF BLUE = #0000FFFF RED = #FF0000FF LIME = #00FF00FF GRAY = #808080FF DARKRED = #8B0000FF DARKGREEN = #006400FF GOLD = #FFD700 WHITE = color.white // Plots GREEN_LIGHT = color.new(color.green, 40) RED_LIGHT = color.new(color.red, 40) BLUE_LIGHT = color.new(color.aqua, 40) PURPLE_LIGHT = color.new(color.purple, 40) source = input(close) /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////// CCI ///////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// cci_period = input(28, "CCI Period") cci = cci(source, cci_period) //UL = input(80, "Upper level") //LL = input(20, "Lower Level") ML = input(0, "CCI Mid Line pivot") /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// ///////////////////////////// SUPERTREND ///////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float) Pd=input(3, title="[ST] PD", minval=1,maxval = 100) /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////// SUPERTREND DETECTION ////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// f_supertrend(Factor, Pd) => Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) TrendUp = 0.0 TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up TrendDown = 0.0 TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn Trend = 0.0 Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown [Trend, Tsl] [st_trend, st_tsl] = f_supertrend(Factor, Pd) // Plot the ST linecolor = close >= st_tsl ? color.green : color.red plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0) isLong = st_trend == 1 isShort = st_trend == -1 longClose = isLong[1] and isShort shortClose = isShort[1] and isLong strategy.entry("Long", 1, when=isLong) strategy.close("Long", when=longClose ) strategy.entry("Short", 0, when=isShort) strategy.close("Short", when=shortClose )