VSTOP dan Strategi Perdagangan RSI

Penulis:ChaoZhang, Tanggal: 2023-10-09 15:48:46
Tag:

Gambaran umum

Strategi ini menggabungkan indikator VSTOP dan RSI untuk pergi panjang ketika RSI terlalu banyak dibeli dan pergi pendek ketika RSI terlalu banyak dijual, sementara menggunakan VSTOP untuk menentukan arah tren dan memotong kerugian tepat waktu ketika tren berbalik.

Logika Strategi

  1. Perhitungkan nilai indikator RSI dan atur garis overbought dan oversold.

  2. Menghitung VSTOP, yang merupakan garis stop loss berdasarkan rentang fluktuasi harga. Langkah perhitungan adalah sebagai berikut:

    • Menghitung indikator ATR dan mengatur koefisien ATR banyak

    • Catat harga maksimum dan harga minimum

    • Berdasarkan kondisi uptrend is_uptrend, hitung garis stop loss saat ini: stop = is_uptrend? max - mult * ATR : min + mult * ATR

    • Perbarui garis stop loss: vstop1 = is_uptrend? max(vstop_prev, stop) : min(vstop_prev, stop)

    • Ketika pembalikan tren terjadi, reset stop loss line masuk

  3. Ketika RSI oversold, jika harga melintasi di atas VSTOP, pergi pendek; ketika RSI overbought, pergi panjang.

Analisis Keuntungan

  • Menggabungkan indikator tren dan indikator overbought/oversold membantu menangkap peluang pembalikan di pasar tren.

  • Menggunakan VSTOP untuk mengatur stop loss secara efektif mengendalikan risiko.

  • Pengaturan parameter RSI yang fleksibel dapat dioptimalkan untuk produk yang berbeda.

  • VSTOP secara sistematis melacak stop loss tanpa intervensi manual.

Risiko dan Solusi

  • Jika parameter ATR diatur terlalu besar atau terlalu kecil, garis stop loss tidak akan berarti.

  • Di pasar yang terikat kisaran, RSI dapat memicu sinyal perdagangan yang sering, meningkatkan frekuensi perdagangan dan biaya slippage. Parameter RSI dapat disesuaikan atau filter tambahan ditambahkan untuk mengurangi sinyal yang tidak valid.

  • Pembalikan yang gagal adalah risiko utama dari strategi ini. Pedagang perlu menonton arah tren jangka waktu yang lebih besar untuk menghindari perdagangan kontra-tren. Rata-rata bergerak jangka panjang dapat digunakan untuk menentukan tren.

Arahan Optimasi

  • Pertimbangkan untuk menggabungkan indikator lain untuk menyaring sinyal yang tidak valid, misalnya volume, Saluran Donchian dll.

  • Mengoptimalkan parameter berdasarkan hasil backtest untuk menemukan kombinasi parameter yang optimal.

  • Penelitian bagaimana menyesuaikan koefisien ATR secara dinamis untuk adaptasi dalam lingkungan pasar yang berbeda.

  • Menjelajahi penutupan strategi selama periode berisiko tinggi.

Kesimpulan

Strategi ini mengintegrasikan penilaian tren dan tingkat overbought / oversold untuk menangkap peluang pembalikan di pasar yang sedang tren. VSTOP menyediakan manajemen stop loss yang sistematis untuk pengendalian risiko. Strategi dapat ditingkatkan lebih lanjut melalui optimasi parameter dan penggabungan indikator lain. Pedagang perlu berhati-hati terhadap pembalikan yang gagal, risiko utama.


/*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")

Lebih banyak