Tang Anqi Turtle Trading Strategy adalah versi yang sangat disederhanakan dari Strategi Perdagangan Turtle asal. Ia sangat berbeza dengan strategi Turtle asal. Strategi ini menggunakan dua Saluran Donchian, saluran pantas dan saluran perlahan. Tempoh saluran ditetapkan oleh pengguna, dengan nilai lalai 20 bar untuk saluran pantas dan 50 bar untuk saluran perlahan. Strategi ini menggunakan jalur atas dan bawah saluran perlahan untuk memasuki perdagangan dan jalur tengah saluran pantas untuk menetapkan stop loss.
Logik teras strategi ini ialah:
Hitung Saluran Donchian yang pantas: Band atas adalah tertinggi tertinggi di atas bar pantas yang lalu, band bawah adalah yang terendah, dan band tengah adalah purata band atas dan bawah.
Hitung Saluran Donchian yang perlahan: Band atas adalah tertinggi tertinggi di atas bar perlahan yang lalu, band bawah adalah yang terendah.
Apabila tidak ada kedudukan, isyarat panjang diaktifkan apabila harga menyentuh jalur atas saluran perlahan, dan isyarat pendek diaktifkan apabila harga menyentuh jalur bawah saluran perlahan.
Selepas membuka kedudukan, jalur tengah saluran pantas digunakan sebagai stop loss.
Tutup kedudukan apabila terdapat isyarat bertentangan dengan isyarat pembukaan semasa tempoh penahan.
Kelebihan strategi ini ialah:
Peraturan mudah dilaksanakan. Saluran Donchian dan pergerakan stop loss mudah difahami, sesuai untuk pemula.
Parameter yang boleh disesuaikan. Pengguna boleh menyesuaikan parameter berdasarkan produk perdagangan dan jangka masa untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
Hanya bergantung pada harga pecah saluran jalur, mengelakkan isyarat palsu dari penunjuk biasa.
Pengurusan stop loss automatik. Stop loss bergerak berdasarkan jalur tengah saluran pantas boleh mengehadkan kerugian pada perdagangan tunggal.
Risiko yang dihadapi oleh strategi ini termasuk:
Lebih banyak stop loss apabila trend tidak jelas. Ini mempengaruhi keuntungan strategi.
Apabila trend berbalik, keuntungan terapung dalam arah trend sebelumnya akan berubah menjadi kerugian.
Tetapan parameter yang tidak betul membawa kepada terlalu agresif atau terlalu konservatif. Nilai yang betul perlu dijumpai melalui pengujian balik berulang.
Kebergantungan yang tinggi terhadap perdagangan automatik. Kestabilan pelayan adalah penting untuk mengelakkan pengecualian yang membawa kepada kegagalan dalam perdagangan automatik.
Untuk mengurangkan risiko di atas, parameter boleh dioptimumkan, saiz kedudukan boleh dibatasi dengan sewajarnya, dan modul pengurusan risiko boleh ditambah.
Strategi boleh ditingkatkan dalam aspek berikut:
Tambah penapis untuk isyarat masuk untuk mengelakkan menangkap isyarat pembalikan trend.
Mengoptimumkan parameter seperti tempoh saluran dan saiz kedudukan untuk menyesuaikan instrumen perdagangan yang berbeza dengan lebih baik.
Tambah modul pengurusan risiko seperti had pengambilan maksimum dan had kerugian harian untuk mengelakkan kerugian berlebihan dalam peristiwa melampau.
Memperbaiki strategi stop loss. Sebagai contoh, mengamalkan stop loss untuk membuat berhenti lebih beradaptasi dengan trend pasaran.
Ringkasnya, Strategi Dagangan Penyu Tang Anqi adalah sistem trend berikut yang mudah. Kelebihannya terletak pada kemudahan pemahaman dan automasi. Tetapi ia juga membawa risiko tertentu, dan pengoptimuman lanjut pada parameter dan pengurusan risiko diperlukan untuk menjadikannya lebih praktikal. Dengan langkah-langkah seperti penyesuaian parameter, menambah penapis, dan modul kawalan risiko, strategi dapat mencapai hasil yang lebih baik dalam perdagangan langsung.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle 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") sizelong = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %") sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %") fast = input(20, minval=1) slow = input(50, minval=1) showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(false, 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) plot(ls, offset = offset, color = colorpc) plot(center, offset = offset, color = colorsl) //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Orders truetime = true lotlong = 0.0 lotshort = 0.0 lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1] lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1] //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime) strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if true strategy.close_all() strategy.cancel("fast L") strategy.cancel("fast S") strategy.cancel("slow L") strategy.cancel("slow S") 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])) //Label min := round(min * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" 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)