RSI Strategi Perdagangan Saluran Siklus

Penulis:ChaoZhang, Tarikh: 2023-10-25 11:20:59
Tag:

img

Ringkasan

Strategi ini menggunakan prinsip overbought dan oversold dari penunjuk RSI dan menggabungkan RSI pelbagai kitaran untuk menjana isyarat, merealisasikan operasi salib kitaran. Strategi ini menilai isyarat overbought dan oversold mengikut tetapan kitaran RSI, dan menggunakan purata bergerak RSI untuk penapisan untuk mengelakkan isyarat yang salah. Ia menjana isyarat beli apabila RSI melintasi purata bergerak dan isyarat jual apabila melintasi di bawah, membentuk mod operasi silang purata bergerak biasa.

Logika Strategi

Strategi ini terutamanya menjana isyarat perdagangan melalui pertimbangan overbought dan oversold dari penunjuk RSI. RSI bermaksud Indeks Kekuatan Relatif, rumusnya adalah: RSI = 100 - (100 / (1 + RS)), di mana RS adalah nisbah keuntungan penutupan purata terhadap kerugian penutupan purata dalam tempoh. Indeks RSI berkisar dari 0 hingga 100, umumnya dianggap terlalu dijual di bawah 30 dan terlalu dibeli di atas 70.

Strategi menetapkan parameter tinggi sobrecompra dan parameter rendah sobreventa. Apabila RSI lebih tinggi daripada sobrecompra, ia dinilai terlalu banyak dibeli. Apabila RSI lebih rendah daripada sobreventa, ia dinilai terlalu banyak dijual. Nilai lalai sobrecompra dan sobreventa dalam strategi masing-masing adalah 70 dan 30.

Untuk menjana isyarat beli dan jual, strategi menggunakan garis purata bergerak penunjuk RSI untuk penapisan. Apabila RSI melintasi garis purata bergerak, isyarat beli Es_compra dihasilkan. Apabila RSI melintasi di bawah garis purata bergerak, isyarat jual Es_venta dihasilkan. Parameter purata bergerak periodos_media lalai kepada 14 tempoh.

Selepas menghasilkan isyarat beli dan jual, strategi ini membuka kedudukan untuk perdagangan panjang atau pendek. Di samping itu, strategi ini juga menetapkan stop loss dan mengambil keuntungan dalam peratusan untuk mengelakkan kerugian yang berlebihan dan mengunci keuntungan.

Kelebihan Strategi

  1. Gunakan penunjuk RSI untuk menilai keadaan overbought dan oversold, mengelakkan mengejar tinggi dan menjual rendah.

  2. Menggunakan purata bergerak penunjuk RSI untuk penapisan untuk mengelakkan isyarat palsu.

  3. Menggabungkan tetapan pelbagai kitaran penunjuk RSI untuk menjana isyarat perdagangan yang lebih stabil.

  4. Tetapkan mekanisme stop loss dan mengambil keuntungan untuk mengawal risiko dengan berkesan.

  5. Logik strategi adalah mudah dan jelas, mudah difahami dan diubah suai.

  6. Parameter yang boleh disesuaikan, dapat disesuaikan dengan produk dan kitaran yang berbeza.

Risiko Strategi

  1. Indikator RSI mempunyai kesan kelewatan, mungkin terlepas masa terbaik untuk pembalikan harga.

  2. Purata bergerak menyebabkan kelewatan isyarat perdagangan, tidak dapat menangkap pembalikan trend pada waktunya.

  3. Tetapan parameter overbought dan oversold yang tetap tidak cukup fleksibel, memerlukan penyesuaian untuk kitaran dan produk yang berbeza.

  4. Tetapan stop loss dan mengambil keuntungan yang tidak betul boleh menyebabkan kerugian atau kehilangan keuntungan.

  5. Posisi panjang dan pendek hanya 1 lot, tidak dapat menggunakan dana sepenuhnya untuk perdagangan spread.

Arahan pengoptimuman

  1. Gabungkan penunjuk lain seperti MACD, KD untuk penilaian isyarat perdagangan.

  2. Menggunakan purata bergerak adaptif untuk mengesan trend.

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

  4. Mengoptimumkan algorithm stop loss dan mengambil keuntungan, seperti trailing stop loss.

  5. Tambah mekanisme pengurusan kedudukan, menyesuaikan kedudukan secara dinamik berdasarkan saiz modal.

  6. Tambah penapisan trend untuk mengelakkan perdagangan yang kerap di pasaran yang terhad.

  7. Backtest untuk mengoptimumkan parameter dan memilih kombinasi parameter yang optimum.

Ringkasan

Strategi ini berdasarkan prinsip overbought dan oversold penunjuk RSI, menggunakan purata bergerak untuk penapisan untuk menjana isyarat perdagangan, merealisasikan perdagangan kitaran silang biasa. Strategi ini mempunyai struktur logik yang jelas dan tetapan parameter, dapat disesuaikan dengan produk dan kitaran yang berbeza melalui penyesuaian parameter, menjadikannya strategi perdagangan kitaran silang yang boleh dipercayai dan berkesan. Tetapi batasan juga wujud dalam alat seperti RSI dan purata bergerak, yang memerlukan pengoptimuman lanjut untuk menjadikan parameter strategi lebih adaptif, kesan penapisan yang lebih baik, dan mengurangkan risiko dan keuntungan meningkat sejauh mungkin.


/*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


Lebih lanjut