
Cette stratégie combine l’indicateur de super-tendance et l’indicateur du canal des marchandises (CCI) pour réaliser un suivi de tendance et la génération de signaux de transaction sur plusieurs périodes. L’idée principale de la stratégie est d’utiliser l’indicateur de CCI pour déterminer la direction de la tendance à court terme, tout en combinant l’indicateur de super-tendance pour déterminer la direction de la tendance à moyen et à long terme.
L’indicateur CCI peut être utilisé pour juger de l’excès de vente et de l’excès de vente. L’indicateur CCI est un signal à plusieurs têtes lorsque l’indicateur CCI traverse l’axe 0 de bas en haut.
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ériodicité de l’indicateur CCI et sa position sur l’axe central.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Cette partie du code détermine si la ligne ci-dessus traverse l’axe 0, si oui, elle met à jour la ligne supérieure de la tendance super, et si elle traverse la ligne inférieure, elle met à jour la ligne inférieure.
L’indicateur de super-tendance permet de déterminer la direction d’une tendance à moyen et long terme en combinant l’indicateur ATR avec le prix. Lorsqu’un prix franchit la super-tendance, il s’agit d’un signal à plusieurs têtes et d’un signal à tête vide.
La formule de calcul de l’indicateur de super-tendance dans cette stratégie est la suivante:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Factor et Pd sont des paramètres réglables.
Les variables de tendance déterminent la direction actuelle de la tendance majeure:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
En intégrant l’indicateur CCI et l’indicateur de super-tendance, cette stratégie permet de déterminer les tendances dans plusieurs périodes. L’indicateur CCI capture les tendances à court terme, l’indicateur de super-tendance les tendances à moyen et à long terme.
Les signaux de transaction sont plus fiables lorsque les deux sont alignés.
isLong = st_trend == 1
isShort = st_trend == -1
Les temps d’entrée sont des périodes de synchronisation à court et moyen terme, et les temps de sortie sont des périodes de rétrogradation à court et moyen terme.
Cette stratégie intègre des indicateurs de jugement de tendance à court et à moyen terme, ce qui rend les signaux de trading plus fiables.
Les paramètres Factor dans l’indicateur de tendance supérieure et la période cc_period de l’indicateur CCI peuvent être ajustés en fonction du marché, ce qui donne plus de flexibilité à la stratégie.
La structure de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre, ce qui convient parfaitement aux débutants en trading quantitatif.
Il peut être utilisé pour des marchés tels que les actions, les devises et les crypto-monnaies, et peut également être ajusté en fonction des paramètres pour différentes variétés.
Lorsque les prix fluctuent fortement, de nombreux faux signaux apparaissent. Les paramètres de facteur de la super tendance peuvent être amplifiés de manière appropriée, ce qui réduit la fréquence de négociation de la stratégie.
Il est possible de considérer que la super tendance ne suffit pas à suivre la force, mais qu’elle peut être combinée avec un indicateur de dynamique pour suivre la tendance pendant la phase d’accélération de la tendance.
Il n’y a pas de stop loss pour cette stratégie, mais il est possible de mettre trails stop loss en combinaison avec la taille de l’indicateur ATR.
Adapter les paramètres de la super tendance et du CCI en fonction des caractéristiques des différents marchés, afin d’améliorer la stabilité de la stratégie.
La combinaison avec des indicateurs de dynamique tels que MACD, KDJ, permet de suivre la tendance pendant la phase d’accélération de la tendance et de générer des rendements plus élevés.
Optimisation des paramètres stratégiques et des règles de négociation à l’aide de l’apprentissage automatique et de l’apprentissage intégré.
Cette stratégie est une combinaison réussie de supertrends et d’indicateurs CCI, permettant de juger les tendances sur plusieurs périodes. La stratégie est simple et facile à comprendre, les paramètres sont réglables et le potentiel de gain est élevé.
/*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 )