Sumber daya yang dimuat... Pemuatan...

Strategi Perdagangan Penyu

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

img

Gambaran umum

Turtle Trading Strategy adalah strategi trend following yang melacak momentum breakout. Strategi ini dikembangkan oleh trader terkenal Richard Dennis pada tahun 1980an untuk membuktikan bahwa trader dapat dibesarkan oleh aturan daripada lahir.

Logika Strategi

Strategi trading penyu menggunakan dua parameter N dan N/2 untuk membangun saluran. Secara khusus, ia menghitung harga tertinggi dan terendah selama N hari dan N/2 hari terakhir. Ketika harga melebihi saluran N hari, posisi panjang ditetapkan. Ketika harga turun di bawah saluran N/2-hari, posisi ditutup. Demikian pula, ketika harga melanggar saluran N hari ke arah menurun, posisi pendek ditetapkan, dan ditutup ketika harga naik di atas saluran N/2-hari. Tujuannya adalah untuk mengikuti tren harga sambil mengendalikan risiko.

Dalam kode, N sesuai denganenter_slowdan N/2 sesuai denganenter_fastHarga tertinggi (slowLdanfastL) dan harga terendah (slowSdanfastSPosisi panjang dibuka ketika harga melebihi saluran 55 hari (enterL2) dan ditutup ketika harga jatuh di bawah saluran 20 hari (exitL1Posisi pendek dibuka ketika harga menembus saluran 55 hari ke bawah (enterS2) dan ditutup ketika harga naik di atas saluran 20 hari (exitS1).

Analisis Keuntungan

Keuntungan terbesar dari strategi perdagangan penyu adalah pengendalian risiko. Dengan menetapkan posisi pada harga yang pecah dan berhenti dengan cepat pada pullbacks, secara efektif mengendalikan kerugian pada perdagangan individu. Penggunaan ukuran posisi pecahan tetap lebih mengurangi risiko.

Keuntungan lain adalah pemilihan parameter yang sederhana. Seluruh strategi hanya memiliki 4 parameter yang mudah dipahami dan disetel. Parameter itu sendiri juga cukup stabil, tanpa perlu sering dioptimalkan.

Analisis Risiko

Risiko terbesar dari Strategi Perdagangan Penyu adalah ketidakmampuan untuk melacak tren jangka panjang. Ini dapat kehilangan peluang masuk ketika tren mulai terbentuk. Juga, dalam lingkungan osilasi harga yang bergolak, strategi akan memicu masuk dan keluar yang sering, meningkatkan biaya transaksi dan risiko tergelincir.

Selain itu, pengaturan parameter tetap dapat bekerja sangat berbeda di antara produk dan rezim pasar, yang membutuhkan penyesuaian manual berdasarkan pengalaman.

Peluang Peningkatan

Strategi Perdagangan Penyu dapat ditingkatkan dengan beberapa cara:

  1. Tambahkan kemampuan adaptasi ke parameter N dan N/2 berdasarkan volatilitas pasar dan frekuensi sinyal untuk membuat sistem lebih kuat di seluruh skenario.

  2. Masukkan aturan deteksi tren sebelum masuk untuk menghindari masuk ke arah yang salah di pasar yang bergolak.

  3. Mengadopsi pendekatan multi-frame waktu untuk mengkonfirmasi tren pada periode yang lebih tinggi dan melakukan perdagangan pada periode yang lebih rendah.

  4. Mengoptimalkan aturan stop loss dengan trailing stop atau stop berbasis waktu untuk mengurangi drawdown.

Kesimpulan

Turtle Trading Strategy secara efektif melacak tren dengan sistem breakout yang sederhana. Kontrol risiko adalah kekuatan terbesarnya, berkat stop cepat dan ukuran posisi pecahan tetap. Pada saat yang sama, kita melihat banyak dimensi di mana strategi dapat diperluas dan dioptimalkan agar sesuai dengan lebih banyak instrumen dan kondisi pasar. Secara keseluruhan, ini menyediakan cara yang dikendalikan risiko untuk menangkap tren harga yang merupakan referensi 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 banyak