Strategi Hentian Pengangkutan Dinamik

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

img

Ringkasan

Strategi ini bertujuan untuk menggunakan fungsi berhenti berturut-turut Bitmex untuk menyesuaikan harga stop loss secara dinamik untuk berhenti yang lebih tepat dan fleksibel. Strategi ini tidak digunakan untuk entri atau keluar, tetapi memberikan julat stop loss yang munasabah di bawah keadaan pasaran yang berbeza.

Logika Strategi

Strategi ini terutamanya menggunakan 3 penunjuk: harga tertinggi, harga terendah dan harga penutupan.longoffsetuntuk jarak hentian yang panjang danshortoffsetuntuk jarak berhenti belakang pendek. jarak panjang lalai adalah 228.5 mata dan jarak pendek adalah 243.5 mata.

Kemudian strategi menggunakan logik berikut untuk menyesuaikan harga hentian penghantarantrailstop:

  • Jika harga terendah lilin terbaru adalah lebih rendah daripada harga hentian penunjang lilin sebelumnya, dan harga terendah lilin sebelum itu adalah lebih tinggi daripada harga hentian penunjang 2 lilin sebelumnya, maka harga hentian penunjang lilin semasa = harga dekat + jarak hentian penunjang pendek

  • Jika harga tertinggi lilin terkini adalah lebih tinggi daripada harga hentian hentian lilin sebelumnya, dan harga tertinggi lilin sebelum itu adalah lebih rendah daripada harga hentian hentian 2 lilin sebelumnya, maka harga hentian hentian lilin semasa = harga dekat - jarak hentian hentian panjang

  • Jika harga tertinggi lilin terkini adalah lebih tinggi daripada harga hentian hentian lilin sebelumnya, maka harga hentian hentian lilin semasa = max ((harga hentian hentian lilin sebelumnya, harga hentian hentian lilin terbaru - jarak hentian hentian panjang)

  • Jika harga terendah lilin terkini adalah lebih rendah daripada harga hentian penghantaran lilin sebelumnya, maka harga hentian penghantaran lilin semasa = min ((harga hentian penghantaran lilin sebelumnya, harga hentian lilin terbaru + jarak hentian penghantaran pendek)

  • Jika tidak, harga hentian lilin semasa = harga tutup

Ini secara dinamik menyesuaikan harga hentian mengikut perubahan harga pasaran tertinggi dan terendah untuk mencapai hentian dinamik.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah pelaksanaan berhenti yang benar-benar dinamik dan fleksibel. Berbanding dengan harga stop loss tetap, trailing dinamik dapat menyesuaikan julat stop loss berdasarkan turun naik pasaran, mengelakkan kerugian yang tidak perlu disebabkan oleh jarak berhenti yang terlalu besar, sementara juga mengelakkan dihentikan oleh turun naik harga normal apabila jaraknya terlalu kecil. Ini mengurangkan kerugian yang tidak perlu sementara juga mengurangkan kebarangkalian berhenti terlalu awal.

Satu lagi kelebihan ialah jarak stop loss boleh disesuaikan dan dioptimumkan. Pengguna boleh memilih julat stop loss yang sesuai untuk diri mereka sendiri mengikut ciri-ciri produk dan gaya perdagangan yang berbeza. Ini membolehkan strategi digunakan untuk pelbagai senario.

Akhirnya, logik stop loss strategi ini adalah mudah dan jelas, mudah difahami, dan mudah dikembangkan dan disatukan ke dalam strategi lain.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Hentian dinamik hanya dapat mengurangkan kerugian dalam keadaan pasaran biasa, tetapi tidak dapat menahan peristiwa utama atau keadaan pasaran yang melampau.

  2. Jika jarak hentian yang terlalu besar, ia boleh menyebabkan kerugian yang lebih besar. Jika ditetapkan terlalu kecil, ia boleh berhenti lebih awal. Tetapan ini memerlukan ujian dan pengoptimuman yang teliti berdasarkan ciri produk.

  3. Dalam beberapa lilin pertama selepas membuka kedudukan, disebabkan oleh mekanisme penangguhan, jarak berhenti mungkin terlalu besar, menimbulkan beberapa risiko tambahan dalam tempoh ini.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Pengoptimuman parameter untuk produk yang berbeza: Pilih jarak berhenti yang panjang dan pendek berdasarkan volatiliti, julat intraday dan metrik lain untuk produk yang berbeza.

  2. Mengurangkan risiko tambahan dalam lilin awal selepas membuka kedudukan: Batasi julat penyesuaian jarak berhenti yang tertinggal dalam beberapa lilin pertama untuk mengelakkan jarak yang terlalu besar.

  3. Menggabungkan penunjuk jumlah dagangan: Sebagai contoh, mengurangkan jarak berhenti semasa lonjakan dalam jumlah untuk mengelakkan dihentikan oleh arbitrage.

  4. Gabungkan dengan strategi kemasukan/keluar lain: Fungsi utama strategi ini adalah penangguhan stop loss. Ia boleh disatukan dengan strategi lain dengan peraturan kemasukan dan keluar.

Kesimpulan

Strategi ini melaksanakan stop loss yang dinamik berdasarkan perubahan harga pasaran tertinggi dan terendah. Ia dapat mengurangkan kerugian yang tidak perlu dalam keadaan pasaran biasa, dan menyelesaikan masalah jarak tetap yang terlalu besar atau kecil. Arah pengoptimuman utama adalah menguji parameter yang sesuai di pelbagai produk, dan mengawal risiko pada lilin awal selepas membuka kedudukan. Logik stop loss adalah mudah dan jelas, mudah difahami dan diintegrasikan ke dalam strategi lain atau digunakan secara bebas 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 lanjut