Chiến lược định lượng ngắn hạn dựa trên RSI và VWAP


Ngày tạo: 2024-01-19 14:21:15 sửa đổi lần cuối: 2024-01-19 14:21:15
sao chép: 0 Số nhấp chuột: 982
1
tập trung vào
1617
Người theo dõi

Chiến lược định lượng ngắn hạn dựa trên RSI và VWAP

Tổng quan

Chiến lược này được đặt tên là chiến lược đường ngắn RSI-VWAP. Chiến lược này sử dụng chỉ số RSI và giá trung bình cân bằng khối lượng giao dịch ((VWAP) làm chỉ số kỹ thuật, thiết lập tín hiệu đa đầu không, sau đó tạo ra quyết định mua và bán. Chiến lược tìm kiếm để nắm bắt thị trường quá mua và quá bán trên đường ngắn để có được lợi nhuận vượt quá.

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

  1. Sử dụng chỉ số RSI để xác định thị trường có đang quá mua hay quá bán không. Chỉ số RSI cao hơn 80 là vùng quá mua và thấp hơn 20 là vùng quá bán.
  2. Chỉ số RSI sử dụng VWAP thay vì giá đóng cửa làm dữ liệu nguồn. VWAP phản ánh giá giao dịch trung bình trong ngày.
  3. Một tín hiệu mua được tạo ra khi giá trị chỉ số RSI vượt qua 20 từ vùng bán tháo. Một tín hiệu bán được tạo ra khi giá trị chỉ số RSI vượt qua 80 từ vùng mua tháo.
  4. Chiến lược này chỉ thực hiện giao dịch mua nhiều, không bán ròng.

Phân tích lợi thế

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

Phân tích rủi ro

  1. Có nguy cơ phản hồi chiến lược định lượng quá phù hợp, kết quả thực tế có thể không phù hợp với phản hồi.
  2. Những người làm việc trong ngành công nghiệp này không thể nắm bắt được cơ hội giảm giá trong thời gian.
  3. Tiêu chuẩn đánh giá mua quá mức có thể không phù hợp với tất cả các giống và cần điều chỉnh các tham số cho các giống 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ể hoàn toàn tránh được sự mất mát.

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

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

  1. Kiểm tra tác động của các tham số khác nhau đối với hiệu quả chiến lược, tối ưu hóa độ dài RSI và vượt quá ngưỡng mua bán.
  2. Tăng chiến lược dừng lỗ, khóa một phần lợi nhuận bằng cách di chuyển dừng, dừng thời gian và giảm rút tiền.
  3. Hình thức lọc tín hiệu kết hợp với các chỉ số khác để tăng độ chính xác tín hiệu.
  4. Cài đặt các tham số riêng biệt theo các đặc điểm của các giống khác nhau để chiến lược có thể thích ứng tốt hơn với các giống khác nhau.

Tóm tắt

Chiến lược này nói chung là một chiến lược ngắn gọn đơn giản và thực tế. Sử dụng VWAP để đánh giá chỉ số RSI chính xác hơn, chỉ cần làm nhiều lần để giảm tần suất hoạt động. Ý tưởng chiến lược rõ ràng, dễ hiểu và thực hiện, phù hợp cho việc bắt đầu giao dịch định lượng.

Mã nguồn chiến lược
/*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)))