Sumber dimuat naik... memuat...

Strategi Penembusan Saluran Berganda Penyu

Penulis:ChaoZhang, Tarikh: 2024-01-05 16:16:44
Tag:

img

Ringkasan

Strategi Penembusan Penyu Saluran Berganda adalah strategi pecah yang menghasilkan isyarat perdagangan menggunakan penunjuk Saluran Donchian. Strategi ini menubuhkan kedua-dua saluran cepat dan perlahan pada masa yang sama. Saluran cepat digunakan untuk menetapkan harga stop loss, sementara saluran perlahan digunakan untuk menghasilkan isyarat pembukaan dan penutupan. Apabila harga memecahkan rel atas saluran perlahan, pergi panjang; apabila harga memecahkan rel bawah, pergi pendek. Strategi ini mempunyai ciri-ciri penjejakan trend yang kuat dan kawalan penarikan yang baik.

Prinsip-prinsip

Logik teras Strategi Penembusan Penyu Saluran Berganda adalah berdasarkan kepada penunjuk Saluran Donchian. Saluran Donchian terdiri daripada rel atas, rel bawah dan rel tengah yang dikira dari harga tertinggi tinggi dan terendah rendah. Strategi ini mewujudkan kedua-dua saluran pantas dan perlahan secara serentak, dengan parameter yang ditetapkan oleh pengguna dan tempoh lalai 50 bar untuk saluran perlahan dan 20 bar untuk saluran pantas.

Rel atas dan bawah (garis biru) saluran perlahan digunakan untuk menjana isyarat perdagangan. Apabila harga memecahkan melalui rel atas, pergi panjang; apabila harga memecahkan di bawah rel bawah, pergi pendek. Rel tengah (garis merah) saluran pantas digunakan untuk stop loss. Harga stop loss untuk kedudukan panjang adalah rel tengah saluran pantas; harga kehilangan berhenti untuk kedudukan pendek juga adalah rel tengah saluran pantas.

Oleh itu, saluran perlahan menghasilkan isyarat manakala saluran pantas mengawal risiko. Menggunakan saluran berganda memastikan kestabilan isyarat dan kawalan risiko. Warna latar belakang menunjukkan arah kedudukan semasa, dengan hijau untuk panjang dan merah untuk pendek.

Di samping itu, strategi ini juga menetapkan peratusan risiko dan saiz kedudukan. Peratusan risiko lalai kepada 2%, dan saiz kedudukan dikira berdasarkan peratusan risiko dan turun naik saluran. Ini berkesan mengawal risiko setiap perdagangan dan peningkatan kedudukan secara beransur-ansur.

Kelebihan

Strategi Penembusan Penyu Saluran Berganda mempunyai kelebihan berikut:

  1. Kemampuan mengesan trend yang kuat. Menggunakan Saluran Donchian untuk menentukan trend dapat menangkap trend jangka menengah hingga panjang dengan berkesan. Reka bentuk saluran berganda memastikan bahawa strategi hanya mengesan pasaran yang kuat.

  2. Pengurangan dan kawalan risiko yang baik. Rel tengah saluran pantas bertindak sebagai penghalang kerugian, jadi dari rel atas ke rel tengah dan bawah ke rel tengah adalah zon risiko. Ini memastikan kerugian yang boleh dikawal setiap perdagangan. Strategi ini juga menetapkan peratusan risiko untuk mengehadkan kerugian akaun maksimum secara langsung.

  3. Sinyal perdagangan yang stabil. Parameter saluran perlahan yang besar memerlukan masa yang agak lama untuk membentuk saluran, mengelakkan perdagangan berlebihan. Sementara saluran cepat menghentikan kerugian dan menangkap pembetulan jangka pendek. Kedua-duanya saling melengkapi untuk membentuk isyarat perdagangan yang stabil.

  4. Strategi menggunakan turun naik saluran Donchian untuk mengira saiz kedudukan untuk kawalan pendedahan risiko. Peningkatan kedudukan secara beransur-ansur juga mengimbangi kedudukan panjang dan pendek.

  5. Pemandangan intuitif. Saluran berganda, garis stop loss, latar belakang kedudukan semuanya dicatatkan dengan jelas untuk pemahaman logik strategi yang mudah. Sementara itu, pengeluaran maksimum, kerugian maksimum dan metrik utama lain juga dipaparkan.

Risiko

Strategi Penembusan Penyu Saluran Berganda juga mempunyai beberapa risiko:

  1. Tidak dapat menggunakan harga intraday dengan berkesan. Turtle hanya membuka kedudukan pada penembusan saluran, tidak dapat menggunakan keadaan yang lebih tepat untuk meningkatkan kedudukan. Ini boleh ditingkatkan melalui pengoptimuman.

  2. Titik-titik stop loss cenderung untuk memburu. Turtle's fixed middle rail stop loss boleh dengan mudah dipukul di pasaran aktif. Ini memerlukan penyesuaian dinamik parameter tengah rel.

  3. Parameter saluran berganda memerlukan penyesuaian halus. Tetapan parameter yang betul adalah penting untuk isyarat yang stabil yang munasabah. Parameter tetap semasa tidak dapat menyesuaikan diri dengan perubahan pasaran, ciri penyesuaian perlu diperkenalkan.

  4. Tidak dapat menggunakan maklumat semalam dan pra pasaran. Pada masa ini strategi hanya menilai trend berdasarkan data pasaran langsung, tidak dapat memberi maklumat keputusan perdagangan dengan tindakan harga semalam dan pra pasaran. Ini boleh ditangani dengan penyesuaian data.

Arahan pengoptimuman

Arah pengoptimuman utama untuk Strategi Penembusan Penyu Saluran Berganda adalah:

  1. Menggunakan harga intraday untuk menyesuaikan kedudukan. Posisi boleh diselaraskan berdasarkan jarak harga dari saluran dan bukannya hanya sederhana panjang / pendek.

  2. Strategi kehilangan hentian pintar. menukar hentian rel tengah tetap ke pengiraan dinamik untuk mengelakkan memburu kehilangan hentian tetap.

  3. Optimumkan parameter saluran adaptif. Izinkan parameter saluran untuk menyesuaikan diri secara automatik berdasarkan keadaan pasaran dan bukannya nilai tetap manual.

  4. Menggabungkan maklumat overnight dan pra-pasaran. Pertimbangkan bukan sahaja harga semasa, tetapi juga harga overnight dan pra-pasaran ketika menilai trend untuk mendapatkan keadaan pasaran yang lebih lengkap.

  5. Menggabungkan pelbagai saham dan indeks. Terapkan strategi kepada pelbagai saham, dengan peluang arbitrage antara saham dan indeks untuk meningkatkan alfa.

Kesimpulan

Kesimpulannya, Strategi Penembusan Penyu Saluran Berganda adalah trend yang stabil dan cekap secara keseluruhan mengikut strategi dengan kawalan risiko tertanam. Penggunaan dua saluran yang cepat dan perlahan memastikan kestabilan isyarat dan pengurusan risiko. Di samping itu, latar belakang kedudukan, pengeluaran maksimum dan ukuran kedudukan juga menjadikan strategi ini mudah diurus dan dioptimumkan. Secara umum, ini adalah strategi kuantitatif berkualiti tinggi yang bernilai penyelidikan dan penerapan menyeluruh.


/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's RiskTurtle Strategy", shorttitle = "RiskTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong  = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
risk      = input(2, minval = 0.1, maxval = 99, title = "Risk size, %")
fast      = input(20, minval = 1, title = "Fast channel (for stop-loss)")
slow      = input(50, minval = 1, title = "Slow channel (for entries)")
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(true, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
fromyear  = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear    = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth   = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday   = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today     = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc, title = "Slow channel high")
plot(ls, offset = offset, color = colorpc, title = "Slow channel low")
plot(center, offset = offset, color = colorsl, title = "Fast channel stop-loss")

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Var
loss = 0.0
maxloss = 0.0
equity = 0.0
truetime = true

//Lot size
risksize = -1 * risk
risklong = ((center / hs) - 1) * 100
coeflong = abs(risksize / risklong)
lotlong = (strategy.equity / close) * coeflong
riskshort = ((center / ls) - 1) * 100
coefshort = abs(risksize / riskshort)
lotshort = (strategy.equity / close) * coefshort

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and hs > 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and ls > 0 and truetime)
strategy.exit("LongExit", "Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")
    
if showdd

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Max loss size
    equity := strategy.position_size == 0 ? strategy.equity : equity[1]
    loss := equity < equity[1] ? ((equity / equity[1]) - 1) * 100 : 0
    maxloss := min(nz(maxloss[1]), loss)
    
    //Label
    min := round(min * 100) / 100
    maxloss := round(maxloss * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%" + "\nMax.loss " + tostring(maxloss) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)
    // la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)

Lebih lanjut