Tendencia del doble marco de tiempo de la CCI siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-11-24 10:53:07
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de seguimiento de tendencias basada en el indicador CCI. Genera señales de negociación mediante el monitoreo del cruce entre dos CCIs de diferentes plazos de tiempo. Específicamente, detectará si un CCI de período más corto rompe con un CCI de período más largo y determinará posiciones largas o cortas en función de la dirección de la ruptura.

Estrategia lógica

La lógica central de esta estrategia es la siguiente:

  1. Definir dos CCI, ci1 como 14 períodos, ci2 como 56 períodos
  2. Cuando ci1 rompe por encima de ci2, ir largo
  3. Cuando ci1 se rompe por debajo de ci2, corto
  4. Utilizar los valores de ci1 y ci2 para determinar las salidas después de que se activen las señales

Reglas largas específicas:

  1. ci1 se rompe por encima de ci2, el CCI de período más corto por encima del CCI de período más largo
  2. Condición de suspensión de pérdidas: ci1 <-50 y velocidad de cambio < 0 o ci1 se rompe por debajo de -100

Reglas breves específicas:

  1. ci1 se rompe por debajo de ci2, el CCI de período más corto por debajo del CCI de período más largo
  2. Condición de suspensión de pérdidas: ci1 > 100 y tasa de cambio > 0 o ci2 se rompe por encima de 100

Como se puede ver, esta estrategia aprovecha la sensibilidad de los CCI de menor duración y la estabilidad de los CCI de mayor duración para identificar y seguir las tendencias.

Ventajas

Las ventajas de esta estrategia:

  1. Identificar eficazmente las tendencias utilizando la fuerza del indicador CCI
  2. El diseño de dos CCI filtra algunos intercambios de ruido
  3. La combinación de los CCI de largo y corto plazo controla el riesgo siguiendo las tendencias
  4. Normas estratégicas simples y claras, fáciles de entender y aplicar
  5. El valor de las pérdidas se calcula en función de las pérdidas que se hayan producido durante el período de referencia.

Los riesgos

También hay algunos riesgos:

  1. La capacidad de identificar mercados de rango limitado y volátiles utilizando el CCI es débil.
  2. Puede producirse una divergencia entre los CCI de largo y corto plazo, causando señales erróneas
  3. La configuración incorrecta de stop loss puede llevar a pérdidas enormes.
  4. El ajuste inadecuado de los parámetros también afecta en gran medida a la rentabilidad de la estrategia

Soluciones:

  1. Incorporar otros indicadores para determinar la condición del mercado, evitar la negociación en períodos volátiles
  2. Añadir filtros para evitar errores de la divergencia CCI
  3. Optimizar y probar diferentes niveles de stop loss
  4. Encontrar conjuntos de parámetros adecuados a través de backtesting y ajuste

Direcciones de optimización

Áreas en las que la estrategia puede optimizarse aún más:

  1. Añadir más indicadores para construir un sistema de negociación más sistemático
  2. Diferencia de rentabilidad de prueba entre días laborables y sesiones
  3. Buscar mejores parámetros utilizando el aprendizaje automático
  4. Parámetros de sintonización para diferentes productos
  5. Optimizar las reglas de entrada y salida

Conclusión

En conclusión, esta es una estrategia simple de seguimiento de tendencias basada en el cruce CCI. Puede identificar efectivamente la dirección de la tendencia y seguir las tendencias. Mientras tanto, controla el riesgo a través de la parada de pérdida. Esta estrategia es simple, práctica, flexible en el ajuste de parámetros, y puede servir como una estrategia de cantidad de inicio. Se puede mejorar en un sistema más potente a través de una mayor optimización y combinación.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="my work",calc_on_order_fills=true,currency=currency.USD, default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent)


source = close
shortlength=input(14)
longlength=input(56)
aa=input(2)
Ss=input(75)

//Cci part
ci1=cci(source,shortlength)   //4시간봉의 기본 cci
ci2=cci(source,longlength)   //4시간봉에서 12시봉의 cci 무빙측정

//오린간 선생님의 WT + ichimoku
len = input(10)
lenTurn = input(9)
lenStd = input(26)

wtm_e(so, l) =>
    esa = ema(so, l)
    d = ema(abs(so - esa), l)
    ci = (so - esa) / (0.015 * d)
    ema(ci, l*2+1)

alh(len) => avg(lowest(len), highest(len))
alh_src(src, len) => avg(lowest(src, len), highest(src, len))

wt = wtm_e(close,len)
turn = alh_src(wt, lenTurn)
std = alh_src(wt, lenStd)

cnt = 0
if wt > turn
    cnt:=cnt+1
if wt > std
    cnt:=cnt+1


//100,-100선
h0 = hline(100)
h1 = hline(-100)

//plot(ci,color=green)
// plot(k,color=green)
// plot(d,color=red)
plot(ci1,color=green)
plot(ci2,color=red)

plot(0,color=black)
plot(100,color=black)
plot(-100,color=black)

fill(h0,h1,color=purple,transp=95)

bgcolor(cnt==0 ? red : cnt==1 ? blue : cnt == 2 ? green : na, transp = Ss)

//기간조정

Fromday = input(defval=1, title="from day", minval=1, maxval=31)
FromMonth = input(defval=1, title="from month", minval=1, maxval=12)
FromYr = input(defval=2019, title="from yr", minval=1970)

Today = input(defval=13, title="to day", minval=1, maxval=31)
ToMonth = input(defval=12, title="to month", minval=1, maxval=12)
ToYr = input(defval=2019, title="to yr", minval=1970)

startDate = timestamp(FromYr, FromMonth, Fromday, 00, 00)
finishDate = timestamp(ToYr, ToMonth, Today, 00, 00)
Time_cond = true


/////롱

if  crossover(ci1,ci2) and change(ci2)>0 and Time_cond
    strategy.entry("go", strategy.long, comment="go")
    
strategy.close("go", (ci2<0 and ci1 <-50 and change(ci1)<0) or (crossunder(ci1,-100) and strategy.openprofit<0) and change(cnt)<0)



/////숏

if  (crossunder(ci1,ci2) and change(ci2)<0 and falling(ci1,aa)) and Time_cond
    strategy.entry("die", strategy.short, comment="die")
    
strategy.close("die", (ci2>0 and ci1 > 100 and change(ci1)>0) or (crossover(ci2,100) and strategy.openprofit<0) and change(cnt)>0)

Más.