Esta estrategia combina las ventajas de la media móvil de Hull y la media móvil de T3 para diseñar una estrategia de negociación transbursátil. Esta estrategia se puede utilizar tanto para operaciones de línea corta como para el seguimiento de tendencias de línea media. Se determina el momento de entrada y salida en función de los cambios en su dirección, calculando el valor de la media móvil de Hull y la media móvil de T3 como líneas de señal de negociación principales.
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) es un método de cálculo iterativo de la media móvil ponderada que filtra eficazmente el ruido del mercado y muestra una curva lisa de tendencia de los precios. Es más sensible a los cambios de precios que las medias móviles simples y las medias móviles de índices, y también puede inhibir eficazmente las falsas rupturas.
La media móvil T3 puede acercarse al precio mediante ciertos ajustes hiperparámetros, al tiempo que reduce el efecto de retraso. Puede responder más rápidamente a los cambios de precio mediante múltiples cálculos de fluidez de índices.
Esta estrategia calcula el promedio de ambos como indicador principal de la negociación. Según la dirección de esta línea media, se determina el momento de entrada: si la línea media del ciclo actual es mayor que la del ciclo anterior, es una señal de entrada múltiple; si la línea media del ciclo actual es menor que la del ciclo anterior, es una señal de entrada en blanco.
Para las reglas de salida, se sale si el precio rompe el punto de stop-loss o alcanza el punto de stop-loss; también se ejecuta una acción de salida si hay un cambio en la dirección de la línea media.
La estrategia combina las ventajas de la media móvil Hull y la media móvil T3 para eliminar el ruido y responder rápidamente a los cambios de precios, generando un indicador integral. La estrategia se aplica a operaciones de línea corta y media a la vez, y permite ajustar el ciclo de operaciones aplicable con flexibilidad mediante el ajuste de los parámetros del ciclo de cálculo.
La estrategia se basa principalmente en indicadores de línea recta, que pueden generar múltiples falsas señales en tendencias turbulentas. Además, los instrumentos de línea recta tienen cierta latencia y pueden perder el momento óptimo de entrada de la variación de los precios. Se requiere precaución para establecer el punto de stop loss y evitar que sea demasiado flexible o demasiado apretado.
Se puede considerar la incorporación de otros indicadores auxiliares, como indicadores de fuerza y de debilidad, indicadores de volatilidad, etc., para verificar señales de línea media, filtrar falsas señales. Se pueden probar diferentes combinaciones de línea media y algoritmos de ponderación para optimizar el efecto de la generación de señales de línea media. Se pueden agregar parámetros de stop loss y tail stop para administrar el riesgo dinámicamente. Se puede volver a optimizar las combinaciones de parámetros para diferentes monedas y ciclos de negociación.
Esta estrategia combina las ventajas de la media móvil de Hull y la media móvil T3 para formar un indicador integral para determinar la dirección de la tendencia. Con la optimización de los parámetros, la estrategia se puede aplicar con flexibilidad a diferentes ciclos de negociación. La estrategia tiene ciertas ventajas, pero también hay problemas como el retraso de seguimiento y la generación de falsas señales.
/*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")