Strategi VRSI lwn MARSI


Tarikh penciptaan: 2024-02-02 17:21:09 Akhirnya diubah suai: 2024-02-02 17:21:09
Salin: 0 Bilangan klik: 970
1
fokus pada
1617
Pengikut

Strategi VRSI lwn MARSI

Gambaran keseluruhan

Strategi VRSI dan MARSI menggunakan purata bergerak untuk meluruskan RSI, mewujudkan strategi dua indikator. Strategi ini menggunakan RSI harga dan RSI jumlah transaksi secara serentak, digabungkan dengan purata bergerak untuk menghasilkan isyarat perdagangan.

Prinsip Strategi

Strategi ini pertama-tama mengira harga dengan RSI 9 kitaran (((RSI), dan jumlah transaksi dengan RSI 9 kitaran (((VRSI)). Kemudian mengira purata bergerak sederhana 5 kitaran kedua-dua RSI ini (((MARSI dan MAVRSI)).

Sinyal perdagangan dihasilkan berdasarkan kepada indikator MARSI. Apabila MARSI naik, ia melakukan plus dan apabila MARSI turun, ia melakukan minus. Selain itu, indikator MAVRSI digunakan untuk menilai kekuatan pasaran dan kemungkinan perubahan trend.

Sebagai contoh, dalam keadaan bermulut, jika harga terus meningkat tetapi jumlah transaksi menurun, ini menandakan bahawa kekuatan bermulut mungkin lemah, anda harus bersedia untuk meletakkan kedudukan kosong. Sebaliknya, dalam keadaan kosong, jika harga terus menurun tetapi jumlah transaksi meningkat, yang menandakan peningkatan kekuatan kosong, anda boleh terus memegang tiket.

Analisis kelebihan

Strategi ini menggabungkan purata bergerak dua RSI untuk menangkap trend dengan berkesan, dan menggunakan perubahan jumlah transaksi untuk menilai kekuatan pasaran dan mengelakkan terikat. Strategi ini dapat menangkap irama pasaran dengan lebih tepat berbanding dengan satu RSI.

Penggunaan purata bergerak juga dapat menyaring sebahagian daripada bunyi bising, menjadikan isyarat lebih dipercayai. Selain itu, pengaturan parameter yang berbeza seperti kitaran RSI dan kitaran purata bergerak juga memberikan kemungkinan untuk pengoptimuman strategi.

Analisis risiko

Risiko utama strategi ini adalah bahawa terdapat kemungkinan terdapat penyimpangan antara kedua-dua indikator. Apabila terdapat penyimpangan antara harga dan jumlah transaksi, isyarat perdagangan juga menjadi kurang dipercayai.

Risiko lain ialah mudah ditarik dalam keadaan penyesuaian. Apabila harga berada dalam penyesuaian mendatar, penunjuk RSI mudah bergoyang ke atas dan ke bawah yang mencetuskan isyarat perdagangan yang tidak perlu. Apabila perlu menyesuaikan parameter atau menilai kedudukan mutlak penunjuk.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan parameter RSI dan purata bergerak untuk mencari kombinasi parameter yang optimum

  2. Menambah penghakiman syarat lain semasa menghasilkan isyarat perdagangan, seperti isyarat reversal yang dipicu oleh indikator RSI di kawasan overbought dan oversold lebih dipercayai

  3. Menambah strategi berhenti, menetapkan berhenti bergerak atau berhenti penunjuk

  4. Gabungan dengan petunjuk lain, seperti bentuk K-line, indikator kadar turun naik dan lain-lain untuk mengelakkan terhad

ringkaskan

Strategi VRSI dan MARSI berjaya menggabungkan indikator RSI harga dan jumlah transaksi, dan perbandingan dan penilaian antara indikator ganda dapat meningkatkan ketepatan dan keuntungan isyarat. Tetapan parameter yang dioptimumkan dan strategi stop-loss juga memberikan kemungkinan untuk operasi yang stabil. Secara keseluruhan, strategi ini menggunakan kombinasi antara indikator dan memperoleh prestasi yang lebih baik daripada indikator RSI tunggal.

Kod sumber strategi
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("VRSI-MARSI Strategy", shorttitle="(V/MA)RSI Str.", overlay=false, default_qty_type=strategy.percent_of_equity, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0, default_qty_value=5, initial_capital=100)

// RSI(close, ="RSI") and RSI(Volume, ="VRSI")
src = close, len = input(9, minval=1, title="Length RSI")
src2 = volume, len2 = input(9, minval=1, title="Length VRSI)")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
up2 = rma(max(change(src2), 0), len2)
down2 = rma(-min(change(src2), 0), len2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

// MA(=Moving Average) of RSI(close, ="MARSI") and RSI(Volume, ="MAVRSI")
len3 = input(5, minval=1, title="Length MARSI")
marsi = sma(rsi, len3)
len4 = input(5, minval=1, title="Length MAVRSI")
marsi2 = sma(rsi2, len4)

// Plot: 
// Default plot of RSI and VRSI: not visible but can be made visible
// Default plot MARSI and MAVRSI: visible
p1 = plot(rsi, linewidth=2, transp=100, color=color.yellow, title="RSI")
p2 = plot(rsi2, linewidth=2, transp=100, color=color.orange, title="VRSI")
m1 = plot(marsi, color=(marsi>=0 ? (marsi[1] < marsi ? color.yellow : color.blue) : (marsi[1] < marsi ? color.yellow : color.blue) ), linewidth = 2, transp = 0, title="MARSI")
m2 = plot(marsi2, color=color.orange, linewidth = 2, transp = 0, title="MAVRSI")

// Color fill:
// Default color fill "RSI - VRSI": not visible but can be made visible
// Default color fill "MARSI - MAVRSI": visible
fill(p1,p2, color = rsi>rsi2 ? color.green : color.red, transp=100, title="BG RSI-VRSI")
fill(m1,m2, color = marsi>marsi2 ? color.green : color.red, transp=75, title="BG MARSI-MAVRSI")

// Lines:
h2=hline(20, color=color.green, linestyle=hline.style_dotted, title="Extreme Oversold Rsi")
h3=hline(30, color=color.black, linestyle=hline.style_dotted, title="Oversold Rsi")
h5=hline(50, color=color.yellow, linestyle=hline.style_dashed, title="Middle line")
h7=hline(70, color=color.black, linestyle=hline.style_dotted, title="Overbought Rsi")
h8=hline(80, color=color.red, linestyle=hline.style_dotted, title="Extreme Overbought Rsi")

// Color fill between Lines "20-30" and "70-80" represents the crossing of "MARSI" and "MAVRSI":
fill(h2, h3, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="20-30 BG color X MARSI/MAVRSI")
fill(h7, h8, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="70-80 BG color X MARSI/MAVRSI")

///Long Entry///
longCondition = marsi > marsi[1] 
if (longCondition)
    strategy.entry("Long", strategy.long)

///Long exit///
Xlong =input(true)
closeConditionLong = marsi < marsi[1] and Xlong
if (closeConditionLong)
    strategy.close("Long")

///Short Entry///
shortCondition = marsi < marsi[1] 
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
///Short exit///
Xshort =input(true)
closeConditionShort = marsi > marsi[1] and Xshort
if (closeConditionShort)
    strategy.close("Short")