
Esta estrategia es un sistema de inversión de tendencias basado en la línea media y el indicador MACD. Combina el índice rápido Moving Average (EMA), el simple Moving Average (SMA) y el indicador MACD para obtener ganancias al capturar oportunidades de compra en los cambios de tendencias del mercado. La estrategia se centra principalmente en características técnicas como la ruptura del precio de la línea media, la inversión del indicador MACD en la parte inferior de la parte inferior del eje cero, para así organizarse en el mercado cuando el cambio esté a punto.
La estrategia utiliza las líneas medias EMA ((10) y MA ((20) como referencia para determinar la tendencia, y la confirmación de la señal en combinación con el indicador MACD ((12, 26, 9). En concreto, la señal de entrada debe cumplir con los siguientes requisitos:
La estrategia, a través del uso combinado del sistema de línea uniforme y el indicador MACD, construye un sistema de comercio de inversión de tendencia relativamente completo. Si bien existe cierto riesgo de retraso y falsas señales, aún tiene un buen valor de aplicación en el campo de batalla a través de medidas razonables de optimización de parámetros y control de riesgos. Se recomienda ajustar los parámetros de la estrategia de forma específica cuando se utiliza en el campo de juego, en combinación con el entorno del mercado y las preferencias de riesgo personales.
/*backtest
start: 2024-02-25 00:00:00
end: 2025-01-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("MACD Strategy", overlay=true)
//Macd 参数
fastLength = input(12, title="快线长度")
slowLength = input(26, title="慢线长度")
MACDLength = input(9, title="MACD 信号线长度")
// 计算 MACD
MACD = ta.ema(close, fastLength) - ta.ema(close, slowLength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
// 计算 EMA(10) 和 MA(20)
ema10 = ta.ema(close, 10)
ma20 = ta.sma(close, 20)
// 在图表上绘制 EMA(10) 和 MA(20),用于调试
plot(ema10, title="EMA 10", color=color.blue, linewidth=2)
plot(ma20, title="MA 20", color=color.red, linewidth=2)
// 实时检查条件
// 检查 EMA(10) 是否高于 MA(20)
bool emaAboveMa = ema10 > ma20
// 检查 MACD 是否在信号线上方,且 MACD 和信号线均在 0 轴下方
bool macdCondition = (MACD > aMACD) and (MACD < 0) and (aMACD < 0)
// 添加调试信息 - 当条件满足时绘制图形
plotshape(emaAboveMa, title="EMA Above MA Condition", size=size.small, text="eam")
plotshape(macdCondition, title="MACD Condition", size=size.small, text="macd")
// 当两个条件都满足时,触发买入操作
if (emaAboveMa and macdCondition)
strategy.entry("多头", strategy.long, comment="买入信号")
// 显示买入信号的标签
label.new(bar_index, high, "买入", textcolor=color.white, style=label.style_label_up, size=size.normal)
// 平仓条件
if (ta.crossunder(delta, 0) and MACD > 0 and aMACD > 0)
strategy.close("MacdLE", comment="Close Long")
//if (ta.crossunder(delta, 0))
// strategy.entry("MacdSE", strategy.short, comment="MacdSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)