Strategi Hentian Pengangkut Dinamis

Penulis:ChaoZhang, Tanggal: 2024-02-27 15:02:34
Tag:

img

Gambaran umum

Strategi ini bertujuan untuk memanfaatkan fungsi stop trailing Bitmex untuk secara dinamis menyesuaikan harga stop loss untuk stop yang lebih akurat dan fleksibel. Strategi ini tidak digunakan untuk entri atau keluar, melainkan memberikan rentang stop loss yang wajar di bawah kondisi pasar yang berbeda. Disarankan untuk backtest dengan nilai yang berbeda. Strategi ini juga dapat diintegrasikan ke dalam strategi yang ada yang memberikan entri / keluar untuk bertindak sebagai stop loss.

Logika Strategi

Strategi ini terutama menggunakan 3 indikator: harga tertinggi, harga terendah dan harga penutupan.longoffsetuntuk jarak penghentian belakang yang panjang danshortoffsetuntuk jarak pendek di belakang stop. jarak panjang default adalah 228,5 poin dan jarak pendek adalah 243,5 poin.

Kemudian strategi menggunakan logika berikut untuk menyesuaikan harga trailing stoptrailstop:

  • Jika harga terendah dari lilin terbaru lebih rendah dari harga trailing stop dari lilin sebelumnya, dan harga terendah dari lilin sebelum itu lebih tinggi dari harga trailing stop dari 2 lilin sebelumnya, maka harga trailing stop lilin saat ini = harga dekat + jarak trailing stop pendek

  • Jika harga tertinggi lilin terbaru lebih tinggi dari harga trailing stop lilin sebelumnya, dan harga tertinggi lilin sebelumnya lebih rendah dari harga trailing stop 2 lilin sebelumnya, maka harga trailing stop lilin saat ini = harga dekat - jarak trailing stop panjang

  • Jika harga tertinggi lilin terbaru lebih tinggi dari harga trailing stop lilin sebelumnya, maka harga trailing stop lilin saat ini = max ((harga trailing stop lilin sebelumnya, harga tertinggi lilin terbaru - jarak trailing stop panjang)

  • Jika harga terendah lilin terbaru lebih rendah dari harga trailing stop lilin sebelumnya, maka harga trailing stop lilin saat ini = min ((harga trailing stop lilin sebelumnya, harga terendah lilin terbaru + jarak trailing stop pendek)

  • Jika tidak, harga stop trailing candle saat ini = harga close

Ini secara dinamis menyesuaikan harga trailing stop berdasarkan perubahan harga pasar tertinggi dan terendah untuk mencapai stop dinamis.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah penerapan stop trailing yang benar-benar dinamis dan fleksibel. Dibandingkan dengan harga stop loss tetap, trailing dinamis dapat menyesuaikan rentang stop loss berdasarkan fluktuasi pasar, menghindari kerugian yang tidak perlu karena jarak stop yang terlalu besar, sementara juga menghindari dihentikan oleh fluktuasi harga normal ketika jaraknya terlalu kecil. Hal ini mengurangi kerugian yang tidak perlu sekaligus mengurangi kemungkinan stop prematur.

Keuntungan lain adalah bahwa jarak stop loss dapat disesuaikan dan dioptimalkan. Pengguna dapat memilih rentang stop loss yang sesuai untuk diri mereka sendiri sesuai dengan karakteristik produk dan gaya perdagangan yang berbeda. Ini memungkinkan strategi untuk diterapkan pada rentang skenario yang lebih luas.

Akhirnya, logika stop loss dari strategi ini sederhana dan jelas, mudah dimengerti, dan mudah dikembangkan lebih lanjut dan diintegrasikan ke dalam strategi lain.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Stop dinamis hanya dapat mengurangi kerugian dalam kondisi pasar normal, tetapi tidak dapat menahan peristiwa besar atau kondisi pasar yang ekstrim.

  2. Jika jarak stop trailing diatur terlalu besar, hal ini dapat menyebabkan kerugian yang lebih besar. Jika diatur terlalu kecil, hal ini dapat berhenti prematur. pengaturan membutuhkan pengujian yang cermat dan optimasi berdasarkan karakteristik produk.

  3. Dalam beberapa lilin pertama setelah membuka posisi, karena mekanisme trailing stops, jarak stop mungkin terlalu besar, menimbulkan beberapa risiko tambahan selama periode ini.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Optimasi parameter untuk produk yang berbeda: Pilih jarak stop trailing panjang dan pendek yang wajar berdasarkan volatilitas, kisaran intraday dan metrik lainnya untuk produk yang berbeda.

  2. Mengurangi risiko tambahan pada lilin awal setelah membuka posisi: Batasi rentang penyesuaian jarak berhenti di beberapa lilin pertama untuk menghindari jarak yang terlalu besar.

  3. Masukkan indikator volume perdagangan: Misalnya, kurangi jarak stop selama lonjakan volume untuk menghindari dihentikan oleh arbitrage.

  4. Kombinasi dengan strategi entry/exit lainnya: Fungsi utama dari strategi ini adalah trailing stop loss.

Kesimpulan

Strategi ini mengimplementasikan stop loss trailing yang dinamis berdasarkan perubahan harga pasar tertinggi dan terendah. Ini dapat secara efektif mengurangi kerugian yang tidak perlu dalam kondisi pasar normal, dan memecahkan masalah jarak tetap yang terlalu besar atau kecil. Arah optimasi utama adalah menguji parameter yang sesuai di berbagai produk, dan mengendalikan risiko pada lilin awal setelah membuka posisi. Logika stop loss sederhana dan jelas, mudah dimengerti dan diintegrasikan ke dalam strategi lain atau digunakan secara mandiri sebagai alat stop loss.


/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//By River
strategy("BitMex Trailing Stop Strategy", overlay=true)
longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5)
shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5)

hiprice = request.security(syminfo.tickerid, "1", high)
loprice = request.security(syminfo.tickerid, "1", low)
price = request.security(syminfo.tickerid, "1", close)

trailstop = price
trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price)))

trailcol = trailstop > price ? red : green
plot(trailstop, color=trailcol)

longCondition =  trailcol == green
alertcondition(longCondition, "Long Stop alert", "BUY")
if (longCondition)
    strategy.entry("Long", strategy.long)
shortCondition = trailcol == red
alertcondition(shortCondition, "Short alert", "SELL")
if (shortCondition)
    strategy.entry("Short", strategy.short)



Lebih banyak