
Die Strategie ist ein Trendwechsel-Trading-System, basierend auf der Mittellinie und dem MACD-Indikator. Es kombiniert den schnellen Index-Moving Average (EMA), den einfachen Moving Average (SMA) und den MACD-Indikator, um durch die Erfassung von Kaufgelegenheiten bei Veränderungen der Markttrends zu profitieren. Die Strategie konzentriert sich hauptsächlich auf technische Merkmale wie den Preisbruch der Mittellinie, den Rückschlag des MACD-Indikators unterhalb der Null-Achse und somit die Platzierung des Marktes bei bevorstehenden Veränderungen.
Die Strategie nutzt die beiden Gleichungen EMA ((10) und MA ((20) als Benchmark für die Trendbeurteilung und die Signalbestätigung in Verbindung mit dem MACD-Indikator ((12,26,9). Insbesondere muss das Einstiegssignal die folgenden Bedingungen erfüllen:
Die Strategie ist durch die Kombination von Gleichgewichtssystem und MACD-Indikatoren zu einem relativ vollständigen Trendumkehr-Trading-System geworden. Obwohl es ein gewisses Risiko von Verzögerungen und Falschsignalen gibt, hat die Strategie durch vernünftige Parameteroptimierungen und Risikokontrollmaßnahmen immer noch einen guten Einsatz im Einsatz.
/*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)