Chiến lược theo xu hướng dựa trên chỉ báo RSI


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

Chiến lược theo xu hướng dựa trên chỉ báo RSI

Tổng quan

Chiến lược này được thiết kế dựa trên chỉ số RSI, một hệ thống giao dịch theo xu hướng đơn giản, có thể sử dụng chỉ số RSI để đánh giá xu hướng thị trường trong một khoảng thời gian nhất định.

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

Chiến lược này sử dụng chỉ số RSI để xác định xu hướng thị trường, và các kênh Bollinger Bands để xác định các khu vực quá mua quá bán.

Đầu tiên, tính RSI, sau đó tính trung bình di chuyển và chênh lệch tiêu chuẩn của RSI để đưa Brin lên và xuống đường. Chỉ số RSI dao động trong khoảng 0-1, và Brin xác định phạm vi bán tháo qua chênh lệch tiêu chuẩn, RSI cao hơn đường ray là vùng mua quá mức và thấp hơn đường ray là vùng bán quá mức.

Khi RSI tạo ra một tín hiệu mua khi nó phá vỡ đường ray dưới và một tín hiệu bán khi nó phá vỡ đường ray trên và một tín hiệu bán khi nó phá vỡ đường ray dưới, thực hiện theo xu hướng.

Chiến lược này đơn giản và hiệu quả sử dụng chỉ số RSI để xác định hướng xu hướng, hỗ trợ xác định thời gian giao dịch cụ thể bằng Brin. Bằng cách giới hạn phạm vi ngày giao dịch, bạn có thể tránh rủi ro không cần thiết.

Phân tích lợi thế

  • Sử dụng chỉ số RSI để đánh giá xu hướng đơn giản và hiệu quả
  • Kết hợp với tín hiệu xác nhận giao dịch của Binance để tránh đột phá giả mạo
  • Giới hạn ngày giao dịch giúp tránh rủi ro thị trường
  • Không có thiết lập dừng lỗ, theo dõi xu hướng tối đa
  • Các tham số có thể điều chỉnh linh hoạt, phù hợp với nhiều môi trường thị trường

Rủi ro và tối ưu hóa

  • Thị trường có thể biến động mạnh dẫn đến tổn thất
  • Không thiết lập Stop Loss Stop và không kiểm soát rủi ro hiệu quả
  • Thiết lập tham số không đúng có thể dẫn đến giao dịch thường xuyên hoặc bỏ lỡ cơ hội

Định hướng tối ưu hóa:

  • Tham gia chiến lược dừng lỗ, kiểm soát rủi ro
  • Tối ưu hóa cài đặt tham số, tăng tỷ lệ thắng
  • Kết hợp với các chỉ số khác để lọc tín hiệu, tránh đột phá giả
  • Động lực điều chỉnh quy mô vị trí

Tóm tắt

Chiến lược này nói chung là một chiến lược theo xu hướng rất đơn giản và trực tiếp. Sử dụng xu hướng phán đoán RSI, Brin có tín hiệu lọc, giới hạn phạm vi ngày giao dịch, có thể theo dõi xu hướng hiệu quả và kiểm soát rủi ro. Tuy nhiên, chiến lược có thể được tối ưu hóa hơn nữa, trên cơ sở duy trì hiệu quả đơn giản, cải tiến thêm bằng cách dừng lỗ, tối ưu hóa tham số, lọc tín hiệu và các phương pháp khác, làm cho chiến lược phù hợp hơn với giao dịch thực.

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

//Gidra
//2018

//@version=2
strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1)

//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, %")
src = input(close, title="source")
lengthRSI = input(14, title="RSI or MFI length")
// RSI %B
useRSI = input(true, title="use RSI or MFI")
fromyear = input(2018, defval = 2018, 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")

//MFI
upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI)
lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI)
mf = rsi(upper, lower)

//RSI
rsi = useRSI?rsi(src, lengthRSI): mf

// %B
length = input(50, minval=1, title="BB length")
mult = input(1.618, minval=0.001, maxval=50)
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upperr = basis + dev
lowerr = basis - dev
bbr = (rsi - lowerr)/(upperr - lowerr)

plot(bbr, color=black, transp=0, linewidth=2)
// band1 = hline(1, color=white, linestyle=dashed)
// band0 = hline(0, color=white, linestyle=dashed)
// fill(band1, band0, color=teal)
hline(0.5, color=white)

//Signals
up = bbr >= 0 and bbr[1] < 0
dn = bbr <= 1 and bbr[1] > 1
//exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5))

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

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

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