Estrategia del oscilador MA de Hull basada en canales y regresión lineal


Fecha de creación: 2023-12-01 16:47:01 Última modificación: 2023-12-01 16:47:01
Copiar: 0 Número de Visitas: 731
1
Seguir
1619
Seguidores

Estrategia del oscilador MA de Hull basada en canales y regresión lineal

Descripción general

Esta estrategia es una estrategia de trading oscilante que combina Hull MA, canales de precios, señales EMA y regresión lineal. La estrategia utiliza Hull MA para determinar la dirección de la tendencia del mercado, canales de precios y regresión lineal para determinar las zonas de fondo, señales EMA para determinar el momento de entrada en el mercado para capturar tendencias de línea corta.

Principio de estrategia

La estrategia se compone principalmente de los siguientes indicadores:

  1. Hull MA
    • El parámetro general de Hull MA durante el período es 337, representando la dirección de la tendencia de la línea media larga
    • Cuando el WMA de 18 ciclos es 2 veces superior al WMA de 337 ciclos es el mercado de más cabeza, y viceversa es el mercado de cabeza vacía
  2. El canal de precios
    • Los canales de precios están formados por EMAs de precios altos y bajos, que representan áreas propensas a formar soporte y resistencia
  3. Señales de la EMA
    • Las señales de EMA generalmente tienen un período de 89 ciclos, lo que representa una tendencia de línea corta y una señal de salida a la bolsa
  4. Regresión lineal
    • Ciclo de la línea rápida 6, para determinar el fondo y la ruptura
    • Ciclo de la línea lenta 89, para determinar la dirección de la línea media larga

Logía de entrada:

Entrada múltiple: Hull MA hacia arriba y con precios más altos que los de la vía, retorno lineal hacia arriba a través de la EMA de corto plazo Entrada en blanco: Hull MA hacia abajo y precio por debajo de la vía baja, retorno lineal hacia abajo a través de la EMA corta

La lógica de salida:

Salida múltiple: precio por debajo de la vía descendente y recorrido de retorno lineal hacia abajo Salida en blanco: precio más alto que la subida y recorrido de regreso lineal hacia arriba

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Combinación de varios indicadores para una mejor evaluación
    • El Hull MA determina la tendencia principal, el canal determina la presión de soporte y el EMA determina el momento de entrada
  2. Las tendencias de las líneas cortas en el mercado de divisas
    • La estrategia es una estrategia de trading de oscilación inversa que captura la tendencia de cada ciclo de línea corta
  3. El riesgo es controlado, la retirada es menor
    • La estrategia es emitir señales solo en zonas de alta probabilidad y evitar perseguir altibajos.

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. Optimización de parámetros con espacio limitado
    • Los parámetros principales como el ciclo EMA son más fijos, el espacio de optimización es pequeño
  2. Pérdidas en caso de crisis
    • El precio de las acciones en el mercado de divisas se ha disparado en los últimos meses.
  3. Se necesita una base de análisis técnico
    • El pensamiento estratégico requiere un cierto conocimiento del comportamiento de los precios y los indicadores, y no es para todos

Se puede optimizar a partir de los siguientes puntos:

  1. Ajuste de las estrategias de pérdidas, como las pérdidas por aftershocks
  2. Optimización de la lógica de entrada y salida
  3. Añadir filtros para otros indicadores, como el MACD

Resumir

Esta estrategia combina varios indicadores, como el Hull MA, el canal de precios, el EMA y la regresión lineal, para formar una estrategia de negociación de oscilación de línea media y corta más completa. En comparación con un solo indicador, la estrategia puede mejorar considerablemente la precisión de juicio y capturar ganancias en la tendencia y la reversión.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Swing Hull/SonicR/EMA/Linear Regression Strategy", overlay=true)
//Hull MA
n=input(title="HullMA Period",defval=377)
//
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
//
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
//
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
condDown = n2 >= n1
condUp = condDown != true
col =condUp ? lime : condDown ? red : yellow
plot(n1,title="Hull MA", color=col,linewidth=3)
// SonicR + Line reg
EMA = input(defval=89, title="EMA Signal")
HiLoLen     = input(34, minval=2,title="High Low channel Length")
lr     = input(89, minval=2,title="Linear Regression Length")
pacC        = ema(close,HiLoLen)
pacL        = ema(low,HiLoLen)
pacH        = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, lr, 0)
lineregf = linreg(close, HiLoLen, 0)
cline=linereg>linereg[1]?green:red
cline2= lineregf>lineregf[1]?green:red
plot(linereg, color = cline, title = "Linear Regression Curve Slow", style = line, linewidth = 1)
//plot(lineregf, color = cline2, title = "Linear Regression Curve Fast", style = line, linewidth = 1)
longCondition = n1>n2
shortCondition = longCondition != true
closeLong =  lineregf-pacH>(pacH-pacL)*2 and close<lineregf and linereg>signalMA
closeShort = pacL-lineregf>(pacH-pacL)*2 and close>lineregf and linereg<signalMA
if shortCondition    
    if (close[0] < signalMA[0] and close[1] > pacL[1] and linereg>pacL and close<n1 and pacL<n1) //cross entry
        strategy.entry("SHORT", strategy.short, comment="Short")
strategy.close("SHORT", when=closeShort) //output logic
if longCondition // swing condition          
    if (close[0] > signalMA[0] and close[1] < pacH[1] and linereg<pacH and close>n1 and pacH>n1) //cross entry
        strategy.entry("LONG", strategy.long, comment="Long")
strategy.close("LONG", when=closeLong) //output logic