La estrategia se basa en el indicador MACD amplificado para el seguimiento de la tendencia. Calcula simultáneamente el promedio móvil rápido, el promedio móvil lento y la diferencia entre ambos, y luego hace una media móvil de la diferencia para generar una señal de negociación.
La lógica es la siguiente:
Cálculo de un ciclo rápido de EMA, por ejemplo 12 días
Cálculo de un ciclo de EMA lento, como el día 26
Calcula el diferencial de la EMA rápida y lenta en MACD
EMA de línea de señal para MACD, como el EMA del día 9
La diferencia entre el MACD y la línea de señal genera una línea de señal amplificada por EMA
Hacer más cuando se cruza el eje cero en la línea de la señal de potencia
Cuando la señal de refuerzo pasa por el eje cero
La estrategia aprovecha las características de seguimiento de tendencias de los indicadores MACD y realiza filtros de optimización secundaria para mejorar la calidad de la señal y seguir las tendencias de la línea media y larga.
El aumento de la reducción de ruido MACD mejora la precisión de la señal
A medida que la EMA se acerca a la decisión, la dirección y la intensidad
Tendencia de la línea larga en los parámetros más lentos
Selección de los parámetros del ciclo EMA
No se puede aprovechar la oportunidad de un puesto vacante con tan solo hacer más.
La frecuencia de las señales es escasa.
La estrategia identifica oportunidades de mediano y largo plazo mediante el aumento de la capacidad de seguimiento de tendencias de MACD. Sin embargo, la optimización de parámetros y el control de riesgos son especialmente importantes. La combinación adecuada de otros factores puede mejorar la eficacia.
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study("MACDAS")
// strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD)
// Date range filter
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
inTimeRange = true
fastperiod = input(12,title="fastperiod",minval=1,maxval=500)
slowperiod = input(26,title="slowperiod",minval=1,maxval=500)
signalperiod = input(9,title="signalperiod",minval=1,maxval=500)
fastMA = ema(close, fastperiod)
slowMA = ema(close, slowperiod)
macd = fastMA - slowMA
signal = ema(macd, signalperiod)
macdAS = macd - signal
signalAS = ema(macdAS, signalperiod)
plot(macdAS, color=blue, linewidth=2)
plot(signalAS, color=red, linewidth=2)
plot(0, color=black)
strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS))
strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS))
plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge)
plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)