Chiến lược giao dịch cực đoan Triple RSI


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

Chiến lược giao dịch cực đoan Triple RSI

Tổng quan

Chiến lược này phát ra tín hiệu mua và bán bằng cách quan sát cùng một lúc ba chỉ số RSI của ba chu kỳ khác nhau để xác định xem thị trường đã đạt đến vùng cực đoan mua và bán quá mức, do đó phát ra tín hiệu mua và bán. Việc xác định xu hướng thị trường chủ yếu được thực hiện bằng cách quan sát sự kết hợp của các chỉ số chu kỳ khác nhau.

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

Chiến lược này sử dụng các chỉ số RSI 2 chu kỳ, 7 chu kỳ và 14 chu kỳ cùng một lúc.

Cụ thể, khi RSI chu kỳ 2 nhỏ hơn 10, RSI chu kỳ 7 nhỏ hơn 20, RSI chu kỳ 14 nhỏ hơn 30, cho rằng thị trường đang ở trạng thái quá bán, phát đi tín hiệu mua. Khi RSI chu kỳ 2 lớn hơn 90, RSI chu kỳ 7 lớn hơn 80, RSI chu kỳ 14 lớn hơn 70, cho rằng thị trường đang ở trạng thái quá mua, phát đi tín hiệu bán.

Trong mã, thông qua các tham số chính xác để điều chỉnh mức giá thấp của RSI, mặc định là 3, số lượng nhỏ hơn, phán quyết mua bán quá mức càng nghiêm ngặt hơn.

Khi phát ra tín hiệu mua hoặc bán, nếu giá phá vỡ giá mở cửa vào ngày hôm đó, hãy xóa vị trí hiện tại và thực hiện lệnh dừng theo dõi xu hướng.

Phân tích lợi thế

  • Bằng cách kết hợp các chỉ số RSI đa chu kỳ, bạn có thể đánh giá chính xác hơn về tình trạng quá mua quá bán của thị trường, lọc các tín hiệu giả.

  • Sử dụng các tham số khác nhau để điều chỉnh các điều kiện đánh giá mua quá mức, bạn có thể điều chỉnh độ nhạy của chiến lược theo thị trường.

  • Thực hiện theo dõi giá mở lỗ, có thể dừng lỗ kịp thời, khóa lợi nhuận.

Phân tích rủi ro

  • Các chỉ số RSI dễ bị lệch và không hiệu quả trong việc đánh giá xu hướng thị trường.

  • Các chỉ số RSI cần được điều chỉnh để đáp ứng các tình huống biến động cao, nếu không sẽ bị dừng lại thường xuyên.

  • Các RSI ba có thể được kích hoạt cùng một lúc ít hơn và có thể bỏ lỡ cơ hội giao dịch tốt hơn.

  • Cần điều chỉnh các tham số phán đoán mua quá mức, khuyến nghị kiểm tra hiệu quả dữ liệu của các thị trường khác nhau.

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

  • Có thể xem xét thêm các chỉ số khác để xác nhận, chẳng hạn như đường Brin, KDJ, v.v., để tránh RSI lệch.

  • Các tham số RSI có thể được tự động tối ưu hóa cho các loại tình huống khác nhau.

  • Các điều kiện thoát dừng khác có thể được thử nghiệm, chẳng hạn như dừng ATR.

  • Bạn có thể thêm các điều kiện để lọc thời gian giao dịch, tránh các khoảng thời gian không phù hợp.

Tóm tắt

Chiến lược này sử dụng các chỉ số RSI đa chu kỳ kết hợp để đánh giá khu vực quá mua quá bán, thực hiện theo dõi xu hướng để dừng lỗ. Ưu điểm là có thể cải thiện độ chính xác của phán đoán, dừng lỗ kịp thời; nhược điểm là dễ bị bỏ lỡ, chỉ số RSI dễ bị sai.

Mã nguồn chiến lược
/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-28 10:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy")
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-2
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//RSI-7
middleup = rma(max(change(close), 0), 7)
middledown = rma(-min(change(close), 0), 7)
middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown))

//RSI-14
slowup = rma(max(change(close), 0), 14)
slowdown = rma(-min(change(close), 0), 14)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))

//Signals
acc = 10 - accuracy
up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3)
dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3)
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open)

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Top", strategy.short, needshort == false ? 0 : na, 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()