Tài nguyên đang được tải lên... tải...

VWAP và RSI Dynamic Bollinger Bands lấy lợi nhuận và chiến lược dừng lỗ

Tác giả:ChaoZhang, Ngày: 2024-06-14 15:18:39
Tags:VWAPRSIBBATR

img

Tổng quan

Chiến lược này kết hợp ba chỉ số kỹ thuật: VWAP (Giá trung bình cân nhắc khối lượng), RSI (Chỉ số sức mạnh tương đối) và Bollinger Bands, để thực hiện một chiến lược giao dịch định lượng đơn giản và dễ sử dụng với lợi nhuận và dừng lỗ động. Ý tưởng chính của chiến lược là sử dụng chỉ số VWAP để xác định xu hướng giá trong một khoảng thời gian qua, trong khi sử dụng các chỉ số RSI và Bollinger Bands để xác định giá có nằm trong phạm vi mua quá nhiều hay bán quá nhiều, do đó xác định tín hiệu giao dịch.

Nguyên tắc chiến lược

  1. Tính toán các giá trị của các chỉ số kỹ thuật VWAP, RSI và Bollinger Bands.
  2. Xác định xem xu hướng giá có tăng, giảm hoặc đi ngang bằng cách đánh giá mối quan hệ giữa giá đóng và VWAP trong 15 cây nến gần đây.
  3. Nếu giá dưới Bollinger Band dưới, RSI là dưới 45, và tín hiệu VWAP cho thấy xu hướng giảm, tín hiệu dài được tạo ra; nếu giá trên Bollinger Band trên, RSI lớn hơn 55, và tín hiệu VWAP cho thấy xu hướng tăng, tín hiệu ngắn được tạo ra.
  4. Một khi tín hiệu giao dịch được xác định, chiến lược tính toán mức lợi nhuận và dừng lỗ dựa trên chỉ số ATR, với tỷ lệ lợi nhuận để dừng lỗ là 1,5:1.
  5. Nếu giữ một vị trí dài, khi RSI lớn hơn hoặc bằng 90, chiến lược đóng vị trí dài; nếu giữ một vị trí ngắn, khi RSI nhỏ hơn hoặc bằng 10, chiến lược đóng vị trí ngắn.

Ưu điểm chiến lược

  1. Bằng cách kết hợp nhiều chỉ số kỹ thuật, độ tin cậy của tín hiệu giao dịch được cải thiện.
  2. Việc sử dụng lợi nhuận động và dừng lỗ có thể kiểm soát rủi ro và khóa lợi nhuận một cách hiệu quả.
  3. Cấu trúc mã là rõ ràng và dễ hiểu và tối ưu hóa.
  4. Áp dụng cho các môi trường thị trường khác nhau, bao gồm cả xu hướng và thị trường bên.

Rủi ro chiến lược

  1. Trong thời điểm biến động thị trường cao, giao dịch thường xuyên có thể dẫn đến chi phí giao dịch cao.
  2. Nếu thị trường trải qua các sự kiện bất ngờ hoặc hành vi không hợp lý, chiến lược có thể tạo ra các tín hiệu giao dịch không chính xác.
  3. Các thiết lập tham số của chiến lược có thể cần phải được điều chỉnh theo môi trường thị trường khác nhau để đảm bảo hiệu quả của chiến lược.

Hướng dẫn tối ưu hóa chiến lược

  1. Cố gắng điều chỉnh các thiết lập tham số của VWAP, RSI và Bollinger Bands để thích nghi với môi trường thị trường và các công cụ giao dịch khác nhau.
  2. Đưa ra các chỉ số kỹ thuật khác, chẳng hạn như MACD, KDJ, v.v., để tiếp tục cải thiện độ tin cậy của tín hiệu giao dịch.
  3. Tối ưu hóa phương pháp tính toán lấy lợi nhuận và dừng lỗ, chẳng hạn như sử dụng dừng lỗ sau hoặc dừng lỗ bảo vệ lợi nhuận, để kiểm soát tốt hơn rủi ro và khóa lợi nhuận.
  4. Kết hợp phân tích cơ bản, chẳng hạn như dữ liệu kinh tế và thay đổi chính sách, để cải thiện hiệu suất tổng thể của chiến lược.

Tóm lại

Chiến lược này kết hợp ba chỉ số kỹ thuật: VWAP, RSI và Bollinger Bands, để thực hiện một chiến lược giao dịch định lượng đơn giản và dễ sử dụng. Chiến lược này sử dụng động lợi nhuận và dừng lỗ để kiểm soát hiệu quả rủi ro và khóa lợi nhuận. Mặc dù chiến lược có một số rủi ro tiềm ẩn, với các thiết lập tham số hợp lý và tối ưu hóa liên tục, người ta tin rằng chiến lược có thể đạt được kết quả tốt trong giao dịch thực tế.


/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VWAP and RSI Strategy", overlay=true)

// VWAP calculation
vwap = ta.vwap(close)

// RSI calculation
rsi_length = 16
rsi = ta.rsi(close, rsi_length)

// Bollinger Bands calculation
bb_length = 14
bb_std = 2.0
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_std)

// Variables for VWAP signal calculation
backcandles = 15
float vwapsignal = na

// Function to check if last 15 candles are above or below VWAP
calc_vwapsignal(backcandles) =>
    upt = true
    dnt = true
    for i = 0 to backcandles - 1
        if close[i] < vwap[i]
            upt := false
        if close[i] > vwap[i]
            dnt := false
    if upt and dnt
        3
    else if upt
        2
    else if dnt
        1
    else
        0

// Calculate VWAP signal for each bar
vwapsignal := calc_vwapsignal(backcandles)

// Calculate total signal
totalsignal = 0
if vwapsignal == 2 and close <= bb_lower and rsi < 45
    totalsignal := 2
else if vwapsignal == 1 and close >= bb_upper and rsi > 55
    totalsignal := 1



// Define strategy entry and exit conditions
slatr = 1.2 * ta.atr(7)
TPSLRatio = 1.5

if (totalsignal == 2 and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long, stop=close - slatr, limit=close + slatr * TPSLRatio)

if (totalsignal == 1 and strategy.opentrades == 0)
    strategy.entry("Short", strategy.short, stop=close + slatr, limit=close - slatr * TPSLRatio)

// Additional exit conditions based on RSI
if (strategy.opentrades > 0)
    if (strategy.position_size > 0 and rsi >= 90)
        strategy.close("Long")
    if (strategy.position_size < 0 and rsi <= 10)
        strategy.close("Short")


Có liên quan

Thêm nữa