Chiến lược tổng hợp giữa nhiều chỉ số sức mạnh tương đối

Tác giả:ChaoZhang, Ngày: 2024-01-02 12:06:14
Tags:

img

Tổng quan

Chiến lược tổng hợp giữa nhiều chỉ số sức mạnh tương đối (RSI) là một chiến lược giao dịch thời gian sử dụng nhiều chỉ số RSI với các giai đoạn khác nhau để giao dịch cổ phiếu. Nó theo dõi các chỉ số RSI 1, 2, 3, 4 và 5 giai đoạn đồng thời. Các tín hiệu mua được tạo ra khi bất kỳ chỉ số RSI nào đi dưới ngưỡng. Các tín hiệu bán được tạo ra khi tất cả các chỉ số RSI vượt quá ngưỡng của riêng họ, để kiếm lợi nhuận.

Chiến lược logic

Lý do chính đằng sau chiến lược này là theo dõi các chỉ số RSI 1, 2, 3, 4 và 5 giai đoạn đồng thời, bao gồm các chỉ số RSI 4, 7, 14, 21 và 28 giai đoạn. Các giá trị ngưỡng riêng biệt được thiết lập cho mỗi chỉ số RSI 5. Một tín hiệu mua được kích hoạt khi bất kỳ chỉ số RSI nào giảm xuống dưới ngưỡng của riêng nó.

Ví dụ, ngưỡng của chỉ số RSI 4 giai đoạn được thiết lập là 15. Một tín hiệu mua được tạo ra khi chỉ số RSI 4 giai đoạn giảm xuống dưới 15. Chiến lược kiểm tra các chỉ số RSI khác để xem liệu chúng cũng giảm xuống dưới ngưỡng của riêng họ hay không. Nếu có, sẽ có nhiều tín hiệu mua hơn.

Khi tất cả 5 chỉ số RSI tăng và vượt quá ngưỡng riêng của chúng, một tín hiệu bán được tạo ra để kiếm lợi nhuận.

Điểm mạnh của chiến lược

  1. Cải thiện độ chính xác của các mục nhập với nhiều RSI

Chiến lược này sử dụng 5 RSI của các giai đoạn khác nhau để tạo ra tín hiệu mua và bán. Một chỉ số duy nhất có thể tạo ra tín hiệu sai đôi khi. Tuy nhiên, với sự tập hợp của nhiều người, độ chính xác của tín hiệu có thể được cải thiện, do đó tăng độ chính xác của các mục nhập.

  1. RSI của các giai đoạn khác nhau phù hợp với các điều kiện thị trường khác nhau

    Các chỉ số RSI 1, 2, 3, 4, 5 giai đoạn được sử dụng trong chiến lược này có thể thích nghi với biến động cổ phiếu với tần số khác nhau. Ví dụ, chỉ số RSI 28 giai đoạn phù hợp với giao dịch dài hạn trong khi chỉ số RSI 4 giai đoạn phù hợp với giao dịch ngắn hạn. Điều này đảm bảo chiến lược hoạt động trong các tình huống thị trường khác nhau.

  2. Cấu trúc mã sạch và rõ ràng

    Tên biến và cấu trúc tổng thể của mã chiến lược là gọn gàng và hiển nhiên. Luồng logic cho các chỉ số và tín hiệu khác nhau là rõ ràng. Điều này làm cho chiến lược dễ hiểu, sửa đổi và tối ưu hóa, điều này rất quan trọng đối với các chiến lược định lượng.

Rủi ro của chiến lược

  1. Không hợp lệ trong thị trường xu hướng

    Chiến lược này phụ thuộc rất nhiều vào các tín hiệu mua quá mức và bán quá mức. Hiệu quả của nó sẽ bị ảnh hưởng trong thị trường xu hướng tăng hoặc giảm liên tục. Đây là một khuyết điểm phổ biến của các chiến lược đảo ngược trung bình sử dụng các chỉ số ngược.

  2. Khó khăn trong tối ưu hóa tham số

    Một loạt các chỉ số và tham số đầu vào tồn tại trong chiến lược này. Điều này đặt ra những thách thức to lớn cho tối ưu hóa tham số. Sự kết hợp tham số không chính xác có thể làm giảm hiệu quả chiến lược đáng kể. Các công cụ tối ưu hóa nên được sử dụng để tìm kiếm bộ tham số tối đa hóa hiệu suất chiến lược.

  3. Chuyển đổi thường xuyên giữa dài và ngắn

    Do sử dụng các chỉ số nhiều thời gian, thay đổi vị trí dài và ngắn trong chiến lược có thể khá thường xuyên. Điều này có thể dẫn đến chi phí cao hơn liên quan đến giao dịch và rủi ro liên quan đến trượt giá.

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

  1. Bao gồm các chỉ số theo xu hướng

    Các công cụ xu hướng như MA và BOLL có thể được thêm vào. Các tín hiệu chỉ được lấy khi các công cụ xu hướng đồng bộ với các tín hiệu được tạo ra bởi các chỉ số ngược. Điều này giúp tránh thua lỗ trong các tình huống xu hướng dai dẳng.

  2. Giảm số lượng các chỉ số RSI

    Cố gắng giảm số lượng các công cụ RSI được sử dụng. Điều này làm giảm bớt khó khăn trong tối ưu hóa tham số. Các thí nghiệm cho thấy 2 đến 3 chỉ số đã có thể tạo ra hiệu quả thỏa đáng.

  3. Tối ưu hóa phạm vi tham số

    Tìm kiếm phạm vi tối ưu và sự kết hợp của các thông số và ngưỡng RSI bằng cách sử dụng các phương pháp tối ưu hóa như gradient descent và tìm kiếm ngẫu nhiên.

Kết luận

Chiến lược tổng hợp RSI tạo ra các tín hiệu giao dịch bằng các tín hiệu hội tụ từ nhiều RSI với các khoảng thời gian khác nhau. Điều này cải thiện độ chính xác của các mục nhập để nhận ra giao dịch thời gian trong cổ phiếu. Mặc dù có những lợi thế được thừa hưởng từ việc sử dụng nhiều chỉ số, nhưng các khuyết điểm bao gồm không hiệu quả trong thị trường xu hướng và khó khăn trong tối ưu hóa vẫn còn. Các phương pháp như thêm các công cụ xu hướng, giảm số chỉ số và tối ưu hóa tham số có thể giúp tăng cường thêm độ bền của chiến lược.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Symphony v1.0", shorttitle = "Symphony 1.0", 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(15, defval = 15, 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(20, defval = 20, 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(25, defval = 25, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(true, defval = true, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(true, defval = true, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(35, defval = 35, 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

up = up1 or up2 or up3 or up4 or up5
exit = rsi1 > rsilimit1 and rsi2 > rsilimit2 and rsi3 > rsilimit3 and rsi4 > rsilimit4 and rsi5 > rsilimit5
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, needlong == false ? 0 : lot)
 
if  exit
    strategy.close_all()

Thêm nữa