Diese Strategie verwendet drei EMA-Linien mit unterschiedlichen Perioden (144 Tage, 34 Tage und 76 Tage), um die mittelfristigen bis langfristigen Markttrends zu erfassen. Sie beinhaltet auch 30-tägige höchste Preis- und niedrigste Preis-EMA-Linien als kurzfristige lange und kurze Signale. Wenn der Schlusskurs über das kurzfristige lange Signal bricht, öffnet sie eine lange Position; wenn der Schlusskurs unter das kurzfristige kurze Signal bricht, schließt sie die Position. Dieser Ansatz ermöglicht ein flexibles Positionsmanagement, während der Hauptmarkttrend erfasst wird.
Die EMA-Crossover-Strategie mit kurzfristigen Signalen erfasst Markttrends durch mehrjährige EMA-Linien und erzielt ein flexibles Positionsmanagement mithilfe von kurzfristigen Preissignalen. Es ist eine Methode, die Trendverfolgung mit Swing-Trading kombiniert. Diese Strategie hat jedoch auch Probleme wie Verzögerung, häufigen Handel und Mangel an Risikokontrolle, die eine weitere Optimierung erfordern, um ihre Robustheit und Rentabilität zu verbessern. Durch die Einführung mehrer Dimensionen des Trendurteils, die dynamische Anpassung von Signalparametern, die Einbeziehung angemessener Stop-Loss- und Take-Profit-Mechanismen und anderer Methoden kann diese Strategie vollständiger und zuverlässiger 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")