Strategi perdagangan kitaran silang RSI


Tarikh penciptaan: 2023-10-25 11:20:59 Akhirnya diubah suai: 2023-10-25 11:20:59
Salin: 0 Bilangan klik: 758
1
fokus pada
1617
Pengikut

Strategi perdagangan kitaran silang RSI

Gambaran keseluruhan

Strategi ini menggunakan prinsip overbought dan oversold RSI untuk membuat keputusan, menggabungkan RSI pelbagai kitaran, untuk melakukan operasi melintasi kitaran. Strategi ini membuat keputusan mengenai isyarat overbought dan oversold berdasarkan RSI, dan menggunakan rata-rata bergerak RSI untuk memfilter, untuk mengelakkan isyarat yang salah. Apabila RSI melintasi rata-rata bergerak, ia menghasilkan isyarat beli, dan apabila ia melintasi, ia menghasilkan isyarat jual, yang membentuk operasi silang rata-rata khas.

Prinsip Strategi

Strategi ini menghasilkan isyarat dagangan terutamanya melalui penilaian overbought dan oversold RSI. RSI mewakili indeks yang agak kuat, dan formula pengiraan adalah: RSI = 100 - (100 / (1 + RS) di mana RS adalah nisbah purata purata penutupan dan purata penutupan dalam tempoh tertentu. Indeks RSI berkisar antara 0 dan 100, di mana kurang daripada 30 dianggap sebagai overbought dan lebih tinggi daripada 70 dianggap sebagai overbought.

Strategi ini menetapkan satu parameter tinggi sobrecompra dan satu parameter rendah sobreventa, apabila RSI lebih tinggi daripada sobrecompra, ia dinilai sebagai overbuying, dan apabila RSI lebih rendah daripada sobreventa, ia dinilai sebagai overselling. Strategi ini mempunyai nilai default sobrecompra 70 dan nilai default sobreventa 30.

Untuk menghasilkan isyarat beli dan jual, strategi menggunakan penapis purata bergerak RSI. Apabila RSI melintasi purata bergeraknya, ia menghasilkan isyarat beli Es_compra, dan apabila ia melintasi purata bergeraknya, ia menghasilkan isyarat jual Es_venta.

Selepas menghasilkan isyarat beli dan jual, strategi membuka kedudukan untuk melakukan perdagangan overhead atau kosong. Di samping itu, strategi juga menetapkan stop loss dan stop loss, “%”, untuk mencegah kerugian berkembang dan mengunci keuntungan.

Kelebihan Strategik

  1. Menggunakan RSI untuk menilai keadaan overbought dan oversold, dan mengelakkan mengejar kenaikan dan penurunan.

  2. Guna purata bergerak RSI untuk menyaring gelombang dan mengelakkan isyarat palsu.

  3. Gabungan dengan RSI dalam susunan pelbagai kitaran, untuk mendapatkan isyarat perdagangan yang lebih stabil.

  4. Menetapkan mekanisme pencegahan kerosakan untuk mengawal risiko dengan berkesan.

  5. Logik strategi mudah difahami dan diubah suai.

  6. Parameter boleh disesuaikan untuk pelbagai jenis dan tempoh.

Risiko Strategik

  1. RSI menunjukkan ketinggalan dan mungkin terlepas peluang terbaik untuk harga berbalik.

  2. Rata-rata bergerak menyebabkan isyarat dagangan terlewat dan tidak dapat menangkap pembalikan trend tepat pada masanya.

  3. Tetapan parameter overbought dan oversold yang tetap tidak cukup fleksibel dan perlu disesuaikan untuk tempoh dan varieti yang berbeza.

  4. Penetapan yang tidak betul boleh menyebabkan kerugian atau kehilangan keuntungan.

  5. Posisi kosong berbilang kepala hanya ada satu tangan, tidak dapat menggunakan dana sepenuhnya untuk perdagangan harga selisih.

Pengoptimuman Strategi

  1. Dalam kombinasi dengan penunjuk lain seperti MACD, KD dan lain-lain untuk menentukan isyarat perdagangan.

  2. Aplikasi untuk mengesan trend mengikut purata bergerak.

  3. Tetapkan parameter overbought dan oversold dinamik, menyesuaikan mengikut tahap turun naik pasaran.

  4. Mengoptimumkan algoritma penghentian kerugian, seperti pengesanan hentian dan sebagainya.

  5. Menambah mekanisme pengurusan kedudukan, menyesuaikan kedudukan secara dinamik mengikut saiz dana.

  6. Menambah penapis trend untuk mengelakkan dagangan yang kerap berlaku di pasaran yang bergolak.

  7. Uji balik parameter pengoptimuman dan pilih kombinasi parameter yang optimum.

ringkaskan

Strategi ini adalah berdasarkan overbuy oversell indikator RSI, menggunakan purata bergerak untuk penapisan menghasilkan isyarat perdagangan, mewujudkan tipikal perdagangan melintasi jangka masa. Strategi mempunyai struktur logik yang jelas dan parameter yang ditetapkan, boleh digunakan dengan menyesuaikan parameter untuk pelbagai jenis dan jangka masa, adalah strategi perdagangan melintasi jangka masa yang dipercayai dan berkesan.

Kod sumber strategi
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © samuelkanneman

//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime         = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime           = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)

//////Proceso///////

mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)

Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)

comprado= strategy.position_size > 0
vendido = strategy.position_size < 0

//time to test 
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)


// long

if (not comprado and Es_compra and dateFilter  )
    // realizar long
    cantidad = strategy.equity/hlc3
    strategy.entry ("compra", strategy.long , cantidad)
    SL := close*(1-(StopLoss/100))
    TP := close*(1+(TakeProfit/100))
    
if close >= TP
    strategy.close ("compra" , comment="Salto TP")  

if (comprado and Es_venta  )
    strategy.close ("compra" , comment="Sobre Venta")

if close <= SL
    strategy.close ("compra" , comment="Salto SL")
    
// short

if (not vendido and Es_venta and dateFilter  )
    // realizar short
    cantidad = strategy.equity/hlc3
    strategy.entry ("venta", strategy.short , cantidad)
    SL := close*(1+(StopLoss/100))
    TP := close*(1-(TakeProfit/100))
    
if close <= TP
    strategy.close ("venta" , comment="Salto TP")  

if (vendido and Es_compra  )
    strategy.close ("venta" , comment="Sobre Compra")

if close >= SL
    strategy.close ("venta" , comment="Salto SL")

    

    
    
   ///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)

bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)


// 1d 70 22 5 4 3 15    6 meses
//1h 70 20 6 4 5 7      1 mese
//15m 70 20 5 4 4 7      1 semana