Berdasarkan strategi trailing stop loss dinamik


Tarikh penciptaan: 2024-02-27 15:02:34 Akhirnya diubah suai: 2024-02-27 15:02:34
Salin: 0 Bilangan klik: 619
1
fokus pada
1617
Pengikut

Berdasarkan strategi trailing stop loss dinamik

Gambaran keseluruhan

Strategi ini bertujuan untuk memanfaatkan fungsi pengesanan berhenti Bitmestra, menyesuaikan harga berhenti secara dinamik, dan mencapai hentian yang lebih tepat dan fleksibel. Strategi ini tidak digunakan untuk masuk dan keluar, tetapi memberikan ruang hentian yang munasabah dalam keadaan pasaran yang berbeza.

Prinsip Strategi

Strategi ini menggunakan 3 indikator utama: harga tertinggi, harga terendah dan harga penutupan. Strategi ini mula-mula menentukan jarak hentian untuk kedudukan panjang dan pendek, iaitu jarak hentian yang dilacak oleh banyak kepalalongoffsetdan jarak penghentian pengesanan kepala kosongshortoffset│ di mana jarak kedudukan panjang adalah 228.5 dan jarak kedudukan pendek adalah 243.5 │

Kemudian strategi menggunakan logik berikut untuk menyesuaikan harga stop losstrailstop:

  • Minimum harga satu K baris yang lebih baru adalah lebih rendah daripada harga tracking stop loss pada K baris yang lebih awal, dan minimum harga K baris yang lebih awal adalah lebih tinggi daripada harga tracking stop loss pada dua K baris yang lebih awal, maka harga tracking stop loss pada K baris semasa = harga penutupan + jarak tracking stop loss
  • Harga tertinggi pada satu K baris yang lebih baru adalah lebih tinggi daripada harga terhenti yang dikesan pada K baris sebelumnya, dan harga tertinggi pada K baris yang lebih baru adalah lebih rendah daripada harga terhenti yang dikesan pada dua K baris sebelumnya, maka harga terhenti yang dikesan pada K baris semasa = harga penutupan - jarak terhenti yang dikesan oleh banyak kepala
  • Harga tertinggi satu baris K terkini lebih tinggi daripada harga hentian yang dikesan pada baris K terdahulu, maka harga hentian yang dikesan pada baris K semasa = nilai maksimum ((harga hentian yang dikesan pada baris K terdahulu, jarak hentian yang dikesan pada baris K terkini)
  • Harga terendah pada baris K yang paling baru adalah lebih rendah daripada harga terhenti yang dikesan pada baris K sebelumnya, maka harga terhenti yang dikesan pada baris K semasa = nilai minimum ((harga terhenti yang dikesan pada baris K terdahulu, harga terendah pada baris K yang paling baru + jarak terhenti yang dikesan pada kedudukan pendek)
  • Jika tidak, harga hentian dan penutupan pada garis K semasa

Dengan cara ini, anda boleh mengesan dan menyesuaikan harga hentian secara langsung mengikut perubahan harga tertinggi dan terendah di pasaran, untuk mencapai hentian dinamik.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah untuk mencapai penutupan yang benar-benar dinamik dan fleksibel. Berbanding dengan harga penutupan tetap, penutupan dinamik dapat menyesuaikan ruang penutupan mengikut keadaan turun naik pasaran, untuk mengelakkan kerugian yang tidak perlu dari jarak penutupan yang terlalu besar, dan juga untuk mengelakkan penutupan yang terlalu kecil dari pergerakan harga biasa.

Kelebihan lain ialah jarak penutupan boleh disesuaikan dan dioptimumkan. Pengguna boleh memilih julat penutupan yang sesuai dengan ciri-ciri dan gaya perdagangan yang berbeza. Ini menjadikan strategi boleh digunakan untuk lebih banyak senario.

Akhirnya, logik stop loss strategi ini adalah ringkas, mudah difahami, dan mudah untuk dibangunkan semula dan diintegrasikan ke dalam strategi lain, yang merupakan salah satu kelebihan.

Analisis risiko

Risiko utama dalam strategi ini adalah:

  1. Hentian dinamik hanya dapat mengurangkan kerugian dalam keadaan biasa, tidak dapat melindungi kerugian yang disebabkan oleh kejadian besar yang tidak dijangka atau keadaan yang melampau. Ini adalah batasan Hentian dinamik itu sendiri.

  2. Jika jarak penghentian yang dilacak terlalu besar, ia boleh menyebabkan kerugian meluas. Jika jaraknya terlalu kecil, ia mungkin terlambat. Tetapan jarak perlu diuji dan dioptimumkan dengan berhati-hati mengikut ciri-ciri varieti.

  3. Dalam beberapa baris K selepas kedudukan baru dibuka, jarak penutupan mungkin terlalu besar kerana mekanisme penutupan yang dikesan, dan pada masa ini terdapat risiko tambahan tertentu.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Optimumkan parameter pelbagai jenis: Pilih jarak hentian pengesanan multi-kepala dan kosong yang munasabah mengikut tahap turun naik pelbagai jenis, julat turun naik dalam sehari, dan sebagainya. Ini adalah arah pengoptimuman yang paling penting.

  2. Mengurangkan risiko tambahan beberapa garis K selepas membuka kedudukan: Anda boleh mengehadkan penyesuaian untuk mengesan jarak hentian selepas beberapa garis K selepas membuka kedudukan, untuk mengelakkan jarak hentian yang terlalu besar.

  3. Gabungan dengan petunjuk jumlah dagangan: Sebagai contoh, mengurangkan jarak hentian kerugian pada tahap peningkatan jumlah dagangan, untuk mengelakkan hentian kerugian yang dirundingkan.

  4. Gabungan dengan strategi masuk dan keluar yang lain: peranan utama strategi ini adalah untuk mengesan hentikan kerugian, boleh diintegrasikan ke dalam strategi lain dan digunakan bersama dengan peraturan masuk dan keluar.

ringkaskan

Strategi ini mewujudkan fungsi hentian kehilangan secara dinamik berdasarkan perubahan harga tertinggi dan terendah. Ini dapat mengurangkan kerugian yang tidak perlu dalam keadaan normal, dan juga menyelesaikan masalah jarak hentian tetap yang terlalu besar dan terlalu kecil. Arah pengoptimuman utama adalah menguji parameter yang sesuai untuk pelbagai jenis, dan kawalan risiko beberapa garis K setelah membuka kedudukan.

Kod sumber strategi
/*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)