Cette stratégie intègre l'indicateur Supertrend et l'indice de canal de marchandises (CCI) pour réaliser un suivi de tendance sur plusieurs délais et générer des signaux de trading.
L'indicateur CCI peut identifier les scénarios de surachat et de survente. Un croisement ascendant de la ligne 0 est un signal haussier tandis qu'un descendant est un signal baissier. Cette stratégie utilise cette caractéristique pour déterminer la direction de la tendance à court terme.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Le code ci-dessus définit la période CCI et la position intermédiaire.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Ce code vérifie si cci traverse au-dessus/en dessous de la ligne 0 pour mettre à jour la bande supérieure/inférieure de Supertrend.
L'indicateur Supertrend combine l'ATR avec le prix pour déterminer les tendances à moyen et long terme.
La supertendance est calculée comme suit:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
où Facteur et Pd sont des paramètres réglables.
La variable tendance détermine la direction actuelle de la Supertendance:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
En intégrant CCI et Supertrend, cette stratégie réalise un jugement de tendance sur plusieurs délais.
Lorsque les directions s'accordent, des signaux commerciaux plus fiables sont générés.
isLong = st_trend == 1
isShort = st_trend == -1
Entrez lorsque les courts et moyens termes s'alignent, sortez lorsque les directions ne sont pas d'accord.
Il intègre des indicateurs à court et à moyen terme pour des signaux plus fiables.
Le facteur de supertrend et la période CCI peuvent être ajustés en fonction des conditions du marché.
Une logique simple et facile à comprendre, parfaite pour les débutants.
Applicable aux actions, aux devises, aux cryptos par réglage de paramètres.
Beaucoup de faux signaux peuvent se produire lorsque les prix fluctuent violemment.
Combinez les indicateurs de dynamique pour suivre les tendances en accélération.
L'exposition au risque est calculée sur la base de l'exposition au risque.
Ajustez les paramètres pour différents marchés.
Combinez avec le MACD, KDJ, etc. pour capter les mouvements d'élan forts.
Utiliser l'IA et les méthodes d'ensemble pour optimiser les paramètres et les règles.
Cette stratégie combine avec succès Supertrend et CCI pour le suivi des tendances sur plusieurs délais. Logique simple, bon potentiel de récompense et personnalisabilité. Peut être améliorée par le biais de l'ajustement des paramètres, du stop loss et de l'apprentissage automatique pour devenir un système de trading solide.
/*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 )