Esta estrategia se llama
La estrategia utiliza el indicador de la ETI para determinar las tendencias y el impulso de los precios. El indicador de la ETI se basa en una media móvil doble suavizada de la tasa de cambio de precios. Genera señales de compra cuando el valor de la ETI se cruza por encima de su media móvil y señales de venta cuando se cruza por debajo.
La estrategia también utiliza el promedio móvil de Hull para determinar las tendencias de precios. El promedio móvil de Hull se construye con promedios móviles doblemente ponderados y puede filtrar el ruido del mercado de manera efectiva.
Cuando el indicador TSI genera una señal, si el Hull Moving Average confirma la tendencia en la misma dirección, se activarán las señales comerciales correspondientes. Además, la estrategia también verifica la dirección de los cuerpos de las velas para confirmar la tendencia. Las señales se generan solo cuando la señal del indicador, la señal del casco y la dirección del cuerpo de las velas están alineadas de manera consistente.
Al combinar indicadores de tendencia, impulso y medias móviles, esta estrategia puede identificar eficazmente el inicio de las tendencias del mercado y evitar señales falsas excesivas.
En comparación con las estrategias de un solo indicador, esta estrategia filtra las señales mediante la combinación de múltiples indicadores, lo que puede mejorar en gran medida la calidad de las señales.
Aunque esta estrategia puede identificar efectivamente los comienzos de tendencia, puede generar algunas señales falsas y un exceso de negociación durante las consolidaciones del mercado.
Para reducir los riesgos, los parámetros del período del casco o de la ETI se pueden ajustar en consecuencia. También se pueden agregar paradas para controlar las pérdidas. Durante las optimizaciones, se debe prestar atención a garantizar una alta relación señal-ruido para obtener los mejores parámetros.
La estrategia se puede optimizar en los siguientes aspectos:
Esta estrategia combina el indicador TSI y el promedio móvil de Hull para generar señales comerciales después de confirmar las tendencias del mercado. La estrategia tiene un alto tiempo y calidad de señal. A través de la optimización de parámetros y la combinación de estrategias, la rentabilidad puede mejorarse en gran medida al tiempo que se reducen los riesgos. La estrategia es adecuada para identificar tendencias a medio y largo plazo, y tiene perspectivas de aplicación prometedoras, especialmente en los mercados de criptomonedas y divisas.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TSI/HullMA/VWMA strategy", shorttitle="TSI/HullMA/VWMA", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0) TP = input(defval=200.00, title="TargetPoint in $", type=float, step=1) SL = input(defval=-2000.00, title="StopLoss in $", type=float, step=1) signal = input(title="Signal Length", defval=6) keh=input(title="HullMA cross",defval=2) a=input(title="VWMA",defval=2) long=35,short=35,linebuy=4,linesell=-4,ot=1,p=ohlc4[0] double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(p) rvwma=vwma(p,round(a)) rvwma2=vwma(p,round(a*2)) n2ma=2*wma(p,round(keh/2)) nma=wma(p,keh) diff=n2ma-nma sqn=round(sqrt(keh)) n2ma1=2*wma(p[1],round(keh/2)) nma1=wma(p[1],keh) diff1=n2ma1-nma1 sqn1=round(sqrt(keh)) n1=wma(diff,sqn) n2=wma(diff1,sqn) hullbuy=n1>n2 and n1>n2[1] and rvwma>rvwma2 hullsell=n1<n2 and n1<n2[1] and rvwma<rvwma2 candlebuy=ohlc4[0]>ohlc4[1] and ohlc4[0]>ohlc4[2] and ohlc4[0]>ohlc4[3] candlesell=ohlc4[0]<ohlc4[1] and ohlc4[0]<ohlc4[2] and ohlc4[0]<ohlc4[3] 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) strategy.entry("buy", true, na, when = tsi_value>ema(tsi_value, signal) and candlebuy and hullbuy) strategy.entry("sell", false, na, when = tsi_value<ema(tsi_value, signal) and candlesell and hullsell) strategy.close_all(when = strategy.openprofit>TP or strategy.openprofit<SL)