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). Bằng cách sử dụng nhiều chỉ số kỹ thuật, chiến lược nắm bắt sự thay đổi động lực thị trường tại các điểm đảo ngược xu hướng để tạo ra tín hiệu giao dịch. Hệ thống sử dụng WMA và EMA chéo để xác nhận hướng xu hướng trong khi kết hợp RSI để lọc điều kiện thị trường để cải thiện độ chính xác giao dịch.
Logic cốt lõi của chiến lược dựa trên các yếu tố chính sau: 1. Tính toán RSI sử dụng một thiết lập 14 giai đoạn để đo điều kiện mua quá mức / bán quá mức trên thị trường 2. WMA 45 giai đoạn và EMA 89 giai đoạn chéo xác nhận chuyển đổi xu hướng Điều kiện nhập cảnh: - Tín hiệu dài: WMA vượt trên EMA và RSI<50 - Tín hiệu ngắn: WMA vượt dưới EMA và RSI>50 Hệ thống hình dung các điều kiện thị trường thông qua các thay đổi màu sắc RSI, hiển thị màu xanh lá cây khi RSI> 70 và màu đỏ khi RSI < 30 5. nền màu xanh được đặt trong phạm vi RSI 30-70 để giúp xác định các vùng trung lập
Đây là một chiến lược theo xu hướng dựa trên nhiều chỉ số kỹ thuật, kết hợp RSI, WMA và EMA để nắm bắt các điểm đảo ngược xu hướng thị trường trong khi duy trì sự ổn định giao dịch.
/*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) // RSI Color Logic rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=rsiColor) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Highlight RSI Area between 30 and 70 bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na) // 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) alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar) if (shortCondition) strategy.entry("Short", strategy.short) alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar) // 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")