Double Channel Breakthrough Turtle Strategy adalah strategi breakout yang menghasilkan sinyal perdagangan menggunakan indikator Donchian Channel. Strategi ini menetapkan saluran cepat dan lambat pada saat yang sama. Saluran cepat digunakan untuk menetapkan harga stop loss, sementara saluran lambat digunakan untuk menghasilkan sinyal pembukaan dan penutupan. Ketika harga menembus rel atas saluran lambat, pergi panjang; ketika harga menembus rel bawah, pergi pendek. Strategi ini memiliki karakteristik pelacakan tren yang kuat dan kontrol penarikan yang baik.
Logika inti dari Strategi Penembusan Penyu Saluran Ganda didasarkan pada indikator Saluran Donchian. Saluran Donchian terdiri dari rel atas, rel bawah dan rel tengah yang dihitung dari harga tertinggi tertinggi dan terendah terendah. Strategi ini menciptakan saluran cepat dan lambat secara bersamaan, dengan parameter yang ditetapkan oleh pengguna dan periode default 50 bar untuk saluran lambat dan 20 bar untuk saluran cepat.
Rel atas dan bawah (garis biru) dari saluran lambat digunakan untuk menghasilkan sinyal perdagangan. Ketika harga menembus rel atas, pergi panjang; ketika harga menembus rel bawah, pergi pendek. Rel tengah (garis merah) dari saluran cepat digunakan untuk stop loss. Harga stop loss untuk posisi panjang adalah rel tengah saluran cepat; harga stop loss untuk posisi pendek juga adalah rel tengah saluran cepat.
Dengan demikian, saluran lambat menghasilkan sinyal sementara saluran cepat mengontrol risiko. Menggunakan saluran ganda memastikan stabilitas sinyal dan pengendalian risiko. Warna latar belakang menunjukkan arah posisi saat ini, dengan hijau untuk panjang dan merah untuk pendek.
Selain itu, strategi juga menetapkan persentase risiko dan ukuran posisi. persentase risiko default menjadi 2%, dan ukuran posisi dihitung berdasarkan persentase risiko dan volatilitas saluran. Ini secara efektif mengontrol risiko per perdagangan dan peningkatan posisi secara bertahap.
Strategi Penembusan Penyu Saluran Berganda memiliki keuntungan berikut:
Kemampuan pelacakan tren yang kuat. Menggunakan Donchian Channel untuk menentukan tren dapat secara efektif menangkap tren jangka menengah hingga panjang. Desain saluran ganda memastikan bahwa strategi hanya melacak pasar tren yang kuat.
Pengurangan dan pengendalian risiko yang baik. Rel tengah saluran cepat bertindak sebagai stop loss, sehingga dari rel atas ke rel tengah dan bawah ke rel tengah adalah zona risiko. Ini memastikan kerugian yang dapat dikendalikan per perdagangan. Strategi juga menetapkan persentase risiko untuk secara langsung membatasi kerugian akun maksimum.
Sinyal perdagangan yang stabil. Parameter saluran lambat yang besar membutuhkan waktu yang relatif lama untuk membentuk saluran, menghindari perdagangan yang berlebihan. Sementara saluran cepat menghentikan kerugian dan menangkap koreksi jangka pendek. Keduanya saling melengkapi untuk membentuk sinyal perdagangan yang stabil.
Strategi ini menggunakan volatilitas saluran Donchian untuk menghitung ukuran posisi untuk pengendalian eksposur risiko.
Visualisasi intuitif. saluran ganda, garis stop loss, latar belakang posisi semuanya jelas digambarkan untuk pemahaman logika strategi yang mudah. Sementara itu penarikan maksimum, kerugian maksimum dan metrik kunci lainnya juga ditampilkan.
Strategi Turtle Double Channel Breakthrough juga memiliki beberapa risiko:
Tidak dapat secara efektif memanfaatkan harga intraday. Turtle hanya membuka posisi pada channel breakout, tidak dapat menggunakan situasi yang lebih tepat untuk meningkatkan posisi. Ini dapat ditingkatkan melalui optimasi.
Turtle's fixed mid-rail stop loss dapat dengan mudah dipukul di pasar aktif. Hal ini membutuhkan penyesuaian dinamis dari parameter mid-rail.
Parameter saluran ganda membutuhkan penyetelan halus. Pengaturan parameter yang tepat sangat penting untuk sinyal yang stabil yang wajar. Parameter tetap saat ini tidak dapat beradaptasi dengan perubahan pasar, fitur adaptif perlu diperkenalkan.
Tidak dapat memanfaatkan informasi overnight dan pra-pasar. Saat ini strategi hanya menilai tren berdasarkan data pasar langsung, tidak dapat menginformasikan keputusan perdagangan dengan tindakan harga overnight dan pra-pasar. Ini dapat ditangani dengan penyesuaian data.
Arah pengoptimalan utama untuk Strategi Penembusan Penyu Saluran Ganda adalah:
Menggunakan harga intraday untuk menyesuaikan posisi Posisi dapat disesuaikan berdasarkan jarak harga dari saluran bukan hanya sederhana panjang / pendek.
Strategi stop loss yang cerdas. Ubah halte rel tengah tetap ke perhitungan dinamis untuk menghindari perburuan stop loss tetap.
Optimasi parameter saluran adaptif. Mengizinkan parameter saluran untuk menyesuaikan secara otomatis berdasarkan kondisi pasar daripada nilai tetap manual.
Menggabungkan informasi overnight dan pre-market. Pertimbangkan tidak hanya harga langsung, tetapi juga harga overnight dan pre-market ketika menilai tren untuk mendapatkan kondisi pasar yang lebih lengkap.
Menggabungkan beberapa saham dan indeks, menerapkan strategi untuk beberapa saham, dengan peluang arbitrase antar saham dan indeks untuk meningkatkan alfa.
Sebagai kesimpulan, Strategi Penembusan Penyu Saluran Ganda adalah tren yang stabil dan efisien secara keseluruhan mengikuti strategi dengan pengendalian risiko tertanam. Penggunaan ganda saluran cepat dan lambat memastikan stabilitas sinyal dan manajemen risiko. Selain itu, latar belakang posisi, penarikan maksimum dan ukuran posisi juga membuat strategi ini mudah dikelola dan dioptimalkan. Secara umum, ini adalah strategi kuantitatif berkualitas tinggi yang layak penelitian 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)