Strategi ini menggabungkan kedua-dua penunjuk VSTOP dan RSI, untuk melakukan banyak operasi shorting apabila RSI melampaui pembelian, dan menggunakan VSTOP untuk menentukan arah trend, dan berhenti tepat pada masanya apabila trend berbalik.
Hitung nilai indikator RSI, menetapkan garisan overbuy dan garisan oversell. Apabila RSI lebih besar daripada garisan overbuy, buat lebih banyak; Apabila RSI lebih kecil daripada garisan oversell, buat kosong.
Hitung VSTOP, ia adalah garis hentian yang ditetapkan berdasarkan rentang turun naik harga. Langkah-langkah pengiraan khusus adalah seperti berikut:
Hitung ATR dan tentukan faktor ATR
Rekod harga maksimum dan minimum
Berdasarkan sama ada dalam trend naik is_uptrend, mengira garis hentian semasa stop = is_uptrend ? max - mult * ATR: min + mult * ATR
Kemas kini garis hentian: vstop1 = is_uptrend ? max ((vstop_prev, stop): min ((vstop_prev, stop)
Apabila trend berbalik, menetapkan semula garis hentian vstop
Apabila RSI oversell, jika harga naik melalui VSTOP, maka buat short; apabila RSI oversell, buat lebih.
Gabungan antara indikator trend dan indikator overbought dan oversold dapat menangkap peluang untuk berbalik dalam keadaan trend.
Menggunakan VSTOP untuk menetapkan hentian, anda boleh mengawal risiko dengan berkesan.
Parameter RSI mempunyai tetapan yang fleksibel dan boleh dioptimumkan untuk pelbagai jenis.
VSTOP secara sistematik menjejaki hentian tanpa campur tangan manusia.
Jika parameter ATR ditetapkan terlalu besar atau terlalu kecil, garis hentian akan kehilangan makna. Anda boleh menguji parameter ATR yang berbeza, atau anda boleh menetapkannya dengan nilai purata ATR.
Dalam keadaan penyetaraan, RSI mungkin sering mencetuskan isyarat perdagangan, yang meningkatkan frekuensi perdagangan dan kos slippage. Parameter RSI boleh disesuaikan dengan betul, atau menambah syarat penapisan untuk mengurangkan isyarat tidak sah.
Kegagalan pembalikan adalah risiko utama strategi ini, peniaga perlu memberi perhatian kepada arah trend yang lebih besar, dan mengelakkan operasi berlawanan. Arah trend boleh difahami dengan menggabungkannya dengan garis purata jangka panjang.
Anda boleh mempertimbangkan untuk menghapuskan isyarat yang tidak sah dengan menggunakan indikator lain, seperti indikator tenaga kuantitatif, saluran Tongji, dan sebagainya.
Parameter boleh dioptimumkan berdasarkan hasil tinjauan semula untuk mencari kombinasi parameter yang terbaik.
Kajian boleh dilakukan mengenai bagaimana faktor ATR boleh disesuaikan secara dinamik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Anda boleh meneroka strategi untuk menutup pada masa-masa tertentu untuk mengelakkan risiko yang tinggi.
Strategi ini mengintegrasikan penilaian trend dan penilaian overbought dan oversold, yang dapat menangkap peluang pembalikan dalam keadaan trend. Pengurusan kerugian berhenti secara sistematik membantu mengawal risiko.
/*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")