Il s'agit d'une stratégie de négociation inverse basée sur l'indicateur CCI. Elle ouvrira des transactions inversées lorsque l'indicateur CCI montre des niveaux de surachat ou de survente.
Premièrement, cette stratégie est basée sur l'indicateur CCI, dont la formule est:
Les taux d'intérêt de l'indicateur de change sont les taux d'intérêt de l'indicateur de change de l'indicateur de change.
Où?
Prix typique = (plus haut + plus bas + plus bas) / 3
Moyenne mobile simple = Moyenne mobile du prix typique au cours des N derniers jours
Déviation type = racine carrée de la variance du prix typique au cours des N derniers jours
Cette stratégie utilise un indicateur CCI à 11 périodes et -150 est défini comme le niveau de survente et 150 comme le niveau de surachat.
À chaque fermeture de barre, l'indicateur CCI à 11 périodes sera vérifié. Si le CCI dépasse -150, un signal long est généré. Si le CCI dépasse 150, un signal court est généré.
Après réception du signal, l'ordre de marché sera utilisé pour ouvrir la position.
La stratégie d'inversion CCI de 4 heures est une stratégie simple utilisant l'indicateur CCI pour le trading d'inversion. Elle présente l'avantage d'une logique claire et d'une mise en œuvre facile. Mais elle présente également des faiblesses telles que des signaux CCI peu fiables et un objectif de profit / stop loss inflexible. Des améliorations supplémentaires peuvent être apportées en optimisant les paramètres CCI, en ajoutant des indicateurs de filtre, en développant des sorties dynamiques, etc. Dans l'ensemble, cette stratégie fournit une idée basée sur CCI pour le trading quantitatif, mais nécessite une optimisation supplémentaire avant l'application en direct.
/*backtest start: 2023-09-12 00:00:00 end: 2023-10-12 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("4H CCI Strategy", overlay=true) length = input( 11 ) overSold = input( -150 ) overBought = input( +150 ) price1 = high price2 = low ucci = cci(price1, length) dcci = cci(price2, length) vcci = cci(ohlc4, 11) resCustom = input(title="Timeframe", defval="15") Length = input(16, minval=1) xPrice = request.security(syminfo.tickerid, resCustom, hlc3) xvnoise = abs(xPrice - xPrice[1]) nfastend = 0.666 nslowend = 0.0645 nsignal = abs(xPrice - xPrice[Length]) nnoise = sum(xvnoise, Length) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1])) basis1 = nAMA slope = change(basis1,1) if (not na(vcci)) if (crossover(dcci, overSold)) strategy.entry("CCILE", strategy.long, comment="CCILE") strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005) if (crossunder(ucci, overBought)) strategy.entry("CCISE", strategy.short, comment="CCISE") strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)