VWAP EMA RSI xu hướng theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-09-13 14:37:47
Tags:

Chiến lược này kết hợp VWAP, EMA và RSI để thiên vị xu hướng và theo xu hướng bằng cách sử dụng cách tiếp cận dừng lại.

Chiến lược logic:

  1. Xét VWAP làm tiêu chuẩn giá trị hợp lý.

  2. Tính toán EMA 15 giai đoạn như chỉ số xu hướng trung hạn.

  3. Sử dụng chỉ số RSI để xác định mức mua quá mức, chỉ số RSI trên ngưỡng báo hiệu tăng.

  4. Nhập dài khi đóng vượt quá VWAP và EMA, và RSI mua quá mức.

  5. Đặt đường dừng lỗ phía sau một tỷ lệ nhất định dưới điểm nhập cảnh.

  6. Lấy lợi nhuận cố định ở mức điểm đặt để khóa trong lợi nhuận.

Ưu điểm:

  1. VWAP, EMA và RSI cải thiện độ chính xác nhập từ nhiều khía cạnh.

  2. Trailing stop di chuyển năng động để bảo vệ lợi nhuận.

  3. Lợi nhuận cố định cung cấp sự chắc chắn trong việc rời khỏi.

Rủi ro:

  1. RSI và EMA dễ bị tín hiệu sai trong phạm vi.

  2. Định chuẩn stop loss đòi hỏi sự thận trọng, quá rộng hoặc quá hẹp có vấn đề.

  3. Không giới hạn về kích thước lỗ giao dịch duy nhất.

Tóm lại, chiến lược này kết hợp nhiều chỉ số và sử dụng một điểm dừng để theo xu hướng. Nó hoạt động tốt trong xu hướng bền vững nhưng đòi hỏi tối ưu hóa và kiểm soát rủi ro.


/*backtest
start: 2022-09-12 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VWAP+15EMA with RSI", overlay=true)

// Inputs
ema_length = input.int(15, title="EMA Length")
rsi_length = input.int(14, title="RSI Length")
rsi_overbought = input.int(45, title="RSI Overbought Level")
stop_loss_pct = input.float(0.5, title="Stop Loss %")
take_profit_pct = input.float(3.5, title="Take Profit %")
trailing_stop_pct = input.float(1, title="Trailing Stop %")

// Calculate Indicators
vwap = ta.vwap(hlc3)
ema = ta.ema(close, ema_length)
rsi = ta.rsi(close, rsi_length)

// Entry Condition
long_entry = close > vwap and close > ema and rsi > rsi_overbought

// Exit Conditions
stop_loss = strategy.position_avg_price * (1 - stop_loss_pct / 100)
take_profit = strategy.position_avg_price * (1 + take_profit_pct / 100)
trailing_stop = strategy.position_avg_price * (1 - trailing_stop_pct / 100)

// Submit Orders
if long_entry and strategy.position_size == 0
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0
    strategy.exit("Stop Loss /Profit", "Long", profit = take_profit, stop=stop_loss, trail_offset = trailing_stop)


// Plot Indicators
plot(vwap, title="VWAP", color=color.blue)
plot(ema, title="EMA", color=color.orange)
plot(rsi, title="RSI", color=color.purple)
hline(rsi_overbought, title="RSI Overbought", color=color.red)


Thêm nữa