Strategi Turtle yang memecahkan dua saluran adalah strategi penembusan yang menggunakan indikator saluran Donchian untuk membina isyarat perdagangan. Strategi ini membina saluran cepat dan perlahan pada masa yang sama, saluran cepat digunakan untuk menetapkan harga berhenti, saluran perlahan digunakan untuk menghasilkan tanda-tanda kedudukan terbuka dan posisi. Apabila harga menembusi saluran perlahan di atas lintasan, lakukan lebih banyak; apabila harga jatuh ke bawah lintasan, lakukan kosong.
Logik teras strategi penembusan Turtle dua saluran adalah berdasarkan indikator saluran Donchian. Saluran Donchian dihitung oleh harga tertinggi dan terendah, terdiri daripada lintasan atas, lintasan bawah dan lintasan tengah. Strategi ini mencipta saluran cepat dan lambat pada masa yang sama, parameter yang ditetapkan oleh pengguna, dengan kitaran saluran perlahan lalai adalah 50 K garis, dan kitaran saluran cepat adalah 20 K garis.
Garis atas dan bawah saluran perlahan (garis biru) digunakan untuk menghasilkan isyarat perdagangan. Apabila harga menembusi saluran atas, lakukan lebih banyak; apabila harga jatuh ke bawah, lakukan kosong. Garis tengah saluran cepat (garis merah) digunakan untuk menghentikan kerugian.
Dengan cara ini, saluran perlahan bertanggungjawab untuk menghasilkan isyarat, saluran cepat bertanggungjawab untuk menghentikan kerugian, penggunaan dua saluran bekerjasama, memastikan kestabilan isyarat perdagangan dan mengawal risiko. Warna latar belakang menunjukkan arah kedudukan semasa, hijau untuk banyak, merah untuk kosong.
Di samping itu, strategi ini juga menetapkan tahap risiko dan pengurusan kedudukan. Tahap risiko adalah default 2%, kedudukan dikira berdasarkan tahap risiko dan kadar turun naik saluran.
Strategi penembusan Turtle dua hala mempunyai kelebihan berikut:
Keupayaan untuk mengesan trend yang kuat. Menggunakan saluran Donchian untuk menilai trend, dapat menangkap trend garis tengah dengan berkesan. Reka bentuk dua saluran menjadikan strategi hanya mengikuti keadaan yang lebih kuat.
Pengunduran dan kawalan risiko yang baik. Laluan cepat di tengah-tengah jalan berhenti, dari jalan atas ke jalan tengah dan dari jalan bawah ke jalan tengah adalah kawasan risiko, yang memastikan setiap kerugian dapat dikawal. Strategi juga menetapkan tahap risiko, yang secara langsung mengehadkan kerugian maksimum akaun.
Isyarat dagangan stabil. Parameter saluran perlahan yang besar, pembentukan saluran memerlukan masa yang lebih lama, mengelakkan perdagangan yang kerap. Sementara saluran cepat sebagai stop loss dapat menangkap penyesuaian jangka pendek. Kedua-duanya digunakan bersama, membentuk isyarat perdagangan yang stabil.
Strategi menggunakan kadar turun naik saluran Donchian untuk mengira saiz kedudukan, untuk mengawal celah risiko. Penambahan kedudukan secara beransur-ansur juga menjadikan kedudukan kedua-dua pihak yang lebih banyak ruang lebih seimbang.
Indikator visual intuitif. Dua saluran, garis berhenti, dan latar belakang kedudukan digambarkan dengan jelas, logik perdagangan jelas.
Strategi penembusan Turtle dua hala juga mempunyai risiko:
Tidak dapat menggunakan harga dalam set secara berkesan. Strategi Turtle hanya membuka kedudukan ketika terobosan terobosan, tidak dapat menggunakan keadaan yang lebih tepat untuk meningkatkan kedudukan. Ini dapat diperbaiki dengan pengoptimuman.
Titik henti mudah dijejaki. Titik henti strategi penyu adalah di tengah-tengah laluan pantas yang tetap. Dalam pasaran yang aktif, ini mungkin terhalang oleh henti. Ini memerlukan parameter tengah-tengah yang disesuaikan secara dinamik.
Parameter saluran dua perlu disesuaikan. Parameter saluran disetel dengan betul untuk menghasilkan isyarat yang stabil. Parameter tetap semasa tidak dapat menyesuaikan diri dengan perubahan pasaran, perlu memperkenalkan fungsi penyesuaian.
Tidak dapat menggunakan maklumat malam dan pra-pertandingan. Strategi semasa hanya berdasarkan trend penilaian pasaran dalam talian, tidak dapat menggunakan keputusan perdagangan panduan pasaran pra-pertandingan. Ini boleh diperbaiki dengan penyesuaian data.
Strategi penembusan Turtle dua saluran mempunyai beberapa arah pengoptimuman utama:
Menggunakan harga dalam piring untuk menyesuaikan kedudukan. Anda boleh menyesuaikan saiz kedudukan dalam piring mengikut jarak harga dari saluran, dan bukan hanya melakukan lebih banyak ruang kosong.
Peningkatan kecerdasan strategi hentian. Mengubah laluan hentian tetap menjadi pengiraan dinamik, mengelakkan titik hentian daripada dikejar.
Parameter laluan dapat disesuaikan secara automatik mengikut keadaan pasaran, dan tidak ditetapkan secara manual.
Menambah penilaian sebelum dan selepas perdagangan. Dalam penilaian strategi, bukan sahaja merujuk kepada harga saham, tetapi juga harus mempertimbangkan harga sebelum dan selepas perdagangan, untuk mendapatkan keadaan pasaran yang lebih menyeluruh.
Menggabungkan beberapa saham atau perdagangan indeks. Menggunakan strategi untuk beberapa saham, perdagangan pengaliran boleh dikonfigurasi antara saham dan indeks yang berbeza, untuk mendapatkan alpha.
Strategi penembusan Turtle dua saluran secara keseluruhan adalah strategi pemantauan trend yang stabil, cekap, dan terkawal dengan risiko. Strategi ini menggunakan saluran cepat dan lambat pada masa yang sama, memastikan kestabilan isyarat perdagangan dan pengurusan risiko. Selain itu, warna latar belakang, pengunduran maksimum dan pengurusan kedudukan menjadikan strategi mudah dikendalikan dan dioptimumkan.
/*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)