Chiến lược giao dịch RSI điều kiện Bayesian

Tác giả:ChaoZhang, Ngày: 2023-12-18 17:09:00
Tags:

img

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 gọi là Bayesian Condition RSI Trading Strategy. Chiến lược này tính toán sự phân bố xác suất của chỉ số RSI và áp dụng quy tắc Bayesian để suy luận xác suất của chỉ số RSI tiếp tục tăng hoặc giảm để đánh giá xu hướng giá trong tương lai và kiếm lợi nhuận.

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

Logic cốt lõi của chiến lược này là:

  1. Tính toán phân bố xác suất A về việc giá đóng đã tăng trong một chu kỳ nhất định
  2. Tính toán phân bố xác suất B về việc liệu chỉ số RSI tiếp tục tăng trong chu kỳ tương ứng
  3. Áp dụng quy tắc Bayesian để tính toán xác suất A và B xảy ra đồng thời
  4. Khi xác suất này cao hơn ngưỡng, phán xét rằng xu hướng sẽ tiếp tục và nhận tín hiệu giao dịch

Cụ thể, chiến lược đầu tiên xác định tham số p là tham số chu kỳ để tính toán chỉ số RSI, và r là khoảng thời gian để dự đoán thay đổi giá trong tương lai. Sau đó trong chu kỳ p, đếm số lần giá đóng tăng để tính toán phân bố xác suất A. Đồng thời, trong chu kỳ p, đếm số lần RSI tiếp tục tăng trong chu kỳ r sau khi chu kỳ này kết thúc, và tính toán phân bố xác suất B.

Sau đó, áp dụng công thức Bayesian để tính toán xác suất rằng hai điều kiện tăng giá đóng cửa RSI tiếp tục tăng được đáp ứng cùng một lúc, như chỉ số phán đoán xác suất cuối cùng. Khi xác suất này cao hơn một ngưỡng nhất định, đánh giá rằng xu hướng tăng sẽ tiếp tục và nắm giữ các vị trí dài; khi xác suất thấp hơn ngưỡng, đánh giá rằng xu hướng được đảo ngược và đóng các vị trí.

Bằng cách này, chiến lược xem xét toàn diện thông tin giá và các chỉ số kỹ thuật, áp dụng thống kê xác suất và các quy tắc Bayesian để đánh giá xu hướng trong tương lai và tạo ra các tín hiệu giao dịch.

Ưu điểm của Chiến lược

Những lợi thế chính của chiến lược này là:

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

  2. Dự đoán xác suất: Tạo dự đoán xác suất về hướng thay đổi giá và RSI thông qua phân phối xác suất thống kê, thay vì so sánh số đơn giản, làm cho phán đoán khoa học hơn.

  3. Tối ưu hóa Bayesian: Sử dụng các quy tắc Bayesian để tính toán xác suất có liên quan và tối ưu hóa xác suất thống kê ban đầu để đưa ra phán đoán chính xác hơn.

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

  5. Đơn giản và hiệu quả: Ý tưởng chiến lược là rõ ràng và các hoạt động thống kê và xác suất đơn giản được sử dụng để tạo ra các phán đoán tín hiệu giao dịch, dễ hiểu và tối ưu hóa, và hiệu quả là đáng kể.

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

Các rủi ro chính của chiến lược này cũng bao gồm:

  1. Tùy thuộc tham sốCác thị trường khác nhau cần phải điều chỉnh nhiều thông số để đạt được kết quả tối ưu, làm tăng sự phức tạp của hoạt động chiến lược.

  2. Lỗi xác suất: Do thời gian thống kê và mẫu hạn chế, xác suất được tính toán có thể không phù hợp với xu hướng thực tế, dẫn đến sai lệch đánh giá.

  3. Các sự kiện đặc biệt: Các trường hợp khẩn cấp lớn có thể ảnh hưởng đến mối tương quan giữa giá thị trường và các chỉ số RSI, gây thất bại cho chiến lược.

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

Các giải pháp 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à kích thước mẫu, kết hợp nhiều thông tin phụ trợ hơn, can thiệp thủ công trong các tình huống bất thường, v.v.

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

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

  1. Nhiều khung thời gian: Thực hiện các chiến lược trên nhiều khung thời gian (tiếng Nhật, hàng tuần, v.v.) để đánh giá tích hợp để cải thiện sự ổn định.

  2. Thêm các chỉ số: Thêm nhiều tín hiệu chỉ số kỹ thuật như mẫu nến, trung bình động vv để làm phong phú cơ sở phán đoán.

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

  4. Các thông số động: Thêm các mô-đun tối ưu hóa động cho các tham số để điều chỉnh theo thời gian thực với những thay đổi của thị trường.

  5. Cơ chế kiểm soát rủi ro: Đặt các chỉ số rủi ro như mức rút tiền tối đa và tần suất giao dịch để ngăn ngừa tổn thất lớn trong các thị trường cực đoan.

  6. Kết hợp các cải tiến: Cùng với các loại chiến lược hoặc mô hình khác để hình thành các cơ chế bỏ phiếu và cải thiện sự ổn định.

Kết luận

Chiến lược này đầu tiên tính toán thống kê phân phối xác suất của giá và RSI, sau đó sử dụng các quy tắc Bayesian để tính toán các xác suất kết hợp, tạo ra các tín hiệu giao dịch khi xác suất vượt quá ngưỡng thiết lập, do đó kiếm lợi nhuận. Chiến lược này kết hợp thông tin đa nguồn, tận dụng dự đoán xác suất và tối ưu hóa Bayesian cho hiệu suất phán đoán tốt.


/*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)

Thêm nữa