Esta estrategia combina las ventajas de la media móvil de Hull y la media móvil T3 para diseñar una estrategia de negociación entre mercados. Se puede utilizar tanto para el comercio a corto plazo como para el seguimiento de tendencias a largo plazo.
La estrategia se basa principalmente en el cálculo de la media móvil de Hull y la media móvil de T3.
El Hull Moving Average (HMA) utiliza un método de cálculo iterativo de promedios móviles ponderados para filtrar efectivamente el ruido del mercado y mostrar una curva de tendencia de precios suave.
El promedio móvil T3 responde más rápido a los cambios de precios al tiempo que reduce el retraso mediante el ajuste de parámetros.
Esta estrategia toma la media de los dos como indicador principal de negociación y juzga el momento de entrada de acuerdo con la dirección de esta línea media: si la media del período actual es superior a la del período anterior, es una señal de entrada larga; si es inferior, es una señal de entrada corta.
Para las reglas de salida, si el precio rompe el punto de stop loss o take profit, salida; también salida cuando cambia la dirección de la media móvil.
Esta estrategia combina las ventajas de la media móvil de Hull y la media móvil T3 para generar un indicador integral. A continuación, esta estrategia es adecuada para el comercio a corto y largo plazo ajustando el parámetro del ciclo. Además, adopta un stop loss dinámico y toma ganancias para bloquear las ganancias y controlar los riesgos.
La estrategia se basa principalmente en el indicador de promedio móvil, que puede generar múltiples señales falsas en tendencias variadas. Además, el retraso de los promedios móviles puede perder el mejor momento de entrada. Los puntos de stop loss y take profit necesitan una configuración cuidadosa para evitar ser demasiado sueltos o demasiado apretados. Por último, los parámetros necesitan optimización para diferentes monedas y marcos de tiempo.
Considere agregar otros indicadores para verificar la señal de MA y filtrar las señales falsas. Pruebe diferentes combinaciones de MA y algoritmos de ponderación para optimizar la señal de MA. Agregue stop loss adaptativo y trailing take profit para gestionar los riesgos dinámicamente. Realice optimización de backtesting en diferentes monedas y marcos de tiempo para encontrar los conjuntos de parámetros óptimos.
Esta estrategia integra los puntos fuertes de la media móvil de Hull y la media móvil T3 para formar un indicador integral para juzgar la dirección de la tendencia. A través de la optimización de parámetros, la estrategia se puede aplicar de manera flexible a diferentes ciclos comerciales. La estrategia tiene ciertas ventajas, pero también problemas como retraso y señales falsas. Al agregar otros indicadores, optimizar parámetros y paradas dinámicas, se puede mejorar continuamente para obtener mejores resultados.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true ////////////////////////////GENERAL INPUTS////////////////////////////////////// length_Ma= input(defval=50, title="Length MAs", minval=1) //==========HMA getHULLMA(src, len) => hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len))) hullma //==========T3 getT3(src, len, vFactor) => ema1 = ema(src, len) ema2 = ema(ema1,len) ema3 = ema(ema2,len) ema4 = ema(ema3,len) ema5 = ema(ema4,len) ema6 = ema(ema5,len) c1 = -1 * pow(vFactor,3) c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3) c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3) c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2) T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3 T3 hullma = getHULLMA(close,length_Ma) t3 = getT3(close,length_Ma,0.7) avg = (hullma+t3) /2 ////////////////////////////PLOTTING//////////////////////////////////////////// colorado = avg > avg[1]? color.green : color.red plot(avg , title="avg", color=colorado, linewidth = 4) long=avg>avg[1] short=avg<avg[1] tplong=input(0.08, title="TP Long", step=0.01) sllong=input(1.0, title="SL Long", step=0.01) tpshort=input(0.03, title="TP Short", step=0.01) slshort=input(0.06, title="SL Short", step=0.01) if(time_cond) strategy.entry("long",1,when=long) strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong") strategy.entry("short",0,when=short) strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")