Strategi mengikut arah aliran berdasarkan penunjuk RSI


Tarikh penciptaan: 2023-10-26 15:44:15 Akhirnya diubah suai: 2023-10-26 15:44:15
Salin: 0 Bilangan klik: 689
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan penunjuk RSI

Gambaran keseluruhan

Strategi ini direka bentuk berdasarkan petunjuk RSI sebagai sistem perdagangan mengikuti trend yang mudah, yang dapat menentukan arah trend pasaran melalui petunjuk RSI dalam jangka masa tertentu, untuk melakukan melakukan shorting tambahan secara automatik.

Prinsip Strategi

Strategi ini menggunakan RSI untuk menentukan trend pasaran, dan Bollinger Bands untuk menentukan kawasan overbought dan oversold.

Pertama, nilai RSI dikira, kemudian rata-rata bergerak RSI dan standard deviation dikira untuk Brin Belt naik ke bawah. Indeks RSI berayun antara 0-1, dan Brin Belt menggunakan standard deviation untuk menentukan kawasan overbought dan oversold, RSI lebih tinggi dari atas adalah kawasan overbought, dan lebih rendah dari bawah adalah kawasan oversold.

Apabila RSI menghasilkan isyarat beli apabila ia menerobos dari bawah ke atas, dan menghasilkan isyarat jual apabila ia menerobos dari atas ke bawah, trend diikuti. Selepas strategi masuk, tidak menetapkan stop loss, dan tidak meletakkan posisi kosong sehingga akhir tarikh yang ditetapkan.

Strategi ini mudah dan berkesan menggunakan indikator RSI untuk menentukan arah trend, ditambah dengan Brinband untuk menentukan masa perdagangan tertentu. Dengan membatasi julat tarikh perdagangan, risiko yang tidak perlu dapat dielakkan.

Analisis kelebihan

  • Menggunakan RSI untuk menentukan arah trend mudah dan berkesan
  • Sinyal pengesahan transaksi yang digabungkan dengan pita Brin untuk mengelakkan penembusan palsu
  • Hadkan tarikh dagangan untuk mengelakkan risiko pasaran
  • Tiada set stop loss, maksimum trend mengikut
  • Parameter yang boleh disesuaikan secara fleksibel untuk pelbagai keadaan pasaran

Risiko dan pengoptimuman

  • Pasaran mungkin mengalami turun naik yang teruk dan menyebabkan kerugian
  • Tidak ada stop loss yang ditetapkan, tidak dapat mengawal risiko dengan berkesan
  • Tetapan parameter yang tidak betul boleh menyebabkan perdagangan yang kerap atau kehilangan peluang

Arah untuk dioptimumkan:

  • Menyertai strategi Hentikan Kerosakan dan Kawal Risiko
  • Pengaturan parameter yang dioptimumkan untuk meningkatkan kadar kemenangan
  • Digabungkan dengan indikator lain untuk menapis isyarat dan mengelakkan penembusan palsu
  • Dinamika penyesuaian saiz kedudukan

ringkaskan

Strategi ini secara keseluruhannya adalah strategi yang sangat mudah dan terus mengikuti trend. Menggunakan RSI untuk menilai trend, Brin membawa isyarat penapis, mengehadkan julat tarikh perdagangan, dapat mengesan trend dengan berkesan dan mengawal risiko. Tetapi strategi ini dapat dioptimumkan lebih lanjut, dengan mengekalkan asas yang mudah dan berkesan, dengan menghentikan stop loss, pengoptimuman parameter, penapis isyarat, dan lain-lain.

Kod sumber strategi
/*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()