Chiến lược này là một hệ thống giao dịch theo xu hướng kết hợp Chỉ số Sức mạnh Tương đối (RSI), Trung bình Di chuyển Tường trọng (WMA) và Trung bình Di chuyển Tăng (EMA). Chiến lược xác định sự thay đổi xu hướng thị trường bằng cách theo dõi mức RSI và giao thoa giữa WMA và EMA để tạo ra tín hiệu mua và bán. Phương pháp kết hợp này xem xét cả điều kiện mua quá mức / bán quá mức thị trường và phán đoán xu hướng từ các đường trung bình di chuyển khác nhau, cho phép nắm bắt chính xác hơn các điểm chuyển đổi của thị trường.
Logic cốt lõi của chiến lược dựa trên các yếu tố chính sau: 1. Sử dụng chỉ số RSI 14 giai đoạn để tính toán các điều kiện mua/bán quá mức trên thị trường 2. Tính toán WMA 45 giai đoạn và EMA 89 giai đoạn Điều kiện nhập cảnh: - Tín hiệu dài: Khi RSI dưới 50 và WMA vượt trên EMA - Tín hiệu ngắn: Khi RSI trên 50 và WMA vượt dưới EMA 4. Chiến lược sử dụng chức năng ta.rma để tính toán RSI mượt mà, cải thiện sự ổn định tín hiệu 5. Sử dụng chức năng đồ thị để đánh dấu điểm mua / bán trên biểu đồ để đánh giá trực quan
Chiến lược này xây dựng một hệ thống theo xu hướng tương đối hoàn chỉnh bằng cách kết hợp các chỉ số RSI, WMA và EMA. Ưu điểm cốt lõi của nó nằm ở độ tin cậy tín hiệu và khả năng kiểm soát rủi ro, trong khi phải chú ý đến rủi ro tín hiệu sai trong các thị trường khác nhau. Thông qua các biện pháp tối ưu hóa như thêm lọc biến động và xác nhận sức mạnh xu hướng, sự ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa. Nhìn chung, đây là một chiến lược giao dịch có giá trị thực tế, đặc biệt phù hợp với các nhà giao dịch xu hướng trung và dài hạn.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true) // RSI Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") // WMA and EMA Settings wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings") wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings") emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings") emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // WMA and EMA Calculation wma = ta.wma(rsi, wmaLengthInput) ema = ta.ema(rsi, emaLengthInput) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=#7E57C2) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Entry and Exit Conditions longCondition = ta.crossover(wma, ema) and rsi < 50 shortCondition = ta.crossunder(wma, ema) and rsi > 50 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Plot Buy/Sell Signals on Chart plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")