La estrategia de negociación de la media móvil doble entre los mercados

El autor:¿ Qué pasa?, Fecha: 2023-10-24 16:55:38
Las etiquetas:

双移动平均线跨市交易策略

Resumen

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.

Principios estratégicos

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.

Análisis de ventajas

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.

Análisis de riesgos

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.

Dirección de optimización

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.

Resumen

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")


Más contenido