Chiến lược kết hợp VWAP và RSI

Tác giả:ChaoZhang, Ngày: 2024-01-23 14:37:22
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Chiến lược kết hợp giá trung bình cân nhắc giá trị và chỉ số sức mạnh tương đối. Nó sử dụng các chỉ số giá trung bình cân nhắc giá trị (VWAP) và chỉ số sức mạnh tương đối (RSI) để thực hiện một chiến lược kết hợp xu hướng sau khi nhập và mua quá mức bán quá mức.

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

Lý thuyết chính của chiến lược này dựa trên các điểm sau:

  1. Sử dụng đường trung bình chuyển động theo hàm số 50 ngày vượt qua đường 200 ngày như một tín hiệu cho thấy xu hướng thị trường đang tăng.
  2. Khi giá đóng cửa cao hơn giá VWAP trong ngày và giá đóng cửa cao hơn giá mở cửa, nó được coi là thị trường đang tăng mạnh và có thể tham gia thị trường.
  3. Nếu chỉ số RSI trên ít nhất một trong 10 đường K trước đó thấp hơn 10, nó được coi là một hình thành bán quá mức và tín hiệu nhập cảnh mạnh.
  4. Khi chỉ số RSI vượt qua khu vực mua quá mức 90 một lần nữa, thoát khỏi thị trường.
  5. Thiết lập một mức dừng lỗ 5% để tránh mất mát quá mức.

Điều trên là logic giao dịch cơ bản của chiến lược này. EMA đánh giá xu hướng lớn, VWAP đánh giá xu hướng hàng ngày, RSI đánh giá khu vực mua quá nhiều và bán quá nhiều để đạt được sự kết hợp hiệu quả của nhiều chỉ số, đảm bảo hướng giao dịch chính đúng trong khi tăng tín hiệu vào và ra.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là việc sử dụng kết hợp các chỉ số. VWAP duy nhất không thể hoàn toàn đối phó với tất cả các điều kiện thị trường. Tại thời điểm này, với sự giúp đỡ của RSI, một số cơ hội vượt qua bán tháo ngắn hạn có thể được xác định. Ngoài ra, việc áp dụng EMA cũng đảm bảo rằng chỉ có xu hướng tăng theo chu kỳ dài được chọn, tránh bị mắc kẹt bởi sự đảo ngược ngắn hạn.

Cách sử dụng các chỉ số kết hợp này cũng làm tăng sự ổn định của chiến lược. Trong trường hợp có một hoặc hai đột phá sai của RSI, vẫn có VWAP và EMA để sao lưu, và không có khả năng thực hiện các giao dịch sai. Tương tự, khi VWAP có đột phá sai, cũng có xác nhận từ các chỉ số RSI. Do đó, việc sử dụng sự kết hợp này cải thiện đáng kể tỷ lệ thành công của việc thực hiện chiến lược.

Phân tích rủi ro

Rủi ro chính của chiến lược này nằm trong việc sử dụng chỉ số VWAP. VWAP đại diện cho giá giao dịch trung bình của ngày, nhưng không phải mỗi ngày biến động giá dao động xung quanh VWAP. Do đó, tín hiệu đột phá VWAP không nhất thiết đảm bảo rằng giá có thể tiếp tục vượt qua sau đó.

Ngoài ra, các chỉ số RSI có xu hướng có sự khác biệt. Khi thị trường đang trong giai đoạn củng cố sốc, chỉ số RSI có thể liên tục chạm vào các vùng mua quá mức và bán quá mức nhiều lần, dẫn đến việc phát ra các tín hiệu giao dịch thường xuyên.

Để giải quyết vấn đề này, chúng tôi sử dụng EMA chỉ số trung bình động như là một phán đoán chu kỳ lớn trong chiến lược, chỉ xem xét giao dịch khi chu kỳ lớn tăng, có thể làm giảm tác động của hai vấn đề trên trên chiến lược đến một mức độ nào đó.

Hướng tối ưu hóa

Vẫn còn chỗ để tối ưu hóa thêm chiến lược này, chủ yếu trong các khía cạnh sau:

  1. Giới thiệu nhiều chỉ số để kết hợp. chẳng hạn như đường Kalman, băng Bollinger, vv, để làm cho tín hiệu giao dịch rõ ràng hơn và đáng tin cậy hơn.

  2. Tối ưu hóa chi phí giao dịch. Chiến lược hiện tại không xem xét tác động của phí và hoa hồng. Nó có thể được kết hợp với các tài khoản giao dịch thực để tối ưu hóa kích thước của số lượng các vị trí mở.

  3. Điều chỉnh mô hình dừng lỗ. Phương pháp dừng lỗ hiện có tương đối đơn giản và không thể phù hợp hoàn hảo với những thay đổi của thị trường.

  4. Kiểm tra hiệu ứng ứng dụng của các loại khác nhau. Hiện nay chỉ được thử nghiệm trên chỉ số S & P 500 và Nasdaq. Phạm vi mẫu có thể được mở rộng để tìm các loại phù hợp nhất với chiến lược này.

Tóm lại

Chiến lược này tích hợp các lợi thế của các chỉ số EMA, VWAP và RSI để đạt được sự kết hợp hiệu quả của việc theo dõi xu hướng và tín hiệu mua quá mức, có thể tìm thấy cơ hội nhập cảnh hợp lý cả trong các chu kỳ tăng lớn và điều chỉnh ngắn hạn.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
strategy(title="VWAP and RSI strategy [EEMANI]", overlay=false)
//This strategy combines VWAP and RSI indicators
//BUY RULE
//1. EMA50 > EMA 200
//2. if current close > vwap session  value and  close>open   
//3. check if RSI3 is dipped below 10  for any of last 10 candles
//EXIT RULE
//1. RSI3   crossing down 90 level
//STOP LOSS EXIT
//1. As configured --- default is set to 5%


// variables  BEGIN

longEMA = input(200, title="Long EMA", minval=1)
shortEMA = input(50, title="short EMA", minval=1)

rsi1 = input(3,title="RSI Period", minval=1)
rsi_buy_line = input(10,title="RSI Buy Line", minval=5)
rsi_sell_line = input(90,title="RSI Sell Line", minval=50)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)

//variables  END




longEMAval= ema(close, longEMA)
shortEMAval= ema(close, shortEMA)
rsiVal=rsi(close,rsi1)
vwapVal=vwap(hlc3)


// Drawings

plot_rsi = plot(rsiVal, title="RSI", color=color.purple, linewidth=1)
//plot_fill = plot(0, color=color.green, editable=false)
//fill(plot_rsi, plot_fill, title="Oscillator Fill", color=color.blue, transp=75) 
hline(rsi_buy_line, color=color.green, title="Buy Line", linewidth=2, linestyle=hline.style_dashed)
hline(rsi_sell_line, color=color.purple, title="Sell Line", linewidth=2, linestyle=hline.style_dashed)
//plot(value_ma, title="MA", color=color_ma, linewidth=2)

longCondition=  shortEMAval > longEMAval and  close>open and  close>vwapVal
rsiDipped =  rsiVal[1]<rsi_buy_line or rsiVal[2]<rsi_buy_line or rsiVal[3]<rsi_buy_line  or rsiVal[4]<rsi_buy_line  or rsiVal[5]<rsi_buy_line  or rsiVal[6]<rsi_buy_line or rsiVal[7]<rsi_buy_line  or rsiVal[8]<rsi_buy_line  or rsiVal[9]<rsi_buy_line  or rsiVal[10]<rsi_buy_line  

//Entry
strategy.entry(id="VWAP_RSI LE", comment="VR LE" , long=true,  when= longCondition and rsiDipped )

//Take profit Exit
strategy.close(id="VWAP_RSI LE", comment="TP Exit",   when=crossunder(rsiVal,90) )


//stoploss
stopLossVal =   strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01) 
strategy.close(id="VWAP_RSI LE", comment="SL Exit",   when= close < stopLossVal)



Thêm nữa