Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên các tín hiệu chéo của Mức trung bình chuyển động theo cấp số (EMA) 9 ngày và 20 ngày. Nó nắm bắt sự đảo ngược xu hướng thị trường bằng cách theo dõi mối quan hệ chéo giữa EMA nhanh (9 ngày) và EMA chậm (20 ngày). Chiến lược sử dụng giao dịch theo chương trình để đạt được hoạt động hoàn toàn tự động, tránh hiệu quả sự can thiệp cảm xúc của con người.
Lòng cốt của chiến lược sử dụng hai EMA với các khoảng thời gian khác nhau để xác định hướng xu hướng và điểm chuyển đổi. Khi EMA 9 ngày vượt qua trên EMA 20 ngày, hệ thống tạo ra một tín hiệu dài; khi EMA 9 ngày vượt qua dưới EMA 20 ngày, hệ thống tạo ra một tín hiệu ngắn. EMA gán trọng lượng lớn hơn cho giá gần đây, cho phép phản ứng nhanh chóng với những thay đổi giá và bắt kịp sự đảo ngược xu hướng.
Chiến lược này là một hệ thống theo xu hướng cổ điển nắm bắt các cơ hội đảo ngược xu hướng thông qua các đường chéo EMA. Lý thuyết chiến lược đơn giản và rõ ràng, giúp dễ hiểu và thực hiện. Tuy nhiên, đối với giao dịch trực tiếp, nên kết hợp nó với các chỉ số kỹ thuật khác và các phương pháp quản lý tiền để cải thiện hơn nữa hệ thống giao dịch. Ngoài ra, tối ưu hóa các tham số theo các đặc điểm thị trường khác nhau có thể tăng tính thực tế của chiến lược.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with Buttons", overlay=true) // Input parameters for EMAs shortEmaLength = input(9, title="Short EMA Length") longEmaLength = input(20, 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="20 EMA") // Buy and Sell Logic longCondition = ta.crossover(shortEma, longEma) shortCondition = ta.crossunder(shortEma, longEma) // Buy Button if (ta.change(longCondition)) if (longCondition) strategy.entry("Buy", strategy.long) // Sell Button if (ta.change(shortCondition)) if (shortCondition) strategy.entry("Sell", strategy.short) // Alert Conditions alertcondition(longCondition, title="Buy Alert", message="Buy Signal") alertcondition(shortCondition, title="Sell Alert", message="Sell Signal")