
La estrategia se llama estrategia de trading cuantitativa basada en el índice TSI y el promedio móvil de Hull. La idea principal es la combinación del índice TSI y el promedio móvil de Hull para identificar tendencias en acciones, monedas digitales o divisas y generar señales de negociación cuando comienzan las tendencias.
La estrategia utiliza el indicador TSI para determinar la tendencia y el movimiento de los precios. El indicador TSI es una media móvil doble basada en la tasa de cambio de los precios.
La estrategia también utiliza Hull Moving Averages para determinar la tendencia de los precios. Hull Moving Averages se construye a través de una doble ponderación de las medias móviles, que filtran eficazmente el ruido del mercado.
Al mismo tiempo que el indicador TSI emite una señal, se emite una señal de negociación correspondiente si el promedio móvil de Hull también confirma una tendencia en la misma dirección. Además, la estrategia también examina la dirección de la entidad de la línea K para confirmar la tendencia. La señal de negociación solo se emite cuando la señal del indicador, la señal de Hull y la dirección de la entidad de la línea K coinciden.
Esta estrategia combina varios indicadores de tendencia, dinámica y promedio, lo que permite identificar con eficacia el inicio de una tendencia del mercado y evitar una gran cantidad de falsas señales. Las medias móviles dobles también pueden filtrar parte del ruido.
En comparación con un solo indicador, la estrategia puede mejorar considerablemente la calidad de la señal mediante la combinación de múltiples indicadores de filtración. Las múltiples condiciones de confirmación también hacen que la estrategia tenga una gran certeza al generar una señal.
Esta estrategia, aunque puede ser eficaz para identificar el inicio de una tendencia, puede generar ciertas señales erróneas y exceso de comercio en momentos de agitación del mercado. Además, la configuración incorrecta de los parámetros también puede conducir a posiciones cerradas innecesarias.
Para reducir el riesgo, se puede ajustar adecuadamente el ciclo de la media móvil de Hull o el parámetro TSI, o se puede agregar un stop loss para controlar los daños. En el proceso de optimización, se debe prestar atención a la relación de ruido de la señal para obtener el mejor parámetro.
La estrategia puede ser optimizada en los siguientes aspectos:
Esta estrategia, combinada con el indicador TSI y la media móvil Hull, genera una señal de negociación después de determinar la tendencia del mercado. La estrategia tiene una alta puntualidad y calidad de la señal. A través de la optimización de los parámetros y la combinación de estrategias, se puede aumentar considerablemente la rentabilidad y reducir el riesgo.
/*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)