Trend RSI Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-11-07 16:33:43
Tag:

img

Ringkasan

Strategi ini direka berdasarkan penunjuk Indeks Kekuatan Relatif (RSI) untuk mengenal pasti situasi overbought dan oversold dan mengikuti trend. Ia pergi panjang apabila RSI berada di bawah garis overbought dan pergi pendek apabila RSI berada di atas garis overbought, bertujuan untuk mendapat keuntungan dengan mengikuti trend utama pasaran.

Logika Strategi

Strategi ini menggunakan penunjuk RSI untuk mengenal pasti keadaan overbought dan oversold di pasaran. RSI dikira berdasarkan perubahan harga dalam tempoh tertentu. RSI di bawah 30 dianggap oversold manakala RSI di atas 70 dianggap overbought.

Secara khusus, strategi ini mula-mula menentukan parameter RSI panjang=14, overbought=70, oversold=30. Ia kemudian mengira nilai RSI vrsi berdasarkan harga penutupan. Apabila vrsi melintasi di atas garis overbought atau di bawah garis oversold, ia mencetuskan perdagangan panjang atau pendek dengan sewajarnya. Selepas memasuki perdagangan, stop loss tik etoroStopTicks ditetapkan. Posisi akan ditutup apabila stop loss dicetuskan dalam tetingkap perdagangan.

Dengan cara ini, strategi ini dapat mengikuti trend utama pasaran - pergi lama pada situasi terlalu banyak dijual dan pergi pendek pada situasi terlalu banyak dibeli.

Kelebihan

  • Menggunakan RSI untuk mengenal pasti keadaan pasaran yang terlalu banyak dibeli / terlalu banyak dijual untuk menangkap trend
  • Jendela backtesting yang fleksibel untuk menguji tempoh masa yang berbeza
  • Tetapan stop loss yang munasabah untuk mengawal kerugian perdagangan tunggal

Risiko

  • Perbezaan RSI boleh menghasilkan isyarat palsu
  • Stop loss statik gagal menyesuaikan diri dengan turun naik pasaran
  • Sukar untuk mengenal pasti pembalikan trend, boleh membawa kepada perdagangan terbalik

Penyelesaian:

  • Tambah penunjuk penapis untuk mengelakkan entri yang salah berdasarkan isyarat RSI palsu
  • Stop loss dinamik untuk mengesan pergerakan pasaran dalam masa nyata
  • Tambah alat penilaian trend untuk mengelakkan perdagangan terbalik

Peningkatan

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter RSI untuk prestasi terbaik

Uji tempoh RSI yang berbeza dan tahap overbought / oversold untuk mencari parameter optimum dan mengurangkan isyarat palsu.

  1. Tambah alat penilaian trend untuk mengelakkan perdagangan kontra trend

Tambah MA, MACD untuk menilai arah trend dan mengelakkan isyarat yang salah pada titik perubahan.

  1. Penghentian kerugian dinamik

Gunakan ATR untuk menetapkan stop loss adaptif untuk mengesan turun naik pasaran dengan lebih baik.

  1. Meningkatkan peraturan kemasukan

Tambah keadaan lain seperti pecah, peningkatan jumlah kepada isyarat RSI untuk meningkatkan ketepatan kemasukan.

Kesimpulan

Strategi ini menangkap trend dengan mengenal pasti situasi overbought dan oversold menggunakan RSI. Berbanding dengan strategi berhenti pengesanan tradisional, ia mempunyai kelebihan waktu pasaran dengan penunjuk. Walau bagaimanapun, masalah seperti divergensi RSI dan ketidakupayaan untuk mengesan pembalikan trend perlu ditangani. Penambahbaikan lanjut pada pengoptimuman parameter, penghakiman trend, kehilangan berhenti dinamik boleh meningkatkan kestabilan dan keuntungan.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1995)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close

vrsi = rsi(price, length)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih lanjut