Estrategia cuantitativa de gradiente MACD


Fecha de creación: 2023-12-19 16:14:50 Última modificación: 2023-12-19 16:14:50
Copiar: 0 Número de Visitas: 713
1
Seguir
1621
Seguidores

Estrategia cuantitativa de gradiente MACD

Descripción general

Esta estrategia calcula la línea de Heikin-Ashi, suaviza el precio de la línea K, y en combinación con el indicador MACD emite una señal de negociación para lograr una estrategia de negociación cuantitativa que siga la tendencia de la línea media y larga.

Principio de estrategia

  1. Calcula el precio de apertura y cierre de Heikin-Ashi, el precio más alto y el precio más bajo, traza la línea de Heikin-Ashi y suaviza el movimiento de los precios en la línea K.

  2. Configure los parámetros MACD: longitud de línea rápida 12, longitud de línea lenta 26, longitud de línea de señal 9.

  3. Calcular las diferencias entre la línea lenta de la DEA, la línea rápida de la DEA y el MACD. Dibujar un gráfico de columnas de la MACD.

  4. Hacer más cuando el MACD está encima de 0, hacer vacío cuando el MACD está debajo de 0.

  5. Establece filtros de año, mes y día para operar solo en el período de tiempo especificado.

Análisis de las ventajas

  1. El filtro Heikin-Ashi es eficaz para filtrar el ruido del mercado e identificar tendencias.

  2. El MACD ofrece puntos de venta y compra de tendencias más claros.

  3. La combinación de Heikin-Ashi y MACD puede mejorar la calidad de los puntos de compra y venta y aumentar la rentabilidad de las operaciones.

  4. Configuración de condiciones de filtro de tiempo para determinar el mejor momento de negociación en función de la retroalimentación de datos históricos y aumentar la rentabilidad.

Análisis de riesgos

  1. Si la tendencia se invierte, puede haber grandes pérdidas.

  2. Los parámetros del MACD están mal configurados y pueden generar demasiadas señales no válidas.

  3. El filtro de tiempo es demasiado rígido y puede perder mejores oportunidades de negocio.

Respuesta:

  1. Establezca un parador de pérdidas para controlar las pérdidas únicas.

  2. Optimización de los parámetros MACD para determinar la mejor combinación de parámetros.

  3. En combinación con otros indicadores, las tendencias locales se juzgan.

Dirección de optimización

  1. Prueba diferentes combinaciones de parámetros para encontrar el mejor.

  2. Mecanismos adicionales para detener los pérdidas, como dejar un alto / rastrear el alto.

  3. El punto de inflexión fue el resultado de la combinación de los indicadores EMA, KDJ y otros.

  4. Añadir indicadores de energía y evitar la divergencia de energía.

Resumir

La estrategia calcula el precio de la línea de nivelación Heikin-Ashi, junto con el indicador MACD Tradingview para determinar la dirección de la tendencia y el punto de entrada. La estrategia permite una estrategia cuantitativa basada en el seguimiento de la tendencia. En comparación con la estrategia MACD común, se suaviza la curva de precios, se filtra parte del ruido y se puede determinar la dirección de la tendencia con mayor claridad.

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

//@version=4
strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1)

// Calculation HA Values 
haopen  = 0.0
haclose = (open + high + low + close) / 4
haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
hahigh  = max(high, max(haopen, haclose))
halow   = min(low,  min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red
src=haclose



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = sma(src,slowmacd)
macdslowline2 = sma(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = sma(src,fastmacd)
macdfastline2 = sma(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine = sma(MACDLine, signalmacd)

delta = MACDLine-SignalLine




swap1 = delta>0?color.green:color.red



plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20)
p1 = plot(MACDLine,color=color.blue,title='MACD Line')
p2 = plot(SignalLine,color=color.red,title='Signal')
fill(p1, p2, color=color.blue)
hline(0)



yearfrom = input(2020)
yearuntil =input(2042)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(delta,0)  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(delta,0) and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")