Artikel ini akan menerangkan secara terperinci mengenai strategi perdagangan kuantitatif yang menggunakan indikator RSI pelbagai kitaran untuk menentukan titik balik. Strategi ini menganalisis beberapa indikator RSI pada masa yang sama untuk mengenal pasti pembentukan titik balik pasaran.
I. Prinsip-prinsip Strategi
Strategi ini menggunakan 3 kumpulan parameter RSI yang berbeza, dengan logik seperti berikut:
Nilai RSI untuk kitaran 2, 7, dan 14;
Apabila RSI-2 lebih kecil daripada 10, RSI-7 lebih kecil daripada 20, dan RSI-14 lebih kecil daripada 30, ia dianggap sebagai pembentukan dasar;
Apabila RSI-2 lebih besar daripada 90, RSI-7 lebih besar daripada 80, dan RSI-14 lebih besar daripada 70, ia dianggap sebagai puncak terbentuk.
Menurut keserasian RSI, ia menghasilkan isyarat beli dan jual.
Parameter yang diperlukan untuk keserasian penunjuk boleh dipromosikan, untuk mengawal kekerapan isyarat.
Dengan cara ini, analisis kumpulan indikator RSI pelbagai kitaran dapat meningkatkan ketepatan penilaian titik pembalikan.
Kedua, kelebihan strategi
Kelebihan utama strategi ini adalah menggunakan indikator RSI pelbagai kitaran untuk analisis agregat, yang dapat meningkatkan ketepatan penghakiman pada titik-titik penting, membuang isyarat palsu.
Kelebihan lain ialah anda boleh menyesuaikan parameter keserasian, mengawal frekuensi perdagangan, dan menyesuaikan diri dengan keadaan pasaran yang berbeza.
Akhirnya, kombinasi RSI yang berbeza-beza juga memberikan lebih banyak ruang parameter untuk pengoptimuman.
Ketiga, potensi risiko
Tetapi strategi ini juga mempunyai risiko:
Pertama, penilaian RSI terhadap perubahan harga mempunyai masalah ketinggalan zaman.
Kedua, sukar untuk menilai isyarat yang dihasilkan oleh kombinasi pelbagai indikator, dan perlu menetapkan peraturan penapisan yang jelas.
Akhirnya, bertukar-tukar itu sendiri mempunyai kadar kegagalan, dan ia memerlukan persediaan mental.
Empat isi, ringkasan
Artikel ini menerangkan secara terperinci mengenai strategi perdagangan kuantitatif yang berdasarkan pada penanda RSI pelbagai kitaran untuk mengenal pasti titik balik. Ia meningkatkan kebolehan untuk mengenal pasti titik balik pasaran dengan menilai keserasian penanda RSI.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Triple RSI Top/Bottom v1.1", shorttitle = "3RSI Top/Bottom 1.1", 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")
leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
indi = input(3, defval = 3, minval = 1, maxval = 3, title = "Indicators")
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))
//Body
body = abs(close - open)
abody = sma(body, 10)
//Signals
acc = 10 - accuracy
signalup1 = fastrsi < (5 + acc) ? 1 : 0
signalup2 = middlersi < (10 + acc * 2) ? 1 : 0
signalup3 = slowrsi < (15 + acc * 3) ? 1 : 0
signaldn1 = fastrsi > (95 - acc) ? 1 : 0
signaldn2 = middlersi > (90 - acc * 2) ? 1 : 0
signaldn3 = slowrsi > (85 - acc * 3) ? 1 : 0
up = signalup1 + signalup2 + signalup3 >= indi
dn = signaldn1 + signaldn2 + signaldn3 >= indi
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 3
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1]
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot)
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Top", strategy.short, needshort == false ? 0 : lot)
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()