Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên nhiều đường trung bình chuyển động biểu thức (EMA) và đường trung bình chuyển động trơn (SMMA). Nó tạo ra các tín hiệu giao dịch thông qua sự chéo chéo giữa đường trung bình chuyển động ngắn hạn và dài hạn, sử dụng SMMA như một chỉ số xác nhận xu hướng và kết hợp các đường EMA bổ sung như các tham chiếu hỗ trợ và kháng cự. Cách tiếp cận này cho phép nắm bắt xu hướng và kiểm soát hiệu quả rủi ro đột phá sai.
Chiến lược này sử dụng EMA 10 ngày 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, cùng với EMA 50 ngày, 100 ngày và 200 ngày làm chỉ số phụ trợ. Một tín hiệu mua được tạo ra khi EMA ngắn hạn vượt qua EMA dài hạn và giá trên SMMA; một tín hiệu bán được tạo ra khi EMA ngắn hạn vượt qua EMA dài hạn và giá dưới SMMA. Ba đường EMA bổ sung cung cấp các điểm tham chiếu hỗ trợ kỹ thuật và kháng cự bổ sung.
Đây là một chiến lược theo dõi xu hướng tích hợp nhiều hệ thống trung bình động, nắm bắt xu hướng trong khi kiểm soát rủi ro thông qua việc sử dụng phối hợp các đường trung bình động theo thời gian khác nhau. Sức mạnh cốt lõi của chiến lược nằm trong cơ chế xác nhận nhiều, mặc dù phải chú ý đến hiệu suất của nó trong các thị trường dao động. Thông qua tối ưu hóa tham số thích hợp và quản lý rủi ro, chiến lược này có thể đạt được kết quả tốt trong các thị trường xu hướng.
/*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)