
Esta estrategia combina los tres indicadores del índice de fuerza relativa (TSI), el índice de camino de la mercancía (CCI) y el promedio móvil de Hall (Hull MA) para formar una estrategia de negociación de seguimiento de tendencias. Se puede realizar un seguimiento de líneas largas en cualquier variedad de comercio en un marco de tiempo de 1 hora o más.
La estrategia se basa principalmente en dos indicadores, el TSI y el CCI, para determinar la tendencia del mercado y la situación de sobreventa y sobreventa, y el Hull MA para determinar la tendencia de los precios a medio plazo, los tres en conjunto son los requisitos básicos para la creación de posiciones.
Concretamente, cuando el TSI cruza la línea lenta en la línea rápida y el CCI sube +20&&n1, hace más; cuando el TSI cruza la línea lenta en la línea rápida y el CCI desciende a +20&n1, hace vacío. El Hull MA se utiliza para filtrar la tendencia intermedia, y solo hace más cuando el precio está por debajo del Hull MA y hace vacío cuando el precio está por encima del Hull MA.
De esta manera, mediante la confirmación de diferentes indicadores de ciclo, se puede filtrar eficazmente las brechas falsas y seguir la tendencia de la línea media larga.
Se trata de una estrategia de seguimiento de tendencias relativamente estable y eficiente, con las siguientes ventajas:
El uso del TSI para determinar la dirección de las tendencias a largo plazo es más confiable y evita la interferencia del ruido de los mercados a corto plazo.
La inclusión del índice CCI permite identificar sobrecompras y sobreventa y filtrar algunas señales falsas.
El juicio de Hull MA permite una mayor precisión en los puntos de entrada, lo que aumenta considerablemente la probabilidad de obtener ganancias.
La integración de diferentes parámetros puede mejorar la fiabilidad de la señal y reducir la probabilidad de interferencia.
La configuración de los parámetros de la estrategia es flexible y se puede optimizar para diferentes ciclos de mercado.
A pesar de la estabilidad de la estrategia, hay ciertos riesgos a tener en cuenta:
La situación podría cambiar drásticamente y no se podría detener rápidamente, lo que generaría grandes pérdidas.
Los indicadores TSIDiff y CCI pueden presentar falsas señales y retrasos, y pueden perder algunos puntos de entrada.
La configuración incorrecta de los parámetros también puede causar una frecuencia de transacción excesiva o una calidad de señal inferior.
Respuesta:
Ajuste apropiado de los puntos de parada para controlar las pérdidas individuales;
Mejorar la precisión de la señal, en combinación con otros indicadores, cuando proceda;
La estrategia se ajusta a los parámetros del mercado para garantizar la estabilidad.
La estrategia también puede ser optimizada en los siguientes aspectos:
Probar una combinación de indicadores de diferentes parámetros para encontrar la mejor coincidencia.
El uso de algoritmos de aprendizaje automático para la optimización de los parámetros de adaptación.
El objetivo de este proyecto es mejorar la calidad de vida de las personas que viven en la zona.
La combinación de más filtros mejora la estrategia de éxito.
Esto será el foco de optimización en el futuro.
Esta estrategia utiliza los tres indicadores TSI, CCI y Hull MA para formar una estrategia de seguimiento de tendencias más estable y eficiente. Aplica con éxito las ventajas de los indicadores de varios períodos de tiempo y mejora la calidad de la señal. El siguiente paso será mejorar aún más la estabilidad y la rentabilidad de la estrategia a través de la optimización de parámetros y el aumento de filtros.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=25)
price=input(title="Source",type=input.source,defval=open)
Period=input(25, minval=1)
lineupper = input(title="Upper Line", type=input.integer, defval=100)
linelower = input(title="Lower Line", type=input.integer, defval=-100)
p=price
length= Period
double_smooth(src, long, short) =>
fist_smooth = ema(src, long)
ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
keh = tsi_value*5 > linelower ? color.red : color.lime
teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime
meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime
i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100)
i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100)
fill(i1,i2,color=meh,transp=85)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5)
n2ma = 2 * wma(p, round(length / 2))
nma = wma(p, length)
diff = n2ma - nma
sqn = round(sqrt(length))
n1 = wma(diff, sqn)
cci = (p - n1) / (0.015 * dev(p, length))
c = cci > 0 ? color.lime : color.red
c1 = cci > 20 ? color.lime : color.silver
c2 = cci < -20 ? color.red : color.silver
cc=plot(cci, color=c, title="CCI Line", linewidth=2)
cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100)
fill(cc,cc2,color=c,transp=85)
plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP", color=c1, linewidth=2,transp=100,offset=-2)
plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down", color=c2, linewidth=2,transp=100,offset=-2)
TSI1=ema(tsi_value*5, signal*5)
TSI2=ema(tsi_value*5, signal*5)[2]
hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period)))
//plot(hullma_smoothed*200)
longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0
if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1])
strategy.entry("Buy Here", strategy.long)
shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0
if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1])
strategy.entry("Sell Here", strategy.short)