
Artikel ini mengkaji strategi perdagangan kuantitatif yang dinamakan “RSI Trading Strategy” yang menggunakan Bayesian Conditional Judgment. Strategi ini menggunakan pengiraan probabiliti RSI untuk mendistribusikan RSI, dan menggunakan Bayesian Law untuk mengira kemungkinan RSI untuk terus naik atau turun untuk menentukan trend harga masa depan dan menghasilkan keuntungan.
Logik utama strategi ini ialah:
Khususnya, strategi ini terlebih dahulu menentukan parameter p sebagai parameter kitaran untuk mengira indikator RSI, dan r adalah jangka masa untuk meramalkan perubahan harga masa depan. Kemudian dalam kitaran p, kira berapa kali harga penutupan statistik meningkat, dan kira peredaran kebarangkalian A. Pada masa yang sama, dalam kitaran p, kira berapa kali RSI terus meningkat setelah kitaran r berakhir, dan kira peredaran kebarangkalian B.
Kemudian, menggunakan formula Bayes, mengira kemungkinan kenaikan harga penutupan penutupan penutupan dan kemungkinan RSI terus meningkat, sebagai penunjuk penilaian kebarangkalian akhir. Apabila kebarangkalian lebih tinggi daripada paras paras paras yang diberikan, penilaian trend akan terus meningkat, dan mengambil lebih banyak perdagangan; apabila kebarangkalian lebih rendah daripada paras paras paras, penilaian trend berbalik, mengambil kedudukan yang rata.
Dengan cara ini, analisis strategi mempertimbangkan maklumat harga dan maklumat penunjuk teknikal, menggunakan statistik kebarangkalian dan hukum Bayes, membuat penghakiman mengenai trend masa depan, dan menghasilkan isyarat perdagangan.
Strategi ini mempunyai kelebihan utama:
Menggabungkan pelbagai maklumatStrategi ini bukan sahaja mempertimbangkan maklumat harga, tetapi juga menggabungkan maklumat petunjuk teknikal seperti RSI, untuk menilai trend masa depan secara menyeluruh, meningkatkan ketepatan penilaian.
Ramalan kebarangkalian: Menggunakan pengedaran kebarangkalian statistik, membuat ramalan kebarangkalian mengenai arah perubahan harga dan RSI, dan bukannya perbandingan angka yang mudah, untuk membuat keputusan yang lebih saintifik.
Optimasi Bayesian: Menggunakan Hukum Bayes untuk mengira kebarangkalian yang berkaitan, mengoptimumkan kebarangkalian statistik asal untuk membuat keputusan yang lebih tepat.
Fleksibiliti parameter: Menyediakan pelbagai parameter untuk penyesuaian dan pengoptimuman, dapat menyesuaikan parameter untuk pasaran dan aset yang berbeza, meningkatkan fleksibiliti strategi.
Mudah dan berkesanStrategi yang jelas, penilaian isyarat perdagangan melalui statistik dan operasi kebarangkalian yang mudah, mudah difahami dan dioptimumkan, dan kesannya jelas.
Strategi ini juga mempunyai risiko utama:
Ketergantungan parameterKesan strategi bergantung pada parameter yang ditetapkan, pasaran yang berbeza memerlukan penyesuaian parameter yang banyak untuk mencapai kesan terbaik, meningkatkan kesukaran operasi strategi.
Kesilapan kebarangkalianOleh kerana masa dan sampel statistik yang terhad, kebarangkalian yang dikira mungkin tidak sesuai dengan trend sebenar, yang menyebabkan kesesuaian dalam penghakiman.
Acara khasKejadian mendadak yang boleh mempengaruhi hubungan harga pasaran dengan RSI, menyebabkan strategi tidak berkesan.
Penunjuk teknikal tidak berfungsiDalam keadaan pasaran tertentu, indikator teknikal seperti RSI mungkin memberi isyarat kegagalan yang menyebabkan keputusan strategi gagal.
Penyelesaian untuk menghadapi risiko termasuk: mengoptimumkan proses penetapan parameter, menyesuaikan masa statistik dan jumlah sampel, menggabungkan lebih banyak maklumat tambahan, keadaan luar biasa intervensi manual, dan sebagainya.
Kaedah utama untuk mengoptimumkan strategi ini ialah:
Kerangka masa berbilang: boleh menjalankan strategi pada pelbagai tempoh masa (sun, bulan, dan lain-lain), penilaian komprehensif, meningkatkan kestabilan.
Indeks tambahan: Tambahkan lebih banyak isyarat indikator teknikal, seperti bentuk K-line, purata pergerakan dan lain-lain, untuk membuat keputusan yang lebih baik.
Optimasi model: Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan model Bayesian untuk membuat pengiraan lebih tepat.
Parameter dinamik: Modul pengoptimuman dinamik untuk menambah parameter, membolehkan parameter disesuaikan dengan perubahan pasaran dalam masa nyata.
Sistem kawalan anginMenetapkan penarikan maksimum, melakukan pengendalian angin dan lain-lain untuk mengelakkan kerugian besar dalam pasaran yang melampau.
Peningkatan IntegrasiTermasuklah: integrasi dengan jenis strategi atau model lain, membentuk mekanisme pengundian, meningkatkan kestabilan penghakiman.
Strategi ini mula-mula mengkaji peredaran kebarangkalian harga dan indikator RSI, kemudian menggunakan peraturan Bayes untuk mengira kebarangkalian gabungan, menghasilkan isyarat perdagangan apabila kebarangkalian lebih tinggi daripada nilai ambang yang diberikan, dan menghasilkan keuntungan. Strategi ini menggabungkan maklumat pelbagai sumber, ramalan kebarangkalian aplikasi dan pengoptimuman Bayes, untuk menilai keberkesanan yang lebih baik. Arah pengoptimuman utama termasuk pengembangan jangka masa, peningkatan indikator, dinamik parameter, dan sebagainya.
/*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)