
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên nhiều chỉ số moving average (EMA) và moving average (SMMA). Nó sử dụng các giao dịch ngắn hạn và dài hạn để tạo ra tín hiệu giao dịch, đồng thời sử dụng SMMA làm chỉ số xác nhận xu hướng và giới thiệu các đường EMA bổ sung để tham khảo các vị trí hỗ trợ và kháng cự. Phương pháp này có thể nắm bắt xu hướng thị trường và kiểm soát hiệu quả rủi ro của phá vỡ giả.
Chiến lược này sử dụng EMA 10 và 22 ngày làm đường tín hiệu chính, SMMA 200 ngày làm bộ lọc xu hướng, đồng thời kết hợp với EMA 50, 100 và 200 ngày làm phán đoán phụ. Khi EMA ngắn hạn đi lên vượt qua EMA dài và giá nằm trên SMMA, hệ thống tạo ra nhiều tín hiệu; khi EMA ngắn hạn đi xuống vượt qua EMA dài và giá nằm dưới SMMA, hệ thống tạo ra tín hiệu trống.
Đây là một chiến lược theo dõi xu hướng kết hợp nhiều hệ thống đường trung bình, thông qua việc sử dụng các đường trung bình khác nhau theo chu kỳ, có thể nắm bắt xu hướng và kiểm soát rủi ro. Ưu điểm cốt lõi của chiến lược là cơ chế xác nhận nhiều lần, nhưng cũng cần chú ý đến hoạt động trong thị trường xung đột.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with SMMA and Additional EMAs", overlay=true)
// Input parameters for EMAs and SMMA
emaShortLength = input.int(10, title="Short EMA Length")
emaLongLength = input.int(22, title="Long EMA Length")
smmaLength = input.int(200, title="SMMA Length")
// Additional EMA lengths
ema1Length = input.int(50, title="EMA 1 Length")
ema2Length = input.int(100, title="EMA 2 Length")
ema3Length = input.int(200, title="EMA 3 Length")
// Calculate EMAs and SMMA
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
smma = ta.sma(ta.sma(close, smmaLength), 2) // SMMA approximation
ema1 = ta.ema(close, ema1Length)
ema2 = ta.ema(close, ema2Length)
ema3 = ta.ema(close, ema3Length)
// Plot EMAs and SMMA on the chart
plot(emaShort, color=color.blue, linewidth=2, title="Short EMA")
plot(emaLong, color=color.red, linewidth=2, title="Long EMA")
plot(smma, color=color.white, linewidth=2, title="SMMA")
plot(ema1, color=color.green, linewidth=1, title="EMA 1")
plot(ema2, color=color.purple, linewidth=1, title="EMA 2")
plot(ema3, color=color.yellow, linewidth=1, title="EMA 3")
// Buy condition: Short EMA crosses above Long EMA and price is above SMMA
buyCondition = ta.crossover(emaShort, emaLong) and close > smma
// Sell condition: Short EMA crosses below Long EMA and price is below SMMA
sellCondition = ta.crossunder(emaShort, emaLong) and close < smma
// Execute Buy order
if (buyCondition)
strategy.entry("Buy", strategy.long)
alert("Buy Signal: Short EMA crossed above Long EMA and price is above SMMA.", alert.freq_once_per_bar_close)
// Execute Sell order
if (sellCondition)
strategy.entry("Sell", strategy.short)
alert("Sell Signal: Short EMA crossed below Long EMA and price is below SMMA.", alert.freq_once_per_bar_close)