Strategi Penyu Breakout Saluran Ganda


Tanggal Pembuatan: 2024-01-05 16:16:44 Akhirnya memodifikasi: 2024-01-05 16:16:44
menyalin: 1 Jumlah klik: 384
1
fokus pada
1224
Pengikut

Strategi Penyu Breakout Saluran Ganda

Ringkasan

Strategi penembusan Turtle dua saluran adalah strategi penembusan yang menggunakan indikator saluran Donchian untuk membangun sinyal perdagangan. Strategi ini membangun saluran cepat dan saluran lambat secara bersamaan, saluran cepat digunakan untuk mengatur harga stop loss, saluran lambat digunakan untuk menghasilkan sinyal posisi terbuka dan posisi damai.

Prinsip Strategi

Logika inti dari strategi Turtle Breakthrough Dual-Channel didasarkan pada indikator saluran Donchian. Saluran Donchian dihitung dari harga tertinggi dan terendah, terdiri dari lintasan atas, lintasan bawah, dan lintasan tengah. Strategi ini menciptakan saluran cepat dan saluran lambat secara bersamaan, dengan parameter yang ditetapkan oleh pengguna, dengan siklus jalur lambat default 50 K-line, dan siklus jalur cepat 20 K-line.

Jalur atas dan bawah saluran lambat (biru) digunakan untuk menghasilkan sinyal perdagangan. Ketika harga menembus jalur atas, lakukan over; Ketika harga jatuh ke bawah, lakukan over. Jalur tengah saluran cepat (merah) digunakan untuk menghentikan over.

Dengan cara ini, saluran lambat bertanggung jawab untuk menghasilkan sinyal, saluran cepat bertanggung jawab untuk menghentikan kerugian, penggunaan dua saluran bekerja sama, memastikan stabilitas sinyal perdagangan dan mengendalikan risiko. Warna latar belakang menunjukkan arah posisi saat ini, hijau adalah multihead, merah adalah head kosong.

Selain itu, strategi juga menetapkan tingkat risiko dan manajemen posisi. Tingkat risiko default 2%, posisi dihitung berdasarkan tingkat risiko dan fluktuasi saluran. Dengan demikian, setiap risiko dapat dikontrol secara efektif dan kenaikan posisi secara bertahap.

Analisis Keunggulan

Strategi penembusan Turtle dua saluran memiliki keuntungan sebagai berikut:

  1. Menggunakan saluran Donchian untuk menilai tren, dapat secara efektif menangkap tren garis tengah dan panjang. Desain saluran ganda membuat strategi hanya mengikuti situasi yang lebih kuat.

  2. Retreat dan risiko dikendalikan dengan baik. Jalur cepat di tengah jalur melakukan stop loss, dari jalur atas ke jalur tengah dan dari jalur bawah ke jalur tengah adalah zona risiko, yang menjamin bahwa setiap kerugian dapat dikendalikan. Strategi juga menetapkan tingkat risiko, yang secara langsung membatasi kerugian maksimum akun.

  3. Sinyal perdagangan stabil. Parameter saluran lambat yang besar, pembentukan saluran membutuhkan waktu yang lama, menghindari perdagangan yang sering. Sementara saluran cepat sebagai stop loss dapat menangkap penyesuaian jangka pendek.

  4. Posisi dan manajemen risiko disempurnakan. Strategi menggunakan volatilitas saluran Donchian untuk menghitung ukuran posisi, untuk mengontrol celah risiko. Penambahan posisi secara bertahap juga membuat posisi kedua belah pihak yang lebih terbuka lebih seimbang.

  5. Indikator visualisasi intuitif. Dual channel, stop loss line, dan latar belakang posisi yang jelas digambarkan, logika perdagangan terlihat jelas.

Analisis risiko

Strategi penembakan Turtle dua saluran juga memiliki risiko:

  1. Strategi Turtle hanya membuka posisi saat terobosan, tidak dapat memanfaatkan situasi yang lebih tepat untuk meningkatkan posisi. Ini dapat ditingkatkan dengan pengoptimalan.

  2. Stop loss mudah dilacak. Stop loss dalam strategi Turtle adalah fast track fixed mid-trail. Dalam pasar aktif, hal ini mungkin tertuju pada stop loss. Hal ini memerlukan penyesuaian parameter mid-trail secara dinamis.

  3. Parameter dua saluran perlu disesuaikan. Parameter saluran harus disetel dengan tepat untuk menghasilkan sinyal yang stabil. Parameter tetap saat ini tidak dapat beradaptasi dengan perubahan pasar, perlu diperkenalkan fungsi adaptasi.

  4. Tidak dapat memanfaatkan informasi overnight dan pre-trade. Strategi saat ini hanya berdasarkan pada tren yang diputuskan oleh pasar yang ada, tidak dapat menggunakan keputusan perdagangan yang dipandu oleh pasar sebelum dan sesudah perdagangan. Ini dapat ditingkatkan dengan penyesuaian data.

Arah optimasi

Strategi penembusan Turtle dengan dua saluran memiliki beberapa optimasi utama:

  1. Dengan menggunakan harga di dalam piring untuk menyesuaikan posisi. Anda dapat menyesuaikan ukuran posisi di dalam piring sesuai dengan jarak harga dari saluran, bukan hanya melakukan over-sharing.

  2. Peningkatan kecerdasan strategi stop loss. Mengubah stop loss yang tetap ke arah yang dinamis, menghindari stop loss yang dilacak.

  3. Optimalisasi parameter saluran secara adaptif. Dengan demikian, parameter saluran dapat disesuaikan secara otomatis sesuai dengan kondisi pasar, daripada menetapkan nilai tetap secara manual.

  4. Menambahkan penilaian sebelum dan sesudah perdagangan. Dalam penilaian strategi, tidak hanya merujuk pada harga saham, tetapi juga harus mempertimbangkan harga sebelum dan sesudah perdagangan, untuk mendapatkan situasi pasar yang lebih komprehensif.

  5. Strategi ini diterapkan pada beberapa saham, dan dapat dikonfigurasi untuk melakukan arbitrage antara berbagai saham dan indeks, untuk mendapatkan alpha.

Meringkaskan

Dual channel breakout Turtle strategi secara keseluruhan adalah strategi pelacakan tren yang stabil, efisien, dan terkendali dengan risiko. Strategi ini menggunakan saluran cepat dan lambat secara bersamaan, memastikan stabilitas sinyal perdagangan dan manajemen risiko. Selain itu, warna latar belakang, pengembalian maksimum, dan manajemen posisi membuat strategi ini mudah dikelola dan dioptimalkan.

Kode Sumber Strategi
/*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)