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.
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.
Penyelesaian:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji tempoh RSI yang berbeza dan tahap overbought / oversold untuk mencari parameter optimum dan mengurangkan isyarat palsu.
Tambah MA, MACD untuk menilai arah trend dan mengelakkan isyarat yang salah pada titik perubahan.
Gunakan ATR untuk menetapkan stop loss adaptif untuk mengesan turun naik pasaran dengan lebih baik.
Tambah keadaan lain seperti pecah, peningkatan jumlah kepada isyarat RSI untuk meningkatkan ketepatan kemasukan.
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)