Tendencia de la media móvil del casco siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-09-19 16:40:00
Las etiquetas:

Resumen general

Esta estrategia se basa en el indicador de Hull Moving Average inventado por Alan Hull, perteneciente a las estrategias de seguimiento de tendencias.

Principio de la estrategia

  1. Calcular las MAs de Hull a corto y largo plazo.

  2. Cuando los Hull MAs de corto plazo se cruzan, determine la inversión de tendencia.

  3. Añadir la ruptura del precio a través de la condición de Hull MA para garantizar una ruptura exitosa.

  4. Añadir un filtro de tasa de cambio de precios para evitar una entrada de ruptura no deseada.

  5. Establezca el stop loss y tome ganancias para controlar el riesgo.

Análisis de ventajas

En comparación con las medias móviles simples, las ventajas de esta estrategia incluyen:

  1. Hull MA responde a los cambios de precios más rápido, capaz de capturar las tendencias en el momento oportuno.

  2. La estructura MA de doble casco puede determinar las tendencias tanto en plazos largos como en plazos cortos.

  3. Los filtros de ruptura de precios y tasa de cambio ayudan a evitar rupturas falsas.

  4. Las operaciones de stop loss y take profit dinámicas bloquean los beneficios y controlan el riesgo.

Análisis de riesgos

Riesgos de esta estrategia:

  1. La configuración incorrecta de parámetros puede perder los giros de tendencia del precio.

  2. Un juicio de tendencia global incorrecto puede causar operaciones contra tendencia.

  3. El límite de pérdida demasiado amplio puede dar lugar a grandes pérdidas.

  4. El comercio demasiado frecuente aumenta los costes de transacción y los riesgos de deslizamiento.

Direcciones de optimización

Se puede optimizar en los siguientes aspectos:

  1. Optimizar los períodos de Hull MA para equilibrar la sensibilidad y la suavidad.

  2. Optimizar los parámetros de entrada y salida para encontrar los valores óptimos.

  3. Prueba la robustez de los parámetros en diferentes instrumentos para mejorar la adaptabilidad.

  4. Incorporar el volumen para evitar los riesgos de divergencia.

  5. Añadir condiciones para mejorar la estabilidad.

Resumen de las actividades

En general, esta estrategia aprovecha la capacidad de respuesta de Hull MA para seguir las tendencias a tiempo y tiene una fuerte rentabilidad bajo control de riesgos.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//SeaSide420
strategy("SS420FX", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
q=input(title="HullMA Short",defval=14)
z=input(title="HullMA Long",defval=14)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100000.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(q/2))
nma=wma(close,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(close[1],round(q/2))
nma1=wma(close[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
z2ma=2*wma(close[11],round(z/2))
zma=wma(close[11],z)
ziff=n2ma-nma
zqn=round(sqrt(z))
z2ma1=2*wma(close[12],round(z/2))
zma1=wma(close[12], z)
ziff1=n2ma1-nma1
zqn1=round(sqrt(z))
z1=wma(diff,sqn)
z2=wma(diff1,sqn)
z1e=z1>z2?green:black
z2e=z1>z2?black:red
z3e=z1>z2?green:red
n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)

Más.