Strategi Perdagangan Penyu

Penulis:ChaoZhang, Tarikh: 2023-12-25 17:12:05
Tag:

img

Ringkasan

Strategi Perdagangan Penyu adalah strategi mengikuti trend yang menjejaki pecah momentum. Ia dibangunkan oleh peniaga terkenal Richard Dennis pada tahun 1980-an untuk membuktikan bahawa peniaga boleh dididik oleh peraturan dan bukannya dilahirkan. Idea teras strategi adalah untuk mengesan pecah harga dan mengikuti trend, sambil mematuhi prinsip pengurusan wang dengan ketat untuk mengehadkan risiko penurunan.

Logika Strategi

Strategi Perdagangan Penyu menggunakan dua parameter N dan N/2 untuk membina saluran. Khususnya, ia mengira harga tertinggi dan terendah selama N hari dan N/2 hari yang paling baru. Apabila harga melebihi saluran N hari, kedudukan panjang ditubuhkan. Apabila harga jatuh di bawah saluran N / 2 hari, kedudukan ditutup. Begitu juga, apabila harga memecahkan saluran N hari ke arah ke bawah, kedudukan pendek ditubuhkan, dan ditutup apabila harga meningkat di atas saluran N / 2 hari. Matlamatnya adalah untuk mengikuti trend harga sambil mengawal risiko.

Dalam kod, N sepadan denganenter_slowdan N/2 sepadan denganenter_fast. Harga tertinggi (slowLdanfastL) dan harga terendah (slowSdanfastSPosisi panjang dibuka apabila harga melebihi saluran 55 hari (enterL2) dan ditutup apabila harga jatuh di bawah saluran 20 hari (exitL1Posisi pendek dibuka apabila harga memecahkan saluran 55 hari ke bawah (enterS2) dan ditutup apabila harga meningkat di atas saluran 20 hari (exitS1).

Analisis Kelebihan

Kelebihan terbesar Strategi Perdagangan Penyu adalah kawalan risiko. Dengan menubuhkan kedudukan pada harga pecah dan berhenti dengan cepat pada pullbacks, ia berkesan mengawal kerugian pada perdagangan individu. Penggunaan saiz kedudukan pecahan tetap mengurangkan risiko.

Satu lagi kelebihan adalah pemilihan parameter yang mudah. keseluruhan strategi hanya mempunyai 4 parameter yang mudah difahami dan disesuaikan. parameter itu sendiri juga agak stabil, tanpa memerlukan pengoptimuman yang kerap.

Analisis Risiko

Risiko terbesar Strategi Perdagangan Penyu adalah ketidakupayaan untuk mengesan trend jangka panjang. Ia mungkin terlepas peluang kemasukan apabila trend mula terbentuk. Juga, dalam persekitaran goyangan harga yang bergoyang, strategi akan mencetuskan kemasukan dan keluar yang kerap, meningkatkan kos transaksi dan risiko tergelincir.

Di samping itu, tetapan parameter tetap boleh berfungsi dengan sangat berbeza di antara produk dan rejimen pasaran, yang memerlukan penyesuaian manual berdasarkan pengalaman.

Peluang Peningkatan

Strategi Perdagangan Penyu boleh ditingkatkan dengan beberapa cara:

  1. Menambah keupayaan penyesuaian kepada parameter N dan N/2 berdasarkan turun naik pasaran dan kekerapan isyarat untuk menjadikan sistem lebih kukuh di seluruh senario.

  2. Menggabungkan peraturan pengesanan trend sebelum memasuki untuk mengelakkan entri yang salah di pasaran yang bergelombang.

  3. Mengambil pendekatan pelbagai jangka masa untuk mengesahkan trend pada tempoh yang lebih tinggi dan memasuki perdagangan pada tempoh yang lebih rendah.

  4. Mengoptimumkan peraturan stop loss dengan trailing stop atau stop berdasarkan masa untuk mengurangkan drawdowns.

Kesimpulan

Strategi Perdagangan Penyu secara berkesan mengesan trend dengan sistem pecah yang mudah. Kawalan risiko adalah kekuatan terbesarnya, terima kasih kepada hentian cepat dan saiz kedudukan pecahan tetap. Pada masa yang sama, kita melihat pelbagai dimensi di mana strategi dapat diperluaskan dan dioptimumkan untuk memenuhi lebih banyak instrumen dan keadaan pasaran. Secara keseluruhan, ia menyediakan cara yang dikawal risiko untuk menangkap trend harga yang merupakan rujukan penting untuk perdagangan kuantitatif.


/*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)

Lebih lanjut