Chiến lược giao dịch RSI sử dụng phán đoán có điều kiện Bayesian


Ngày tạo: 2023-12-18 17:09:00 sửa đổi lần cuối: 2023-12-18 17:09:00
sao chép: 0 Số nhấp chuột: 857
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch RSI sử dụng phán đoán có điều kiện Bayesian

Tổng quan

Bài viết này chủ yếu phân tích một chiến lược giao dịch định lượng của RSI, được gọi là .

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

Lập luận cốt lõi của chiến lược này là:

  1. Tính phân bố xác suất của giá đóng cửa trong một chu kỳ nhất định
  2. Tính phân bố xác suất của RSI trong chu kỳ tương ứng
  3. Sử dụng định luật Bayes, tính xác suất xảy ra A và B cùng lúc
  4. Khi xác suất cao hơn mức giảm giá, hãy xem xu hướng sẽ tiếp tục và sử dụng tín hiệu giao dịch

Cụ thể, chiến lược định nghĩa tham số p là tham số chu kỳ để tính toán chỉ số RSI, r là phạm vi thời gian dự đoán biến động giá trong tương lai. Sau đó, trong chu kỳ p, tính toán số lần giá đóng cửa đã tăng, tính toán phân phối xác suất A. Trong chu kỳ p, tính toán số lần RSI tiếp tục tăng sau khi chu kỳ r kết thúc, tính toán phân phối xác suất B.

Sau đó, áp dụng công thức quy luật Bayes, tính toán xác suất của cả hai điều kiện là giá tròn đóng cửa tăng và RSI tiếp tục tăng, như là chỉ số phán đoán xác suất cuối cùng. Khi xác suất này cao hơn ngưỡng giá nhất định, phán đoán xu hướng sẽ tiếp tục tăng và thực hiện nhiều giao dịch; Khi xác suất thấp hơn ngưỡng giá, phán đoán xu hướng đảo ngược và thực hiện vị trí bằng phẳng.

Do đó, tổng hợp chiến lược xem xét thông tin về giá cả và thông tin về chỉ số kỹ thuật, sử dụng thống kê xác suất và quy luật Bayes để đánh giá xu hướng trong tương lai và tạo ra tín hiệu giao dịch.

Lợi thế chiến lược

Chiến lược này có những lợi thế chính như sau:

  1. Kết hợp nhiều thông tinChiến lược không chỉ xem xét thông tin giá cả, mà còn kết hợp thông tin về các chỉ số kỹ thuật như RSI, đánh giá tổng hợp các xu hướng trong tương lai, tăng độ chính xác đánh giá.

  2. Dự đoán xác suấtPhân phối xác suất thống kê, dự đoán xác suất về xu hướng thay đổi của giá và RSI, thay vì so sánh số đơn giản, để đưa ra phán đoán khoa học hơn.

  3. Tối ưu hóa Bayesian: Sử dụng quy luật Bayes để tính toán xác suất liên quan, tối ưu hóa xác suất thống kê nguyên bản để đưa ra quyết định chính xác hơn.

  4. Các tham số linh hoạtCung cấp nhiều tham số để điều chỉnh và tối ưu hóa, có thể phù hợp với các tham số cho các thị trường và tài sản khác nhau, tăng khả năng thích ứng chiến lược.

  5. Đơn giản và hiệu quả: Chiến lược rõ ràng, thông qua các hoạt động thống kê và xác suất đơn giản để đánh giá tín hiệu giao dịch, dễ hiểu và tối ưu hóa, và hiệu quả rõ ràng.

Rủi ro chiến lược

Chiến lược này cũng có những rủi ro chính như:

  1. Tùy thuộc tham sốHiệu quả của chiến lược phụ thuộc vào cài đặt tham số, các thị trường khác nhau cần điều chỉnh nhiều tham số để đạt được hiệu quả tối ưu, tăng độ khó của chiến lược.

  2. Xác suất saiDo thời gian thống kê và mẫu hạn chế, xác suất thu được có thể không phù hợp với xu hướng thực tế, dẫn đến sự sai lệch trong phán đoán.

  3. Sự kiện đặc biệtSự kiện bất ngờ quan trọng có thể ảnh hưởng đến sự liên quan của giá thị trường với chỉ số RSI, làm cho chiến lược không hiệu quả.

  4. Chỉ số kỹ thuật không hiệu quảTrong một số trường hợp thị trường, các chỉ số kỹ thuật như RSI có thể tạo ra tín hiệu thất bại, dẫn đến thất bại trong phán quyết chiến lược.

Các giải pháp đối phó với rủi ro bao gồm: tối ưu hóa quy trình thiết lập tham số, điều chỉnh thời gian thống kê và số lượng mẫu, kết hợp nhiều thông tin phụ trợ, trường hợp bất thường can thiệp bằng tay, v.v.

Tối ưu hóa chiến lược

Các hướng tối ưu hóa chính của chiến lược này là:

  1. Nhiều khung thời gian: có thể vận hành chiến lược trên nhiều chu kỳ thời gian (đường mặt trời, đường tuần hoàn, v.v.), đánh giá tổng hợp, tăng sự ổn định.

  2. Các chỉ số khác: Thêm thêm các tín hiệu chỉ số kỹ thuật, chẳng hạn như hình dạng K-line, trung bình vận động, v.v., để có nhiều cơ sở phán đoán.

  3. Tối ưu hóa mô hình: Sử dụng các phương pháp như học máy để tối ưu hóa mô hình Bayesian để tính toán chính xác hơn.

  4. Các tham số động: Thêm mô-đun tối ưu hóa động cho các tham số, cho phép tham số được điều chỉnh theo thay đổi thị trường trong thời gian thực.

  5. Cơ chế kiểm soát gióĐặt mức rút tối đa, làm chỉ số kiểm soát gió một lần, tránh thua lỗ lớn trong thị trường cực đoan.

  6. Tiến bộ tích hợpMột trong số đó là: tích hợp với các loại chiến lược hoặc mô hình khác để tạo ra một cơ chế bỏ phiếu, tăng tính ổn định của phán đoán.

Tóm tắt

Chiến lược này đầu tiên thống kê phân bố xác suất của giá và chỉ số RSI, sau đó sử dụng quy luật Bayes để tính toán xác suất tổng hợp, tạo tín hiệu giao dịch khi xác suất cao hơn ngưỡng nhất định, và đạt được lợi nhuận. Chiến lược này tích hợp thông tin từ nhiều nguồn, dự đoán xác suất ứng dụng và tối ưu hóa Bayes, để đánh giá hiệu quả tốt. Các hướng tối ưu hóa chính bao gồm mở rộng khung thời gian, tăng chỉ số, động lực tham số, v.v..

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

//@version=2
// Stealthy7 trading scripts are radikal. You have entered the mystical realm of demonic profit.
// If you like this script, check out my bots at cryptotrader.org/?r=51
// Let me know if you find any improvements to this script. It is beta. 
// Please subscribe.
strategy("Stealthy7 Bayes Conditional RSI Trader Strategy", overlay=true)
p = input(title="Period",  defval=30, minval=5, maxval=500)
t = input(title="Movement Thresh", type=float, defval=1.003, minval=1.001, maxval=1.5, step=0.001)
r = input(title="Look Range",  defval=7, minval=1,maxval=500, step=1)
RSIT = input(title="Jump",  defval=8, minval=1,maxval=99, step=1)
BAYEST = input(title="SM",  defval=3, minval=1,maxval=99, step=1)
RSIP = input(title="RSIP",  defval=14, minval=2,maxval=100, step=1)
countup = 1
countdn = 1
countupS = 1
countdnS = 1
for i = p to 1
    if close[i]/close[i + r] > t
        countup := countup + 1
    else
        countdn := countdn + 1
    if close[i]/close[i + r] < 2 - t
        countupS := countupS + 1
    else
        countdnS := countdnS + 1

rsi = rsi(open,RSIP)

countup2 = 1
countup3 = 1
countup2S = 1
countup3S = 1
for i = p to 1
    if close[i]/close[i + r] > t and rsi[i + r + 1] > rsi[i + r + 2] + RSIT
        countup2 := countup2 + 1
    else
        countup3 := countup3 + 1
    if close[i]/close[i + r] < 2 - t and rsi[i + r + 1] < rsi[i + r + 2] - RSIT
        countup2S := countup2S + 1
    else
        countup3S := countup3S + 1

countup2b = countup2 / p
countup3b = countup3 / p
countupb = countup / p
countdnb = countdn / p

countup2bS = countup2S / p
countup3bS = countup3S / p
countupbS = countupS / p
countdnbS = countdnS / p
bayes = 0
bayes := ((countupb * countup2b) / ((countupb * countup2b) + (countdnb * countup3b))) * 100
bayesS = 0
bayesS := ((countupbS * countup2bS) / ((countupbS * countup2bS) + (countdnbS * countup3bS))) * 100
SN1 = sma(bayes,BAYEST)
SN2 = sma(bayesS,BAYEST)
shortCondition = crossunder(bayesS, SN2) //and rsi < 49
longCondition = crossover(bayes, SN1) //and rsi > 59
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)