
Strategi Perdagangan Kura-kura (Turtle Trading Strategy) adalah strategi pengesanan trend untuk mengesan momentum penembusan. Ia dibangunkan oleh peniaga terkenal Richard Dennis pada tahun 1980-an untuk mengesahkan sama ada peniaga boleh dibiakkan dengan peraturan, dan bukan semula jadi.
Strategi perdagangan pantai menggunakan dua parameter N dan N / 2 untuk membina saluran. Secara khusus, harga tertinggi dan harga terendah dalam N hari dan N / 2 hari terakhir dikira secara berturut-turut.
N sesuai dalam kodenter_slow, N/2 sesuaienter_fast│ harga tertinggi dalam tempoh 55 hari dan harga tertinggi dalam tempoh 20 hari.slowLdanfastLHarga minimumlowest(slowS和fastS)。当价格超过55天通道时做多(enterL2),当价格跌破20天通道时平多仓(exitL1);当价格跌破55天通道时做空(enterS2),当价格超过20天通道时平空仓(exitS1`)。
Kelebihan terbesar strategi perdagangan pantai adalah kawalan risiko. Dengan membina kedudukan ketika harga pecah, dengan cepat berhenti ketika harga mundur, kerugian tunggal dapat dikendalikan dengan berkesan. Pada masa yang sama, prinsip pengurusan dana saham tetap digunakan, yang selanjutnya mengurangkan risiko.
Kelebihan lain ialah pilihan parameter mudah. Strategi ini hanya mempunyai 4 parameter, mudah difahami dan disesuaikan.
Risiko terbesar dalam strategi dagangan pantai adalah tidak dapat mengikuti trend jangka panjang. Apabila trend mula terbentuk, strategi ini mungkin kehilangan peluang masuk. Selain itu, strategi ini akan sering membuka posisi kosong dalam trend turun naik harga, meningkatkan kos dagangan dan risiko slippage.
Di samping itu, parameter tetap mungkin berbeza-beza dalam pelbagai jenis dan keadaan pasaran. Ini memerlukan pengalaman tangan untuk menyesuaikan.
Strategi perdagangan ikan pari boleh dioptimumkan dalam beberapa aspek:
Tambah fungsi penyesuaian parameter. Membolehkan parameter N, N / 2 disesuaikan secara automatik mengikut turun naik pasaran dan kekerapan isyarat, menyesuaikan diri dengan lebih banyak senario.
Menambah peraturan penilaian trend. Menentukan arah trend sebelum masuk, mengelakkan salah masuk dalam keadaan harga yang bergolak.
Menggabungkan beberapa strategi unity tempoh masa. Menentukan arah trend pada tempoh masa yang lebih tinggi, memasuki tempoh masa yang lebih rendah.
Optimumkan strategi penangguhan kerugian. Trailing Stop atau Time Stop, Kurangkan Pengunduran.
Strategi dagangan belalang mewujudkan trend yang berkesan melalui sistem yang mudah untuk menerobos. Kawalan risiko adalah kelebihan terbesar strategi ini, berkat pengendalian kerugian dan pengurusan dana tetap yang cepat. Pada masa yang sama, kita juga melihat bahawa strategi ini dapat diperluas dan dioptimumkan dari pelbagai dimensi untuk menyesuaikan diri dengan lebih banyak jenis dan persekitaran pasaran.
/*backtest
start: 2022-12-24 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//oringinally coded by tmr0, modified by timchep
//original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007) CURTIS FAITH
strategy("Turtles", shorttitle = "Turtles", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100)
//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////
shortingEnabled = input(title="Enable Shorting?", type=bool, defval=true)
enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)
fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)
slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)
enterL1 = high > fastL[1]
exitL1 = low <= fastLC[1]
enterS1 = low < fastS[1]
exitS1 = high >= fastSC[1]
enterL2 = high > slowL[1]
exitL2 = low <= slowLC[1]
enterS2 = low < slowS[1]
exitS2 = high >= slowSC[1]
if testPeriod()
strategy.entry("fast L", strategy.long, when = enterL1)
if not enterL1
strategy.entry("slow L", strategy.long, when = enterL2)
strategy.close("fast L", when = exitL1)
strategy.close("slow L", when = exitL2)
if shortingEnabled and testPeriod()
strategy.entry("fast S", strategy.short, when = enterS1)
if not enterS2
strategy.entry("slow S", strategy.short, when = enterS2)
strategy.close("fast S", when = exitS1)
strategy.close("slow S", when = exitS2)