
Chiến lược này là một hệ thống giao dịch định lượng dựa trên sự giao thoa của các đường trung bình di chuyển của chỉ số kép ((EMA)). Nó sử dụng sự giao thoa của các đường EMA ngắn (14 chu kỳ) và đường EMA dài (100 chu kỳ) để nắm bắt các điểm chuyển đổi của xu hướng thị trường và xác định thời gian vào bằng cách đánh giá vị trí giao thoa của đường trung bình ngắn hạn và đường trung bình dài hạn.
Logic cốt lõi của chiến lược được xây dựng trên sự thay đổi động lực của xu hướng giá. EMA ngắn hạn nhạy cảm hơn với sự thay đổi giá, trong khi EMA dài hạn có thể lọc tiếng ồn thị trường tốt hơn, phản ánh xu hướng chính. Khi động lực giá ngắn hạn vượt qua đường trung bình ngắn hạn, cho thấy động lực giá ngắn hạn tăng lên, thị trường có thể bắt đầu đi vào xu hướng tăng; Khi động lực ngắn hạn vượt qua đường trung bình ngắn hạn dưới đường trung bình dài hạn, cho thấy động lực ngắn hạn suy yếu, thị trường có thể chuyển sang xu hướng giảm.
Chiến lược định lượng nhập cảnh động EMA là một hệ thống theo dõi xu hướng cổ điển và thực tế. Bằng cách kết hợp các chỉ số chuyển động trung bình ngắn hạn và dài hạn, chiến lược này có thể nắm bắt tốt hơn các cơ hội chuyển đổi xu hướng thị trường. Mặc dù có một số rủi ro về sự chậm trễ và tín hiệu giả, nhưng vẫn có thể đạt được hiệu quả giao dịch ổn định bằng các biện pháp kiểm soát rủi ro và tối ưu hóa tham số thích hợp.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy", overlay=true)
// Input for EMAs
shortEmaLength = input(14, title="Short EMA Length")
longEmaLength = input(100, title="Long EMA Length")
// Calculate EMAs
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
// Plot EMAs
plot(shortEma, color=color.blue, title="9 EMA")
plot(longEma, color=color.red, title="100 EMA")
// Historical Signal Tracking
var float lastBuyPrice = na
var float lastSellPrice = na
// Buy and Sell Signals
buySignal = ta.crossover(shortEma, longEma)
sellSignal = ta.crossunder(shortEma, longEma)
// Track last buy and sell prices
if (buySignal)
lastBuyPrice := close
if (sellSignal)
lastSellPrice := close
// Plot buy and sell signals on the chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Logic
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.close("Buy")