该策略使用三条不同周期的EMA均线(144日、34日和76日)来捕捉市场的中长期趋势,同时结合30日最高价和最低价的EMA均线作为短期多空信号,当收盘价突破短期多方信号时开多仓,突破短期空方信号时平仓。这种方法可以在把握市场主要趋势的同时,利用短期信号实现较为灵活的仓位管理。
EMA均线交叉与短期信号策略通过多周期EMA均线把握市场趋势,并利用短期价格信号实现灵活的仓位管理,是一种趋势跟踪与波段操作相结合的方法。但该策略也存在滞后、频繁交易和缺乏风控等问题,需要进一步优化以提升其稳健性和盈利能力。通过引入更多维度的趋势判断、动态调整信号参数、加入合理的止损止盈机制等方法,可以使该策略更加完善和可靠。
/*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")