
Đây là một chiến lược giao dịch định lượng dựa trên chỉ số EMA để đưa ra quyết định giao dịch bằng cách tính các tín hiệu chéo của các chỉ số chuyển động trung bình ngắn hạn (thời kỳ 9) và dài hạn (thời kỳ 21) ¦ Chiến lược đặt điều kiện dừng lỗ và dừng lại, lần lượt là 2% và 4%, để kiểm soát rủi ro và khóa lợi nhuận. Ý tưởng cốt lõi của chiến lược này là sử dụng các điểm chuyển đổi của xu hướng thị trường để mua và bán khi xu hướng thị trường thay đổi.
Chiến lược sử dụng hai chu kỳ khác nhau của đường trung bình di chuyển chỉ số (EMA), lần lượt là chu kỳ 9 và chu kỳ 21. Khi EMA ngắn hạn đi lên vượt qua EMA dài hạn, nó tạo ra tín hiệu mua; Khi EMA ngắn hạn đi xuống vượt qua EMA dài hạn, nó tạo ra tín hiệu bán. Chiến lược cũng bao gồm cơ chế quản lý rủi ro để bảo vệ an toàn và khóa lợi nhuận bằng cách thiết lập điểm dừng 2% và 4% để bảo vệ tài sản.
Chiến lược này là một chiến lược theo dõi xu hướng cổ điển, nắm bắt các thay đổi trong xu hướng thị trường bằng cách giao chéo bằng đường thẳng. Mặc dù thiết kế của chiến lược tương đối đơn giản, nhưng nó bao gồm logic giao dịch và cơ chế kiểm soát rủi ro đầy đủ.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ancour
//@version=5
strategy("Moving Average Crossover", overlay=true)
// Define the length for short-term and long-term EMAs
shortEmaLength = 9
longEmaLength = 21
// Calculate EMAs
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
// Plot EMAs on the chart
plot(shortEma, title="Short-term EMA", color=color.green, linewidth=2)
plot(longEma, title="Long-term EMA", color=color.red, linewidth=2)
// Strategy conditions for crossovers
longCondition = ta.crossover(shortEma, longEma)
shortCondition = ta.crossunder(shortEma, longEma)
// Enter long when short EMA crosses above long EMA
if (longCondition)
strategy.entry("Buy", strategy.long)
// Exit long or enter short when short EMA crosses below long EMA
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Optional: Add stop-loss and take-profit levels for risk management
stopLossPercent = 2
takeProfitPercent = 4
strategy.exit("Sell TP/SL", "Buy", stop=low * (1 - stopLossPercent/100), limit=high * (1 + takeProfitPercent/100))