Đây là một chiến lược theo xu hướng dựa trên các tín hiệu chéo trung bình chuyển động nhân tố (EMA) ba lần. Chiến lược kết hợp các EMA 9 giai đoạn, 15 giai đoạn và 50 giai đoạn, sử dụng các tín hiệu chéo giữa EMA ngắn hạn và trung hạn trong khi sử dụng EMA dài hạn như một bộ lọc xu hướng, cùng với các cơ chế dừng lỗ và lấy lợi nhuận năng động để quản lý rủi ro.
Lý thuyết cốt lõi dựa trên việc theo dõi các tín hiệu chéo giữa các EMA 9 giai đoạn và 15 giai đoạn trong khi sử dụng EMA 50 giai đoạn như một chỉ số xác nhận xu hướng.
Đây là một chiến lược theo dõi xu hướng được thiết kế tốt với logic rõ ràng. Sự kết hợp của nhiều EMA đảm bảo độ tin cậy tín hiệu trong khi đạt được xu hướng theo dõi hiệu quả. Các cơ chế quản lý rủi ro tích hợp cung cấp sự ổn định cho hoạt động chiến lược. Thông qua các hướng tối ưu hóa được đề xuất, có chỗ để cải thiện hơn nữa. Chiến lược này phù hợp với các nhà giao dịch tìm kiếm lợi nhuận ổn định, nhưng đòi hỏi kiểm tra kỹ lưỡng và tối ưu hóa tham số cho các đặc điểm thị trường cụ thể trước khi thực hiện.
/*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"}] */ //@version=5 strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true) // Customizable Inputs ema9Length = input(9, title="EMA 9 Length") ema15Length = input(15, title="EMA 15 Length") ema50Length = input(50, title="EMA 50 Length") stopLossPoints = input(100, title="Stop Loss Points") takeProfitPoints = input(200, title="Take Profit Points") // Calculate EMAs ema9 = ta.ema(close, ema9Length) ema15 = ta.ema(close, ema15Length) ema50 = ta.ema(close, ema50Length) // Detect crossovers crossover_above = ta.crossover(ema9, ema15) crossover_below = ta.crossunder(ema9, ema15) // Plot EMAs plot(ema9, color=color.blue, title="EMA 9") plot(ema15, color=color.red, title="EMA 15") // Make the 50 EMA invisible plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none) // Plot buy and sell signals as shapes plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Execute trades if (crossover_above and close > ema50) strategy.entry("Buy", strategy.long) if (crossover_below and close < ema50) strategy.close("Buy") // Apply stop loss and take profit if (crossover_above and close > ema50) strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints) // Alerts for notifications if (crossover_above and close > ema50) alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close) if (crossover_below and close < ema50) alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)