Estrategia cuantitativa de doble media móvil de la Cruz de Oro

El autor:¿ Qué pasa?, Fecha: 2023-12-26 15:52:13
Las etiquetas:

img

Resumen general

Esta estrategia juzga las tendencias de precios y las oportunidades de negociación mediante el cálculo de cruces de media móvil dual. Cuando el MA rápido cruza por encima del MA lento, se considera una cruz de oro para ir largo. Cuando el MA rápido cruza por debajo del MA lento, se considera una cruz de muerte para ir corto. Al mismo tiempo, combina el indicador de volumen para juzgar la confiabilidad de los cruces para evitar señales falsas.

Principio de la estrategia

Los principios fundamentales de esta estrategia son los siguientes:

  1. Calcular dos grupos de promedios móviles con parámetros diferentes, un grupo responde rápidamente a los cambios de precios y el otro reacciona relativamente lentamente. Cuando el MA rápido cruza por encima del MA lento, señala una tendencia al alza de los precios. Cuando el MA rápido cruza por debajo del MA lento, señala una tendencia a la baja de los precios.

  2. Cuando los MAs se cruzan, compruebe el cambio del indicador de volumen. Si el indicador de volumen también se rompe significativamente, la señal de cruce es confiable. Si no hay una ruptura correspondiente en el volumen, puede ser una señal falsa.

  3. Introducir posiciones largas o cortas basadas en el juicio de la dirección cruzada y el volumen.

Específicamente, la estrategia juzga las tendencias de precios utilizando el cruce de MAs duales de 7 períodos. Utiliza indicadores de volumen para verificar la confiabilidad de la señal. Cuando se obtienen señales confiables, va largo o corto por la SIGNAL. Establece objetivos de ganancias para obtener ganancias.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Combinando dos MAs para determinar la dirección de la tendencia y el filtro de volumen para evitar señales falsas y quedar atrapados.

  2. Sólo tomar posiciones cuando el volumen confirma, aumentando la tasa de éxito.

  3. Tener un mecanismo de toma de ganancias para tomar ganancias a tiempo y evitar devolver las ganancias.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. El retraso en el cruce de MA puede perder la mejor oportunidad. Puede optimizar los parámetros para hacer que los MA sean más sensibles.

  2. Difícil de juzgar cuando el volumen diverge, puede agregar más indicadores para confirmar.

  3. La configuración inadecuada de stop profit puede conducir a una sobrecomercialización o a retener ganadores por demasiado tiempo.

Direcciones de optimización

La estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Optimizar los períodos de MA para que sea más receptivo a los cambios de precios en el tiempo.

  2. Añadir más indicadores como MACD, KD para la confirmación de la señal para evitar señales falsas de volumen.

  3. Incorporar más mecánicas de obtención de ganancias como parada de rastro, parada porcentual, parada de volatilidad para la obtención de ganancias dinámicas.

  4. Mecanismo de stop loss para controlar el importe de pérdidas de una sola operación.

  5. Optimizar el tamaño de las posiciones, adaptándose a los diferentes entornos de mercado.

Conclusión

En conclusión, la idea central de esta estrategia es el uso de doble cruce MA para tendencia y filtro de volumen para la confiabilidad de la señal. Es estable y fácil de implementar.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("ZendicatoR", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
sma1=sma(close,11)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
Q=n1>n2?blue:yellow
plot(sma1,style=line,color=Q,linewidth=4)
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Más.