Strategi ini menggabungkan dua indikator VSTOP dan RSI, memungkinkan untuk melakukan lebih banyak operasi shorting ketika RSI overbought dan oversold, sekaligus menggunakan VSTOP untuk menilai arah tren, dan berhenti tepat waktu ketika tren berbalik.
Hitung nilai indikator RSI, atur garis overbought dan oversold. Bila RSI lebih besar dari garis overbought, lakukan overbought; Bila RSI lebih kecil dari garis oversold, lakukan overbought.
Perhitungan VSTOP, yang merupakan garis stop loss yang ditetapkan berdasarkan rentang fluktuasi harga. Langkah-langkah perhitungan spesifik adalah sebagai berikut:
Hitung indikator ATR dan tentukan faktor ATR
Catat harga maksimum dan minimum
Berdasarkan apakah ada is_uptrend, hitung stop loss line saat ini = is_uptrend ? max - mult * ATR: min + mult * ATR
Update Stop Loss Line: vstop1 = is_uptrend ? max ((vstop_prev, stop): min ((vstop_prev, stop)
Ketika tren berbalik, kembalikan stop loss line vstop
Ketika RSI oversold, jika harga naik melewati VSTOP, maka melakukan shorting; ketika RSI oversold, maka melakukan over.
Kombinasi indikator tren dengan indikator overbought dan oversold dapat menangkap peluang untuk berbalik dalam situasi tren.
Menggunakan VSTOP untuk mengatur stop loss, dapat mengontrol risiko secara efektif.
Parameter RSI diatur secara fleksibel dan dapat dioptimalkan untuk varietas yang berbeda.
VSTOP secara sistematis melacak stop loss tanpa intervensi manusia.
Jika parameter ATR terlalu besar atau terlalu kecil, stop loss akan hilang. Anda dapat menguji parameter ATR yang berbeda, atau Anda dapat mengaturnya dengan rata-rata ATR.
Dalam situasi konsolidasi, RSI mungkin sering memicu sinyal perdagangan, sehingga meningkatkan frekuensi perdagangan dan biaya slippage. Parameter RSI dapat disesuaikan dengan tepat, atau menambahkan kondisi penyaringan untuk mengurangi sinyal yang tidak valid.
Kegagalan reversal adalah risiko utama dari strategi ini. Pedagang perlu memperhatikan arah tren pada tingkat yang lebih besar dan menghindari operasi berlawanan arah.
Anda dapat mempertimbangkan untuk menghapus sinyal yang tidak valid dalam kombinasi dengan indikator lain, seperti indikator energi kuantitatif, saluran tangki, dll.
Parameter dapat dioptimalkan berdasarkan hasil pengujian ulang untuk menemukan kombinasi parameter yang optimal.
Dengan demikian, dapat dipelajari bagaimana faktor ATR dapat disesuaikan secara dinamis dalam berbagai kondisi pasar.
Anda dapat mengeksplorasi strategi penutupan pada periode waktu tertentu untuk menghindari periode risiko tinggi.
Strategi ini mengintegrasikan penilaian tren dan penilaian overbought dan oversold, yang dapat menangkap peluang reversal dalam situasi tren. Pengelolaan stop loss yang sistematis dengan VSTOP membantu dalam pengendalian risiko. Efektivitas strategi dapat ditingkatkan lebih lanjut melalui pengoptimalan parameter dan kombinasi indikator lain.
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Vstop and RSI", overlay=true)
//RSI Section
length = input(2, "RSI Period")
overSold = input(30, "Oversold Level")
overBought = input(70, "Overbought Level")
price = close
vrsi = rsi (price, length)
//VSTOP Section
vlength = input(2, "Vstop Length")
mult = input(2, "Vstop Mult")
atr_ = atr(vlength)
max1=0.0
min1=0.0
is_uptrend_prev = false
stop=0.0
vstop_prev=0.0
vstop1=0.0
is_uptrend=false
is_trend_changed=false
max_ = 0.0
min_ = 0.0
vstop=0.0
max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)
is_uptrend_prev := nz(is_uptrend[1], true)
stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2)
if vrsi > overBought
strategy.entry("Buy", strategy.long, comment="Buy")
if vrsi < overSold and vstop > price
strategy.entry("Sell", strategy.short, comment="Sell")