Strategi Stop Loss Penghantaran Gradient

Penulis:ChaoZhang, Tarikh: 2023-10-25 14:56:28
Tag:

img

Ringkasan

Strategi Stop Loss Trailing Gradient secara dinamik menyesuaikan garis stop loss untuk mengimbangi kawalan risiko dan pengambilan keuntungan. Ia menggunakan Julat Benar Purata (ATR) untuk mengira garis stop loss dan secara berkesan mengesan trend harga, melindungi keuntungan sambil mengurangkan berhenti yang tidak perlu. Strategi ini berfungsi dengan baik untuk saham dengan trend yang kuat dan boleh menghasilkan pulangan yang stabil.

Prinsip-prinsip

Strategi ini menggunakan Julat Benar Purata (ATR) sebagai asas untuk kehilangan berhenti dinamik. ATR dengan berkesan mencerminkan turun naik saham. Strategi ini mula-mula mengambil tempoh ATR sebagai input, biasanya 10 hari. Kemudian nilai ATR dikira. Apabila harga naik, garis kehilangan berhenti juga bergerak ke atas untuk mengikuti harga. Apabila harga turun, garis kehilangan berhenti tetap tidak berubah untuk mengunci keuntungan. Juga, strategi ini membolehkan penyesuaian jarak kehilangan berhenti dari harga menggunakan parameter faktor.

Secara khusus, strategi ini mengira ATR semasa, kemudian mengalikannya dengan faktor untuk mendapatkan jarak stop loss. Jika harga berada di atas harga stop loss, kedudukan panjang dibuka. Jika harga berada di bawah, kedudukan pendek dibuka. Oleh itu, garis stop loss mengikuti harga dengan rapat, mencapai kesan jejak gradien.

Kelebihan

  • Pengecualian pembiayaan yang tidak terkawal
  • ATR mengira jarak berhenti berdasarkan turun naik pasaran
  • Mudah dan mudah untuk mengotomatiskan perdagangan
  • Tempoh ATR yang boleh disesuaikan dan faktor stop loss untuk aset yang berbeza
  • Saldo antara penghentian kerugian dan mengambil keuntungan
  • Mengurangkan hentian yang tidak perlu

Risiko

  • Memilih parameter ATR yang betul adalah penting
  • Stop loss yang terlalu dekat boleh meningkatkan stop out yang tidak perlu
  • Stop loss yang terlalu jauh mungkin gagal mengawal risiko
  • Strategi itu sendiri tidak dapat menentukan trend pasaran
  • Keperluan untuk menilai tempoh ATR dan tetapan faktor

Peningkatan

  • Tambah penapis seperti purata bergerak untuk mengurangkan isyarat palsu
  • Mengoptimumkan tempoh ATR dan faktor stop loss secara automatik melalui pembelajaran mesin
  • Menggabungkan strategi mengambil keuntungan untuk mengunci keuntungan
  • Gabungkan dengan penunjuk lain untuk mengesahkan isyarat beli/jual
  • Penyelidikan lebih baik pengiraan ATR atau tempoh ATR dinamik
  • Menjelajah algoritma penangguhan yang dinamik lain
  • Mengoptimumkan lagi kesan stop loss

Kesimpulan

Strategi Stop Loss Trailing Gradient secara berkesan menyeimbangkan risiko dan keuntungan dengan menyesuaikan jarak stop loss secara dinamik. Dengan logik yang mudah dan konfigurasi yang tinggi, ia sesuai untuk perdagangan algoritma. Penyesuaian parameter dan kombinasi penunjuk yang betul masih bergantung pada kepakaran manusia. Pengoptimuman lanjut dapat menjadikan strategi ini lebih menguntungkan.


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy, by Ho.J.", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// 백테스팅 시작일과 종료일 입력
startYear = input(2020, title="Start Year")
startMonth = input(1, title="Start Month")
startDay = input(1, title="Start Day")

endYear = input(9999, title="End Year")
endMonth = input(12, title="End Month")
endDay = input(31, title="End Day")

// 백테스팅 시간 범위 확인
backtestingTimeBool = (year >= startYear and month >= startMonth and dayofmonth >= startDay) and (year <= endYear and month <= endMonth and dayofmonth <= endDay)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

var bool longCondition = false
var bool shortCondition = false

if backtestingTimeBool
    prevDirection = direction[1]
    if direction < 0
        longCondition := false
        shortCondition := true
    else if direction > 0
        longCondition := true
        shortCondition := false

if longCondition
    strategy.entry("My Long Entry Id", strategy.long)

if shortCondition
    strategy.entry("My Short Entry Id", strategy.short)

plot(strategy.equity, title="equity", color=color.rgb(255, 255, 255), linewidth=2, style=plot.style_area)

Lebih lanjut