Ini adalah strategi perdagangan kuantitatif yang didasarkan pada Indeks Kekuatan Relatif (RSI) dan indikator Volume Relatif. Strategi ini bertujuan untuk menangkap hasil yang berlebihan dengan memperdagangkan tahap tercepat dari tren yang kuat.
Strategi ini menggabungkan dua indikator: Relative Strength Index (RSI) dan Relative Volume (RVOL). RSI menilai tingkat overbought/oversold. RSI di bawah 30 menunjukkan oversold dan RSI di atas 70 menunjukkan overbought. RVOL menangkap lonjakan volume dibandingkan dengan rata-rata baru-baru ini. Ketika RVOL berada di atas ambang batas, itu menunjukkan tekanan pembelian/penjualan yang kuat.
Logika strategi adalah: pergi panjang ketika RSI menunjukkan overbought (di atas ambang) dan RVOL menembak naik; pergi pendek ketika RSI menunjukkan oversold (di bawah ambang) dan RVOL menembak naik.
Keuntungan terbesar dari strategi ini adalah untuk menemukan bagian yang paling agresif dari tren dengan menggabungkan sinyal overbought / oversold dari RSI dan sinyal volume relatif tinggi.
Dibandingkan dengan menggunakan RSI saja, strategi ini menggabungkan informasi volume untuk menghindari memasuki pasar dengan likuiditas yang tidak cukup. Dibandingkan dengan menggunakan breakout saja, strategi ini mencegah perdagangan melawan tren utama di wilayah OB / OS.
Risiko terbesar dari strategi ini adalah kemungkinan RSI memberikan sinyal palsu. Ketika pasar berkisar, RSI dapat sering melintasi masuk / keluar dari zona OB / OS dan menghasilkan sinyal palsu. Juga, strategi ini sensitif terhadap perubahan volume. Instrumen likuiditas rendah dapat diskon profitabilitas.
Untuk mengurangi risiko, parameter RSI dapat disesuaikan, seperti meningkatkan periode rata-rata, atau mengangkat ambang untuk RVOL.
Optimasi potensial meliputi:
Menambahkan metrik likuiditas untuk menghindari instrumen tidak likuid;
Menambahkan metrik volatilitas untuk perdagangan hanya ketika volatilitas meningkat;
Membangun mekanisme untuk menghindari kebocoran palsu, misalnya volume pemantauan;
Membuat stop loss lebih ketat, untuk membatasi drawdown;
Pengaturan parameter berdasarkan backtest untuk menemukan pengaturan yang optimal.
Strategi Volume Relatif berhasil menemukan titik-titik lonjakan volume dalam zona OB / OS dengan menggabungkan RSI dan volume relatif, menjadikannya strategi penangkapan tren yang efektif.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h 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/ // © gary_trades //This script is a basic concept to catch breakout moves utilising a spike in relative volume when the RSI is high (for longs) or when the RSI is low (for shorts). //Drawdown is typically low as it exits out of the trade once the RSI returns back to "normal levels". //@version=4 strategy(title="Relative Volume & RSI Pop", shorttitle="VOL & RSI Pop", overlay=false, precision=2, margin_long=100, margin_short=100) //RSI RSIlength = input(14, title="RSI Period") RSItop = input(70, title="RSI buy", minval= 69, maxval=100) RSIbottom = input(35, title="RSI short", minval= 0, maxval=35) price = close vrsi = rsi(price, RSIlength) RSIco = crossover(vrsi, RSItop) RSIcu = crossunder(vrsi, RSIbottom) plot(vrsi, "RSI", color=color.purple) band1 = hline(70, "Upper Band", color=#C0C0C0) bandm = hline(50, "Middle Band", color=color.new(#C0C0C0, 50)) band0 = hline(30, "Lower Band", color=#C0C0C0) fill(band1, band0, color=color.purple, transp=90, title="Background") //RELATIVE VOLUME RVOLlen = input(14, minval=1, title="RV Period") av = sma(volume, RVOLlen) RVOL = volume / av RVOLthreshold = input(1.5,title="RV Threshold", minval=0.5, maxval=10) //TRADE TRIGGERS LongCondition = RSIco and RVOL > RVOLthreshold CloseLong = vrsi < 69 ShortCondition = RSIcu and RVOL > RVOLthreshold CloseShort = vrsi > 35 if (LongCondition) strategy.entry("Long", strategy.long) strategy.close("Long", when = CloseLong) if (ShortCondition) strategy.entry("Short", strategy.short) strategy.close("Short", when = CloseShort)