
La estrategia determina la entrada y la salida mediante el cálculo de la intersección de la línea rápida EMA (3), la línea lenta EMA (11) y la línea lenta EMA (18) en combinación con la intersección del eje cero del MACD. Es una estrategia dinámica que utiliza los indicadores de doble EMA y MACD para tomar decisiones comerciales.
La estrategia se basa principalmente en dos indicadores de análisis técnico:
EMA línea media cruzada. La tendencia de juicio cruzado de la línea rápida EMA (3), la línea lenta EMA (11) y la línea lenta EMA (18) y sirve como señal de salida de entrada.
El indicador MACD y su cruce en el eje cero. El MACD se compone de la diferencia de diferenciación ((DIFF) y DEA. El DIFF es la línea rápida (EMA) (3) menos la línea lenta (EMA) (11) que constituye.
De acuerdo con la combinación de cruces EMA y cruces MACD de eje cero, se establecen tres entradas y dos salidas:
En general, la estrategia integra el sistema de cruce de dos EMA y el indicador MACD, lo que mejora la rentabilidad de la estrategia mediante la adaptación dinámica de los parámetros de la línea media y los parámetros MACD.
Utilizando las ventajas de los indicadores EMA y MACD, el análisis de los dos indicadores permite una mayor precisión.
Establezca tres oportunidades de multiplicación y dos oportunidades de liquidación para aumentar la frecuencia de las operaciones estratégicas y ampliar el espacio de ganancias.
El espacio para la optimización de los parámetros dinámicos es amplio. Se puede optimizar el ajuste de la línea rápida EMA, la línea lenta EMA, el eje cero EMA y la longitud MACD.
La lógica de la estrategia es clara y fácil de entender, para que sea fácil de configurar y optimizar.
El cruce de EMA y el MACD generan un cierto porcentaje de falsedad que puede conducir a pérdidas innecesarias.
La frecuencia de las transacciones es alta, el stop loss es pequeño y el riesgo de pérdidas es acumulativo.
Los parámetros son muy difíciles de optimizar, y una optimización incorrecta puede ser demasiado buena para los datos históricos.
Se debe considerar el impacto en los costos de las transacciones.
En cuanto al riesgo:
Establezca un alto riesgo razonable para reducir las pérdidas individuales.
Ajuste adecuado de los parámetros para evitar la sobreadaptación.
Tener en cuenta los efectos de los costos, como la reducción de la frecuencia de las transacciones.
Sustitución de otros ensayos de indicadores: como la banda de Brin, KDJ, etc.
Optimice los parámetros del cruce de la línea media del EMA: cambie los parámetros de longitud del EMA de la línea rápida y el EMA de la línea lenta.
Parámetros para optimizar el MACD: cambiar el DIFF del MACD y la DEA para calcular la longitud de la EMA.
Aumentar las estrategias de stop loss: como el número de operaciones de stop loss, el tiempo de stop loss, el movimiento de stop loss, etc.
Tener en cuenta el impacto de los costos de transacción y ajustar el número de entradas.
Esta estrategia utiliza una combinación de dos sistemas de cruce de EMA y indicadores MACD para construir una estrategia de parámetros dinámicos con alto potencial de ganancias y alta frecuencia de transacción. Al mismo tiempo, la lógica de la estrategia es simple y clara, fácil de entender y ajustar para optimizar.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)
short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)
isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)
//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)
//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)
//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)
fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma
strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))
strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)
strategy.entry("all in", strategy.long, comment="all in",when=isCross2)
strategy.close("2nd in",when=isCrossSell)
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0))
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0))
histColour = (delta > 0) ? green : (delta < 0) ? red : #4169E1
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)