Cette stratégie est basée sur le CCI pour effectuer des opérations de revers. Elle se produit lorsque le CCI se situe dans une zone de survente. Dans l’ensemble, la stratégie exploite les caractéristiques de survente et de survente du CCI pour saisir les occasions de revers.
Tout d’abord, la stratégie est basée sur l’indicateur CCI dont la formule de calcul est la suivante:
CCI = (Prix typique - Moyenne mobile simple) / (0,015 * Différence moyenne)
Parmi eux, Prix typique = (le prix le plus élevé + le prix le plus bas + le prix de clôture) / 3 Moyenne mobile simple = Moyenne mobile du prix typique des N derniers jours Différence moyenne = moyenne du carré de la somme des écarts de prix typiques des derniers N jours
La stratégie utilise un indice CCI de longueur de 11 et définit 150 comme zone de survente et 150 comme zone de survente.
Lors de la fermeture de chaque câble K, un indicateur CCI de longueur 11 est testé. Si le CCI est inférieur à 150, un signal plus est émis; Si le CCI est supérieur à 150, un signal vide est émis.
Après avoir reçu le signal, ouvrez la position au prix du marché et définissez un stop-loss de 1% et un stop-loss de 0,5%.
La stratégie d’inversion du CCI à 4 heures est une stratégie simple qui utilise l’indicateur CCI pour effectuer des transactions inversées. Elle présente les avantages d’une logique stratégique claire et facile à mettre en œuvre.
/*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)