Strategi ini bertujuan untuk menggunakan fungsi berhenti berturut-turut Bitmex
Strategi ini terutamanya menggunakan 3 penunjuk: harga tertinggi, harga terendah dan harga penutupan.longoffset
untuk jarak hentian yang panjang danshortoffset
untuk 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.
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.
Risiko utama strategi ini ialah:
Hentian dinamik hanya dapat mengurangkan kerugian dalam keadaan pasaran biasa, tetapi tidak dapat menahan peristiwa utama atau keadaan pasaran yang melampau.
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.
Dalam beberapa lilin pertama selepas membuka kedudukan, disebabkan oleh mekanisme penangguhan, jarak berhenti mungkin terlalu besar, menimbulkan beberapa risiko tambahan dalam tempoh ini.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Pengoptimuman parameter untuk produk yang berbeza: Pilih jarak berhenti yang panjang dan pendek berdasarkan volatiliti, julat intraday dan metrik lain untuk produk yang berbeza.
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.
Menggabungkan penunjuk jumlah dagangan: Sebagai contoh, mengurangkan jarak berhenti semasa lonjakan dalam jumlah untuk mengelakkan dihentikan oleh arbitrage.
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.
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)