Indice de desviación de tendencia con estrategia de media móvil

El autor:¿ Qué pasa?, fecha: 2023-11-06 14:46:40
Las etiquetas:

img

Resumen general

Esta estrategia calcula el índice de desviación de tendencia (TSI) del precio, procesa TSI con la media móvil y forma la línea de media móvil de TSI.

Principios

Las principales etapas de esta estrategia son:

  1. Calcular el porcentaje de variación de los precios
  2. Pct doble suave con HMA para obtener double_smoothed_pc
  3. Calcule el doble de HMA de pct absoluto para obtener double_smoothed_abs_pc
  4. Calcular el valor de la ETI: (100 * (double_smoothed_pc / double_smoothed_abs_pc))
  5. Valor de la ETI de proceso con HMA para obtener la TSI de la línea de la media móvil tsihmalina
  6. Comparar el valor de la ETI y la línea de la media móvil de la ETI, por encima de la media móvil es tendencia alcista, por debajo es tendencia bajista
  7. En tendencia alcista, si el precio también está subiendo, generar una señal de compra
  8. En tendencia bajista, si el precio también está cayendo, generar una señal de venta

A través de los pasos anteriores, determina la dirección general de la tendencia, combinada con el movimiento real de los precios, para generar señales comerciales.

Ventajas

  1. El doble suavizado HMA filtra el ruido a corto plazo y bloquea la tendencia principal
  2. La ETI y su línea de media móvil determinan la dirección general de la tendencia
  3. Combinado con el candelabro de precios evita la ruptura falsa, mejora la fiabilidad de la señal
  4. Los parámetros personalizables se adaptan a los diferentes mercados de ciclos
  5. Visualización gráfica, verde para tendencia alcista, rojo para tendencia bajista

Los riesgos

  1. Puede generar múltiples señales falsas durante el mercado de rango
  2. Retrasos en la línea media móvil en los puntos de inflexión, posiblemente faltando el mejor punto de entrada
  3. Necesidad de ajuste frecuente de parámetros para adaptarse a los cambios del mercado
  4. Basado en un indicador único de la ETI, puede optimizarse con otros indicadores

Mejoramiento

  1. Añadir filtros para evitar señales falsas durante la consolidación
  2. Añadir otros indicadores para confirmar los puntos de reversión de tendencia
  3. Optimización automática de parámetros mediante aprendizaje automático, etc.
  4. Introducir el stop loss para controlar las pérdidas de una sola operación

Conclusión

Esta estrategia utiliza TSI para determinar la dirección de la tendencia combinada con velas de precios para generar señales comerciales, que pueden capturar efectivamente la tendencia, comprando en tendencia alcista y vendiendo en tendencia bajista.


/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TSIHULLBOT", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100)
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=7)
price = input(title="Source",type=input.source,defval=open)
lineupper = input(title="Upper Line", type=input.integer, defval=250)
linelower = input(title="Lower Line", type=input.integer, defval=-250)
double_smooth(price, long, short) =>
    fist_smooth = hma(price, long)
    hma(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))*5
tsihmaline=(hma(tsi_value,signal))*5
clr = tsihmaline < tsi_value ? color.red : color.lime
clr2 = tsi_value < tsi_value[1] ? color.red : color.lime
i1=plot(lineupper+3, color=color.black, linewidth=3)
i2=plot(linelower+3, color=color.black, linewidth=3)
i3=plot(lineupper, color=clr)
i4=plot(linelower, color=clr)
trendv=tsihmaline/5.6
plot(trendv, linewidth=7,  color=color.black)
plot(trendv, linewidth=4,  color=color.yellow)
j1=plot(tsi_value, linewidth=5, color=color.black)
j2=plot(tsi_value[1], linewidth=5, color=color.black)
j3=plot(tsi_value, color=clr2)
j4=plot(tsi_value[1], color=clr2)
fill(i3,i4,color=clr,transp=90)
fill(j3,j4,color=clr2,transp=15)
longCondition = tsihmaline>tsihmaline[1] and price>price[1]
if (longCondition)
    strategy.entry("Buy ⤴️", strategy.long)
shortCondition = tsihmaline<tsihmaline[1] and price<price[1]
if (shortCondition)
    strategy.entry("Sell ⤵️", strategy.short)

Más.