RSI-VWAP Chiến lược lượng ngắn hạn

Tác giả:ChaoZhang, Ngày: 2024-01-19 14:21:15
Tags:

img

Tổng quan

Chiến lược này được gọi là Chiến lược ngắn hạn RSI-VWAP. Nó sử dụng chỉ số RSI và Giá trung bình cân nhắc khối lượng (VWAP) làm chỉ số kỹ thuật để tạo ra các tín hiệu dài và ngắn và do đó đưa ra quyết định mua và bán. Chiến lược nhằm mục đích nắm bắt hiện tượng mua quá mức và bán quá mức trong thị trường ngắn hạn để đạt được lợi nhuận dư thừa.

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

  1. Sử dụng chỉ số RSI để xác định xem thị trường có mua quá mức hay bán quá mức không.
  2. Chỉ số RSI sử dụng VWAP thay vì giá đóng như dữ liệu nguồn.
  3. Một tín hiệu mua được tạo ra khi chỉ số RSI vượt qua 20 từ khu vực quá bán. Một tín hiệu bán được tạo ra khi chỉ số RSI vượt qua 80 từ khu vực quá mua.
  4. Chiến lược này chỉ đi dài và không đi ngắn. nghĩa là chỉ mua trong quá bán và bán trong quá mua.

Phân tích lợi thế

  1. Sử dụng VWAP như là nguồn dữ liệu cho RSI làm cho chỉ số RSI đánh giá thị trường chính xác hơn, tránh bị lừa dối bởi các đột phá sai.
  2. Chỉ đi dài sẽ làm giảm tần suất giao dịch và giúp đạt được lợi nhuận ổn định lâu dài.
  3. Các thông số RSI là 17, phù hợp với các hoạt động ngắn hạn.
  4. Phương pháp giao dịch tần số thấp dự kiến ít giao dịch hơn, giảm chi phí giao dịch và giúp đạt được tỷ lệ lợi nhuận cao hơn.

Phân tích rủi ro

  1. Có nguy cơ quá phù hợp trong kiểm tra hậu quả chiến lược lượng và kết quả thực tế có thể khác với kiểm tra hậu quả.
  2. Không thể nắm bắt cơ hội trong xu hướng giảm chỉ bằng cách đi dài.
  3. Các tiêu chí mua quá mức và bán quá mức có thể không phù hợp với tất cả các sản phẩm, các tham số cần phải được điều chỉnh cho các sản phẩm khác nhau.
  4. Bất kỳ chỉ số kỹ thuật nào cũng có thể tạo ra tín hiệu sai và không thể tránh hoàn toàn tổn thất.

Các rủi ro có thể được giảm bớt bằng cách nới lỏng các tiêu chí mua quá mức và bán quá mức, kết hợp các chỉ số khác để xác nhận tín hiệu, điều chỉnh phạm vi tham số, v.v.

Hướng dẫn tối ưu hóa

  1. Kiểm tra tác động của các thông số khác nhau đối với hiệu suất chiến lược và tối ưu hóa chiều dài RSI và ngưỡng mua quá mức / bán quá mức.
  2. Thêm các chiến lược dừng lỗ để khóa một số lợi nhuận thông qua dừng lỗ di chuyển, dừng lỗ thời gian vv, giảm rút tiền.
  3. Bộ lọc tín hiệu bằng cách kết hợp các chỉ số khác để cải thiện độ chính xác tín hiệu.
  4. Đặt phạm vi tham số độc lập theo đặc điểm của các sản phẩm khác nhau để chiến lược có thể phù hợp hơn với các sản phẩm khác nhau.

Kết luận

Nhìn chung đây là một chiến lược ngắn hạn đơn giản và thực tế. Sử dụng VWAP làm cho đánh giá RSI chính xác hơn, chỉ đi dài làm giảm tần suất giao dịch. Ý tưởng chiến lược rõ ràng và dễ hiểu và thực hiện, phù hợp với người mới bắt đầu giao dịch lượng. Nhưng bất kỳ chiến lược chỉ số duy nhất nào cũng khó có thể hoàn hảo và cần tối ưu hóa liên tục để có hiệu suất giao dịch trực tiếp tốt hơn.


/*backtest
start: 2023-12-19 00:00:00
end: 2024-01-18 00:00:00
period: 1h
basePeriod: 15m
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/
// © Xaviz

//#####©ÉÉÉɶN###############################################
//####*..´´´´´´,,,»ëN########################################
//###ë..´´´´´´,,,,,,''%©#####################################
//###'´´´´´´,,,,,,,'''''?¶###################################
//##o´´´´´´,,,,,,,''''''''*©#################################
//##'´´´´´,,,,,,,'''''''^^^~±################################
//#±´´´´´,,,,,,,''''''''^í/;~*©####æ%;í»~~~~;==I±N###########
//#»´´´´,,,,,,'''''''''^;////;»¶X/í~~/~~~;=~~~~~~~~*¶########
//#'´´´,,,,,,''''''''^^;////;%I^~/~~/~~~=~~~;=?;~~~~;?ë######
//©´´,,,,,,,''''''''^^~/////X~/~~/~~/~~»í~~=~~~~~~~~~~^;É####
//¶´,,,,,,,''''''''^^^;///;%;~/~~;í~~»~í?~?~~~?I/~~~~?*=íÑ###
//N,,,,,,,'''''''^^^^^///;;o/~~;;~~;£=»í»;IX/=~~~~~~^^^^'*æ##
//#í,,,,,''''''''^^^^^;;;;;o~»~~~~íX//~/»~;í?IíI»~~^/*?'''=N#
//#%,,,'''''''''^^^^^^í;;;;£;~~~//»I»/£X/X/»í*&~~~^^^^'^*~'É#
//#©,,''''''''^^^^^^^^~;;;;&/~/////*X;í;o*í»~=*?*===^'''''*£#
//##&''''''''^^^^^^^^^^~;;;;X=í~~~»;;;/~;í»~»±;^^^^^';=''''É#
//##N^''''''^^^^^^^^^^~~~;;;;/£;~~/»~~»~~///o~~^^^^''''?^',æ#
//###Ñ''''^^^^^^^^^^^~~~~~;;;;;í*X*í»;~~IX?~~^^^^/?'''''=,=##
//####X'''^^^^^^^^^^~~~~~~~~;;íííííí~~í*=~~~~Ií^'''=''''^»©##
//#####£^^^^^^^^^^^~~~~~~~~~~~íííííí~~~~~*~^^^;/''''='',,N###
//######æ~^^^^^^^^~~~~~~~~~~~~~~íííí~~~~~^*^^^'=''''?',,§####
//########&^^^^^^~~~~~~~~~~~~~~~~~~~~~~~^^=^^''=''''?,íN#####
//#########N?^^~~~~~~~~~~~~~~~~~~~~~~~~^^^=^''^?''';í@#######
//###########N*~~~~~~~~~~~~~~~~~~~~~~~^^^*'''^='''/É#########
//##############@;~~~~~~~~~~~~~~~~~~~^^~='''~?'';É###########
//#################É=~~~~~~~~~~~~~~^^^*~'''*~?§##############
//#####################N§£I/~~~~~~»*?~»o§æN##################

//@version=4
strategy("RSI-VWAP INDICATOR", overlay=false)

// ================================================================================================================================================================================
// RSI VWAP INDICATOR
// ================================================================================================================================================================================

// Initial inputs
Act_RSI_VWAP = input(true, "RSI VOLUME WEIGHTED AVERAGE PRICE")
RSI_VWAP_length = input(17, "RSI-VWAP LENGTH")
RSI_VWAP_overSold = input(19, "RSI-VWAP OVERSOLD", type=input.float)
RSI_VWAP_overBought = input(80, "RSI-VWAP OVERBOUGHT", type=input.float)

// RSI with VWAP as source
RSI_VWAP = rsi(vwap(close), RSI_VWAP_length)

// Plotting, overlay=false
r=plot(RSI_VWAP, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : RSI_VWAP < RSI_VWAP_overSold ? color.lime : color.blue, title="rsi", linewidth=2, style=plot.style_line)
h1=plot(RSI_VWAP_overBought, color = color.gray, style=plot.style_stepline)
h2=plot(RSI_VWAP_overSold, color = color.gray, style=plot.style_stepline)
fill(r,h1, color = RSI_VWAP > RSI_VWAP_overBought ? color.red : na, transp = 60)
fill(r,h2, color = RSI_VWAP < RSI_VWAP_overSold ? color.lime : na, transp = 60)

// Long only Backtest
strategy.entry("Long", strategy.long, when = (crossover(RSI_VWAP, RSI_VWAP_overSold)))
strategy.close("Long", when = (crossunder(RSI_VWAP, RSI_VWAP_overBought)))

Thêm nữa