
Die Strategie nutzt drei EMA-Mittelwerte mit unterschiedlichen Perioden (144, 34 und 76 Tage) zur Erfassung der mittleren und langen Markttrends, wobei die EMA-Mittelwerte mit den 30-Tage-Höchst- und Tiefstpreisen als kurzfristige Überlagerungen dienen. Sie eröffnen Überlagerungen, wenn der Kurs über die kurzfristige Multi-Party-Signalbrecher geht, und schließen die Positionen, wenn die kurzfristige Überlagerung über die Short-Party-Signalbrecher geht. Diese Methode ermöglicht eine flexiblere Positionsverwaltung durch die Verwendung von kurzfristigen Signalen, während die wichtigsten Markttrends erfasst werden.
Die EMA-Linienkreuzung mit dem kurzfristigen Signalstrategie ist eine Methode, um die Markttrends durch die Mehrzeit-EMA-Linien zu erfassen und die kurzfristigen Preissignale zu nutzen, um eine flexible Positionsverwaltung zu ermöglichen. Die Strategie ist jedoch mit Problemen wie Verzögerung, häufiger Handel und fehlender Windkontrolle konfrontiert und muss weiter optimiert werden, um ihre Stabilität und Profitabilität zu verbessern. Die Strategie kann durch die Einführung von mehreren Dimensionen von Trendsurteil, dynamische Anpassung der Signalparameter und die Einbeziehung einer vernünftigen Stop-Loss-Hemmermethode verbessert und zuverlässig gemacht werden.
/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with Short-term Signals", overlay=true)
// 定义EMA
shortest = ta.ema(close, 144)
short = ta.ema(close, 34)
longer = ta.ema(close, 76)
// 绘制EMA
plot(shortest, color=color.new(color.yellow, 0))
plot(short, color=color.new(color.orange, 0))
plot(longer, color=color.new(color.red, 0))
// 定义短线多空信号的EMA
stLong = ta.ema(high, 30)
stShort = ta.ema(low, 30)
stLongPlot = plot(stLong, '短线多', color.new(color.aqua, 0))
stShortPlot = plot(stShort, '短线空', color.new(color.green, 0))
// 绘制短线多空信号
clr = close > stLong ? color.green : color.aqua
fill(stLongPlot, stShortPlot, color=clr, transp=90)
// 交易信号
if (close > stLong)
strategy.entry("Buy", strategy.long)
if (close < stShort)
strategy.close("Buy")
// 显示买卖信号
plotshape(series=close > stLong, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=close < stShort, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")