Strategi kontrarian volatilitas RWI menghitung puncak dan terendah RWI selama periode tertentu untuk menentukan apakah pasar berada dalam keadaan pembalikan untuk menemukan peluang pembalikan.
Strategi ini pertama-tama menghitung RWI tertinggi dan terendah selama periode panjang tertentu (seperti 14 lilin).
RWI Tinggi = (Paling Tinggi - Terendah dari N Periode Yang Lalu) / (ATR dari N Periode * sqrt(N))
RWI Low = (Paling Tinggi dari N Periode Yang Lalu - Rendah) / (ATR dari N Periode * sqrt(N))
Kemudian hitung perbedaan antara RWI tinggi/rendah dan ambang batas untuk menentukan apakah itu di bawah ambang batas (seperti 1).
Jika RWI tinggi di atas RWI rendah lebih dari ambang batas, ditentukan bahwa harga akan berbalik, dan seseorang dapat mempertimbangkan untuk pergi pendek. Jika RWI rendah di atas RWI tinggi lebih dari ambang batas, ditentukan bahwa harga akan berbalik, dan seseorang dapat mempertimbangkan untuk pergi panjang. Ini membentuk strategi perdagangan kontrarian berdasarkan RWI untuk menentukan keadaan pembalikan pasar.
Strategi kontrarian volatilitas RWI memiliki keuntungan berikut:
Strategi kontrarian volatilitas RWI juga memiliki risiko berikut:
Untuk mengendalikan risiko, parameter RWI dapat disesuaikan, filter dapat ditambahkan, rentang pembalikan dapat dibatasi, dll.
Strategi dapat dioptimalkan lebih lanjut dengan cara berikut:
Strategi kontrarian volatilitas RWI memiliki logika yang jelas dengan menggunakan RWI untuk menentukan pembalikan. Logika perdagangan yang solid dan bekerja dengan baik di berbagai pasar. Dengan mengoptimalkan parameter, mengendalikan risiko dll, strategi dapat diterapkan lebih stabil dan efisien.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Copyright (c) 2020-present, JMOZ (1337.ltd) strategy("RWI Strategy", overlay=false) length = input(title="Length", type=input.integer, defval=14, minval=1) threshold = input(title="Threshold", type=input.float, defval=1.0, step=0.1) rwi(length, threshold) => rwi_high = (high - nz(low[length])) / (atr(length) * sqrt(length)) rwi_low = (nz(high[length]) - low) / (atr(length) * sqrt(length)) is_rw = rwi_high < threshold and rwi_low < threshold [is_rw, rwi_high, rwi_low] [is_rw, rwi_high, rwi_low] = rwi(length, threshold) long = not is_rw and rwi_high > rwi_low short = not is_rw and rwi_low > rwi_high strategy.entry("Long", strategy.long, when=long) strategy.entry("Short", strategy.short, when=short) plot(rwi_high, title="RWI High", linewidth=1, color=is_rw?color.gray:color.blue, transp=0) plot(rwi_low, title="RWI Low", linewidth=1, color=is_rw?color.gray:color.red, transp=0)