
La estrategia utiliza la eliminación de la tendencia de los precios de las acciones, para ver con mayor claridad la forma en que el indicador MACD. Calculando la línea rápida y la línea lenta DEMA, y luego obtener la línea recta y la línea de señal MACD, y juzgar su cruce para generar una señal de negociación. La estrategia también combina los filtros de condiciones de mes, fecha y la lógica de liquidación de pérdidas para formar un sistema de estrategias más completo.
Primero, se calcula el EMA del precio para eliminar la tendencia del precio y obtener el EMA del precio después de la eliminación de la tendencia. Luego, se calculan el DEMA de la línea rápida, el DEMA de la línea lenta y el MACD de la línea recta, respectivamente, basados en el EMA.*EMA1-EMA2) ❚ El DEMA de línea lenta y la línea de señal se calculan de la misma manera ❚ Después de obtener la línea recta MACD ((DEMA de línea rápida - DEMA de línea lenta) y la línea de señal, si la línea recta MACD atraviesa la línea de señal, produce una señal de compra; si la línea recta MACD atraviesa la línea de señal debajo de la línea, produce una señal de venta ❚ Finalmente, se filtran las condiciones de mes y fecha y se establece la lógica de stop loss ❚
La lógica central de esta estrategia es la siguiente:
Eliminación de tendencias de precios para ver con mayor claridad el MACD
Calcula las líneas rápidas y lentas de DEMA para obtener las líneas rectas y señales de MACD
La línea recta MACD y la línea de señal cruzada generan una señal de negociación
Filtración de la fecha y el mes
Configuración de la lógica de deterioro
Las principales ventajas de esta estrategia son:
Eliminar las tendencias de los precios para ver con mayor claridad el cruce de los indicadores MACD y evitar ser engañados por las tendencias.
El uso del algoritmo DEMA para calcular el indicador MACD puede filtrar algunos ruidos y hacer que la señal sea más clara.
El filtro combinado de fechas y meses reduce las transacciones innecesarias.
Configuración de la lógica de stop loss para detener los daños a tiempo y controlar el riesgo
El uso de cruces para generar señales puede reducir el error de transacción.
En general, esta estrategia, combinada con la eliminación de tendencias, el cálculo de DEMA y el filtrado de condiciones, puede generar una señal de negociación más clara y confiable.
La estrategia también tiene algunos riesgos a tener en cuenta:
Después de eliminar la tendencia, la señal de cruce MACD podría aumentar y se necesitaría una verificación en vivo para verificar si es viable.
Aunque el algoritmo DEMA filtraba parte del ruido, el cálculo del indicador podría mostrar más señales falsas.
Los filtros de fecha y mes pueden ser demasiado rígidos y perder oportunidades de negocio.
La configuración de la posición de parada de pérdidas debe considerarse si es razonable, ya que la flexibilidad aumenta el riesgo y la rigidez aumenta la frecuencia de las paradas.
La estrategia se basa principalmente en el indicador MACD, cuya eficacia puede verse afectada si el mercado no está preparado para usarlo.
El espacio para la optimización de los parámetros de la estrategia es amplio y requiere pruebas adicionales a través de retroalimentación y disco duro.
Respuesta:
Aumentar la confirmación de otros indicadores para evitar falsas señales.
Optimización de las condiciones de filtración de fechas, con la debida flexibilidad.
Prueba minuciosa y optimización de los puntos de parada.
El objetivo de la iniciativa es que los comerciantes de divisas se unan a los mecanismos de evaluación de tendencias y eviten el comercio en contra.
La respuesta global y la optimización de los parámetros para mejorar la estabilidad.
La estrategia puede ser optimizada en los siguientes aspectos:
Prueba diferentes promedios de precios para encontrar líneas alternativas más adecuadas para la EMA.
Prueba diferentes combinaciones de parámetros para optimizar la longitud de la línea rápida, la longitud de la línea lenta y la longitud de la línea de señal en el MACD.
Aumentar los indicadores auxiliares de juicio, como los indicadores de energía, para evitar falsas señales.
Optimizar las estrategias de detención de pérdidas, estableciendo un movimiento razonable de detención de pérdidas o un solo parón.
Optimizar las condiciones de filtración por fecha y mes para que sean más flexibles.
Añadir un juicio de tendencia y evitar operaciones en contra.
Optimización integral de los parámetros para mejorar la estabilidad de la estrategia.
Realizar retroalimentación en períodos de tiempo más largos para comprobar el efecto a largo plazo de la estrategia.
Realizar una verificación en el campo real y modificar los parámetros de la política según las circunstancias del campo real.
En general, la estrategia utiliza la idea de eliminar la tendencia, calcular el indicador MACD en forma de DEMA, y en combinación con la filtración de la fecha para generar una señal de negociación, es una estrategia simple pero viable. Su mayor ventaja es que se puede ver claramente la forma de MACD y evitar ser juzgado por la influencia de la tendencia de los precios.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Trendless MACD Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000)
maperiod=input(9)
ema=ema(close,maperiod)
fastmacd = input(12,title='MACD Fast Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')
macdslowline1 = ema(ema,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )
macdfastline1 = ema(ema,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)
MACDLine = (DEMAfast - DEMAslow)
SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )
MACDSignal = MACDLine-SignalLine
colorbar= MACDSignal>0?green:red
plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0)
p1 = plot(MACDLine,color=blue,title='MACDLine')
p2=plot(SignalLine,color=red,title="SignalLine")
fill(p1,p2,color=blue)
longCond = crossover(MACDLine,SignalLine)
shortCond = crossunder(MACDLine,SignalLine)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
yearfrom= input(2018)
yearuntil=input(2021)
if ( longCond )
strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
strategy.cancel(id="LONG")
if ( shortCond )
strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
strategy.cancel(id="SHORT")