Chiến lược giao dịch nhiều chỉ báo RSI


Ngày tạo: 2023-11-28 15:03:53 sửa đổi lần cuối: 2023-11-28 15:03:53
sao chép: 1 Số nhấp chuột: 668
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch nhiều chỉ báo RSI

Tổng quan

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

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

Chiến lược này sử dụng từ 1 đến 5 chỉ số RSI bằng cách chọn tham số đầu vào, mỗi chỉ số RSI có thể được cấu hình riêng lẻ số giai đoạn và giới hạn của tham số. Khi bất kỳ chỉ số RSI nào tạo ra tín hiệu mua khi giá trị của nó thấp hơn giới hạn tương ứng, cường độ tín hiệu được xác định bởi số giai đoạn của RSI kích hoạt tín hiệu, càng cao thì tín hiệu càng mạnh.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là có thể đánh giá đồng thời các chỉ số RSI trong nhiều chu kỳ, đánh giá xu hướng và cơ hội đảo ngược từ nhiều chiều dài và ngắn, cải thiện độ chính xác của quyết định giao dịch. Ngoài ra, chiến lược cho phép cấu hình tự do các tham số của các chỉ số RSI, có thể điều chỉnh cho các thị trường khác nhau, có thể mở rộng khả năng thích ứng của chiến lược.

Phân tích rủi ro

Rủi ro chính của chiến lược này là có thể xảy ra xung đột tín hiệu khi đánh giá nhiều cặp chỉ số RSI. Ví dụ: RSI ngắn hạn tạo ra tín hiệu mua, nhưng RSI dài hạn vẫn đang bán quá mức, khi đó cần kết hợp kinh nghiệm của nhà giao dịch để quyết định chính xác tín hiệu nào. Ngoài ra, chỉ số RSI dễ bị sai lệch bởi các biến động, điều này cần được xác minh bằng các chỉ số phụ trợ hoặc tài khoản lớn.

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

Chiến lược này có thể xem xét việc thêm các chỉ số hỗ trợ xu hướng như đường trung bình di chuyển hoặc dải Brin để xác minh tín hiệu RSI, cải thiện độ chính xác của phán đoán. Ngoài ra, bạn cũng có thể xem xét thêm một số thuật toán học máy, sử dụng phương pháp đánh giá đa yếu tố để tự động đánh giá độ tin cậy của tín hiệu Entry và Close.

Tóm tắt

Chiến lược giao dịch nhiều chỉ số RSI rất sáng tạo, sự linh hoạt trong việc thiết lập các chỉ số và tham số cho phép thích ứng nhanh chóng với sự thay đổi của thị trường. Thiết kế chức năng mô-đun được thêm vào cũng giúp chiến lược được tối ưu hóa rất nhiều. Hiệu quả có thể được nâng cao hơn nữa nếu kết hợp với các phương tiện học máy hoặc kiểm soát rủi ro.

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