Strategi ini menggabungkan tahap sokongan / rintangan dinamik dan penunjuk indeks kekuatan relatif (RSI). Ia menetapkan ambang overbought / oversold untuk RSI dan menghasilkan isyarat beli / jual apabila harga memecahkan tahap sokongan / rintangan dinamik sementara RSI tidak berada di kawasan overbought / oversold.
1. Sokongan / rintangan dinamik
Gunakan fungsi keselamatan untuk mendapatkan harga penutupan sebagai tahap sokongan / rintangan dinamik. Isyarat perdagangan dihasilkan apabila harga memecahkan tahap dinamik ini.
2. Penunjuk RSI
Mengira keuntungan purata dan kerugian purata dalam tempoh tertentu untuk menjana nilai RSI dan menentukan sama ada RSI mencapai kawasan overbought / oversold.
3. Isyarat Perdagangan
Apabila harga memecahkan tahap dinamik, jika RSI tidak berada di kawasan overbought / oversold, isyarat beli / jual dihasilkan. Jika tidak, isyarat pecah diabaikan.
4. Isyarat Keluar
Tutup kedudukan apabila harga kembali ke tahap dinamik, atau apabila RSI kembali ke julat normal.
Gunakan sokongan / rintangan dinamik untuk menentukan arah trend untuk kadar kemenangan yang lebih tinggi.
RSI menyaring pelarian palsu dan mengelakkan entri palsu.
Menggabungkan trend dan penunjuk menjadikan strategi dapat disesuaikan dengan keadaan pasaran yang berbeza.
Peraturan yang mudah dan jelas memudahkan pelaksanaannya.
Pelbagai ujian tahap dinamik boleh menghasilkan isyarat palsu.
Solo RSI boleh menyebabkan penilaian yang salah Tambah penunjuk lain untuk penapisan gabungan.
Perdagangan yang kerap di pasaran yang terikat julat membawa kepada kos yang lebih tinggi.
Tetapan parameter yang tidak betul membawa kepada isyarat yang hilang atau salah.
Gunakan pembelajaran mesin untuk mengoptimumkan parameter RSI.
Tambah strategi stop loss / mengambil keuntungan untuk mengunci keuntungan dan mengurangkan kerugian.
Masukkan lebih banyak penunjuk untuk penapisan gabungan untuk meningkatkan kestabilan.
Tambah penunjuk turun naik kepada saiz kedudukan yang lebih rendah apabila turun naik rendah.
Mengoptimumkan algoritma saiz kedudukan untuk menyesuaikan kedudukan secara dinamik untuk persekitaran pasaran yang berbeza.
Strategi ini menggabungkan penilaian trend dan penapisan penunjuk untuk mengenal pasti pembalikan trend di sekitar tahap utama dengan berkesan sambil mengawal risiko. pengoptimuman lanjut pada penyesuaian parameter, berhenti kerugian / mengambil keuntungan, lebih banyak penunjuk dan lain-lain dapat meningkatkan kestabilan dan daya adaptasi untuk menjana keuntungan yang stabil dalam pelbagai pasaran.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title = "timeframe 1") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Level level = request.security(syminfo.tickerid, tf, src[1]) plot(level, linewidth = 3, color = silver) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) //Level Signals ls = close > level and ap == false ? true : low > level ? true : false up1 = strategy.position_size == 0 and ls and (close < open or cf == false) exit1 = close < level and ap == false ? true : high < level ? true : false //RSI Signal up2 = rsi < rsilimit and (close < open or cf == false) exit2 = rsi > rsilimit and ls == false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if (exit1 and rsi > rsilimit) or exit2 strategy.close_all()