Cette stratégie utilise trois lignes EMA avec des périodes différentes (144 jours, 34 jours et 76 jours) pour capturer les tendances du marché à moyen et long terme. Elle intègre également des lignes EMA de prix le plus élevé et le prix le plus bas de 30 jours en tant que signaux longs et courts à court terme. Lorsque le prix de clôture dépasse le signal long à court terme, elle ouvre une position longue; lorsque le prix de clôture dépasse le signal court à court terme, elle ferme la position. Cette approche permet une gestion de position flexible tout en saisissant la tendance principale du marché.
La stratégie EMA Crossover with Short-Term Signals capture les tendances du marché à travers des lignes EMA à plusieurs périodes et réalise une gestion de position flexible en utilisant des signaux de prix à court terme. C'est une méthode qui combine le suivi des tendances avec le swing trading. Cependant, cette stratégie comporte également des problèmes tels que le retard, le trading fréquent et le manque de contrôle des risques, nécessitant une optimisation supplémentaire pour améliorer sa robustesse et sa rentabilité. En introduisant plus de dimensions de jugement des tendances, en ajustant dynamiquement les paramètres du signal, en incorporant des mécanismes de stop-loss et de prise de profit raisonnables et d'autres méthodes, cette stratégie peut être rendue plus complète et fiable.
/*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")