Chiến lược giao dịch các chỉ số RSI đa

Tác giả:ChaoZhang, Ngày: 2023-11-28 15:03:53
Tags:

img

Tổng quan

Chiến lược giao dịch nhiều chỉ số RSI xác định các cơ hội giao dịch bằng cách kết hợp nhiều chỉ số RSI để theo dõi xu hướng. Chiến lược sử dụng linh hoạt 1-5 chỉ số RSI và xác định thời gian vào và ra theo giá trị chỉ số.

Chiến lược logic

Chiến lược cho phép lựa chọn 1-5 chỉ số RSI thông qua các thông số đầu vào. Mỗi chỉ số RSI có thể được cấu hình độc lập với các giá trị giới hạn và thời gian. Khi bất kỳ chỉ số RSI nào giảm xuống dưới giá trị giới hạn, một tín hiệu mua sẽ được kích hoạt. Sức mạnh tín hiệu được xác định bởi thời gian của chỉ số RSI được kích hoạt, với thời gian cao hơn có nghĩa là tín hiệu mạnh hơn. Khi RSI tăng trở lại trên giới hạn, một tín hiệu vị trí đóng sẽ được kích hoạt. Chiến lược cũng cung cấp tính linh hoạt để sử dụng bộ lọc màu và hạn chế giờ giao dịch.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là khả năng đánh giá nhiều khung thời gian bằng cách sử dụng các chỉ số RSI khác nhau, đánh giá cả xu hướng và cơ hội đảo ngược từ các chiều dài và ngắn để cải thiện độ chính xác. Ngoài ra, cấu hình linh hoạt của mỗi chỉ số RSI mở rộng đáng kể khả năng thích nghi trên các thị trường khác nhau.

Phân tích rủi ro

Rủi ro chính là các tín hiệu mâu thuẫn khi kết hợp nhiều phán đoán RSI. Ví dụ, RSI ngắn hơn tạo ra một mua trong khi RSI dài hơn vẫn bị bán quá mức. Người ta phải dựa vào kinh nghiệm để xác định tín hiệu nào được ưu tiên. Ngoài ra, RSI có xu hướng bị sốc, đòi hỏi phải xác nhận bằng cách sử dụng các chỉ số khác hoặc tài khoản lớn.

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

Chiến lược này có thể xem xét thêm các chỉ số hỗ trợ xu hướng như đường trung bình động hoặc băng Bollinger để xác nhận tín hiệu RSI và cải thiện độ chính xác. Ngoài ra, các thuật toán học máy nhất định cũng có thể được khám phá, sử dụng điểm số đa yếu tố để tự động xác định độ tin cậy của tín hiệu. Để kiểm soát rủi ro, các đường dừng mất hoặc rút tối đa có thể được thực hiện cho mục đích dừng lỗ.

Tóm lại

Tóm lại, chiến lược giao dịch các chỉ số đa RSI rất sáng tạo. Tính linh hoạt trong sự kết hợp các chỉ số và các tham số làm cho nó thích nghi với các thị trường đang phát triển. Các cải tiến hơn nữa có thể đạt được bằng cách kết hợp các thuật toán học máy và nhiều biện pháp kiểm soát rủi ro hơn do thiết kế mô-đun của nó.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018
//@version=2

strategy(title = "Noro's Symphony Strategy v1.1", shorttitle = "Symphony str 1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20)

//Settings

//needlong = input(true, defval = true, title = "Long")
//needshort = input(true, defval = true, title = "Short")

capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
usersi1 = input(true, defval = true, title = "Use RSI 1")
rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period")
rsilimit1 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 1 Limit")
usersi2 = input(true, defval = true, title = "Use RSI 2")
rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period")
rsilimit2 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 2 Limit")
usersi3 = input(true, defval = true, title = "Use RSI 3")
rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period")
rsilimit3 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(false, defval = false, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(false, defval = false, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI 5 Limit")
cf = input(false, defval = false, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//RSI
rsi1 = rsi(close, rsiperiod1)
rsi2 = rsi(close, rsiperiod2)
rsi3 = rsi(close, rsiperiod3)
rsi4 = rsi(close, rsiperiod4)
rsi5 = rsi(close, rsiperiod5)

//Signals
up1 = rsi1 < rsilimit1 and usersi1  
up2 = rsi2 < rsilimit2 and usersi2
up3 = rsi3 < rsilimit3 and usersi3
up4 = rsi4 < rsilimit4 and usersi4
up5 = rsi5 < rsilimit5 and usersi5

str = up5 ? 5 : up4 ? 4 : up3 ? 3 : up2 ? 2 : up1 ? 1 : str[1]
up = up1 or up2 or up3 or up4 or up5
exit = (rsi1 > rsilimit1 and str == 1) or (rsi2 > rsilimit2 and str == 2) or (rsi3 > rsilimit3 and str == 3) or (rsi4 > rsilimit4 and str == 4) or (rsi5 > rsilimit5 and str == 5)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Background
col = up ? lime : na
bgcolor(col, transp = 0)

//Trading
if up and (close < open or cf == false)
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
 
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Thêm nữa