Esta estrategia es una estrategia de inversión basada en el indicador CCI. Se realiza una inversión cuando el indicador CCI aparece en una zona de sobreventa y sobreventa. En general, la estrategia utiliza las características de sobreventa y sobreventa del indicador CCI para capturar oportunidades de inversión de precios.
En primer lugar, la estrategia se basa en el índice CCI, cuya fórmula de cálculo es:
CCI = (Precio Típico - Promedio Móvil Simples) / (0.015 * Diferencia de las medias)
En el mismo, Precio típico = (precio máximo + precio mínimo + precio de cierre) / 3 Promedio móvil simple = promedio móvil del precio típico de los últimos N días Divergencia promedio = promedio del cuadrado de la suma de las diferencias de precios típicos de los últimos N días
La estrategia utiliza el indicador CCI de 11 pulgadas de longitud y establece 150 como zona de sobreventa y 150 como zona de sobrecompra.
Cuando cada línea K se cierra, se detecta el indicador CCI de longitud 11. Si el CCI pasa por debajo de 150, se emite una señal de más; Si el CCI pasa por encima de 150, se emite una señal de vacío.
Una vez que se recibe la señal, se abre la posición solo al precio de mercado y se establece un stop loss del 1% y un stop loss del 0.5%.
La estrategia de reversión de 4 horas CCI en general es una estrategia simple para el comercio de reversión utilizando el indicador CCI. Tiene la lógica de la estrategia clara y fácil de implementar. Pero también hay la inestabilidad de la señal CCI, el stop loss no es lo suficientemente flexible y otras desventajas.
/*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)