Strategi kontrarian turun naik RWI mengira puncak dan terendah RWI dalam tempoh tertentu untuk menentukan sama ada pasaran berada dalam keadaan pembalikan untuk menemui peluang pembalikan.
Strategi ini pertama kali mengira RWI tertinggi dan terendah dalam jangka masa tertentu (seperti 14 lilin).
RWI Tinggi = (Tinggi - Terendah N Tempoh Sebelumnya) / (ATR N Tempoh * sqrt(N))
RWI rendah = (Paling tinggi daripada N tempoh yang lalu - rendah) / (ATR N tempoh * sqrt(N))
Kemudian mengira perbezaan antara RWI tinggi/rendah dan ambang untuk menentukan sama ada ia di bawah ambang (seperti 1).
Jika RWI tinggi adalah di atas RWI rendah lebih daripada ambang, ia ditentukan bahawa harga akan berbalik, dan seseorang boleh mempertimbangkan untuk pergi pendek. Jika RWI rendah adalah di atas RWI tinggi lebih daripada ambang, ia ditentukan bahawa harga akan berbalik, dan seseorang boleh mempertimbangkan untuk pergi panjang. Ini membentuk strategi perdagangan bertentangan berdasarkan RWI untuk menentukan keadaan pembalikan pasaran.
Strategi RWI yang bertentangan dengan turun naik mempunyai kelebihan berikut:
Strategi RWI yang bertentangan dengan turun naik juga mempunyai risiko berikut:
Untuk mengawal risiko, parameter RWI boleh diselaraskan dengan sewajarnya, penapis boleh ditambah, julat pembalikan boleh dibatasi, dll.
Strategi ini boleh dioptimumkan lagi dengan cara berikut:
Strategi RWI mempunyai logika yang jelas menggunakan RWI untuk menentukan pembalikan. Logik perdagangan adalah kukuh dan berfungsi dengan baik di pasaran yang berbeza. Dengan mengoptimumkan parameter, mengawal risiko dan lain-lain, strategi dapat digunakan dengan lebih mantap dan cekap.
/*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)