Strategy Stop Loss yang Dinamik

Penulis:ChaoZhang, Tarikh: 2024-01-31 15:05:30
Tag:

img

Ringkasan

Strategi ini berdasarkan mekanisme stop loss yang dinamik untuk menetapkan garis stop loss untuk kedudukan panjang dan pendek berdasarkan harga tertinggi dan terendah saham. Apabila harga mencapai garis stop loss, ia akan menutup kedudukan semasa dan membuka kedudukan baru ke arah yang bertentangan. Strategi ini mudah dan berkesan dalam mengawal risiko urus niaga tunggal.

Prinsip

Langkah utama strategi ini ialah:

  1. Parameter input: pilih untuk pergi panjang atau pendek, menetapkan panjang untuk tempoh, penangguhan hentian
  2. Mengira harga tertinggi dan terendah: mendapatkan harga tertinggi dan terendah berdasarkan panjang input
  3. Mengira garis stop loss: untuk harga yang panjang, harga terendah kurang pergeseran; untuk harga pendek, harga tertinggi ditambah pergeseran
  4. Posisi dibuka dan ditutup: apabila harga mencapai garis stop loss, tutup kedudukan arah semasa dan buka kedudukan arah bertentangan

Di atas adalah logik asas strategi. Apabila harga bergerak, garis stop loss terus dikemas kini untuk pengesanan dinamik. Dengan mengikuti stop loss, ia dapat mengawal kerugian setiap perdagangan dengan berkesan.

Analisis Kelebihan

Kelebihan utama strategi ini:

  1. Logik yang mudah dan bersih, mudah difahami dan dilaksanakan
  2. Pengendalian Stop Loss Trailing Dinamik untuk kerugian perdagangan tunggal
  3. Fleksibel untuk memilih panjang atau pendek, dapat disesuaikan dengan persekitaran pasaran yang berbeza
  4. Sesuaikan tempoh dan slippage untuk pengoptimuman

Ringkasnya, dengan mekanisme hentian kerugian yang mudah, strategi ini dapat menguruskan kedudukan dengan berkesan dan merupakan strategi Pengurusan Risiko biasa.

Analisis Risiko

Terdapat juga beberapa risiko yang perlu diperhatikan:

  1. Volatiliti harga boleh mencetuskan stop loss dengan kerap, yang membawa kepada perdagangan berlebihan
  2. Tetapan tempoh yang tidak betul boleh menyebabkan garis stop loss yang tidak sesuai
  3. Tetapan lipatan yang berlebihan boleh menyebabkan kehilangan berhenti longgar, tidak dapat menghentikan kehilangan pada masa

Risiko-risiko ini boleh dioptimumkan dengan menyesuaikan tempoh, mengurangkan lipatan dengan munasabah untuk membuat garis stop loss yang lebih munasabah.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dari aspek berikut:

  1. Tambah pengoptimuman untuk penyesuaian garis stop loss dinamik, elakkan garis stop loss yang ketat atau longgar yang tidak betul
  2. Tambah keadaan kedudukan terbuka untuk mengelakkan pembukaan kedudukan pada masa yang tidak sesuai
  3. Menggabungkan penunjuk trend untuk trend-mengikuti dengan potensi keuntungan yang lebih
  4. Tambah saiz kedudukan untuk menyesuaikan kedudukan secara dinamik berdasarkan tahap risiko

Kesimpulan

Strategi perdagangan mewujudkan pengurusan kedudukan dinamik melalui kaedah stop loss yang mudah. Ia mudah difahami dan dilaksanakan, dan dapat mengawal kerugian perdagangan tunggal dengan berkesan. Kami menganalisis kelebihan, risiko berpotensi dan arah pengoptimuman masa depan. Kesimpulannya, ini adalah strategi Pengurusan Risiko yang sangat tipikal dan praktikal.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)

Lebih lanjut