Strategi Perdagangan Penyu Richard

Penulis:ChaoZhang, Tarikh: 2024-02-06 11:56:47
Tag:

img

Ringkasan

Richard's Turtle Trading Strategy adalah strategi perdagangan berdasarkan teknik perdagangan penyu Richard Dennis. Ia menggunakan harga pecah untuk mengesan trend. Ia pergi lama apabila harga memecahkan melalui 20 hari tinggi dan pergi pendek apabila harga memecahkan melalui 20 hari rendah.

Logika Strategi

Logik teras strategi perdagangan penyu Richard adalah untuk mengesan trend berdasarkan harga pecah. Khususnya, strategi ini terus memantau harga tertinggi (_20_day_highest) dan terendah (_20_day_lowest) dalam 20 hari terakhir. Apabila harga penutupan memecahkan paras tertinggi 20 hari, ia menandakan kejayaan ke atas, mencetuskan pesanan panjang. Apabila harga penutupan jatuh di bawah paras terendah 20 hari, ia menandakan kejayaan ke bawah, mencetuskan pesanan pendek.

Selepas memasuki kedudukan, strategi ini menggunakan Julat Benar Purata (ATR) untuk mengira harga stop loss. Ia juga mengesan harga tertinggi dan rendah 10 hari untuk stop loss slippage. Apabila stop loss panjang atau stop loss slippage dicetuskan, ia akan menutup kedudukan panjang. Apabila stop loss pendek atau stop loss slippage dicetuskan, ia akan menutup kedudukan pendek.

Kelebihan

Strategi perdagangan penyu Richard mempunyai kelebihan berikut:

  1. Ia secara automatik mengesan trend menggunakan harga pecah. Ia boleh secara automatik mengenal pasti trend pembalikan dan menyesuaikan kedudukan sewajarnya.
  2. Mekanisme stop loss ATR berkesan mengawal stop loss tunggal.
  3. Mekanisme hentian kerugian tergelincir dalam beberapa keuntungan dan mengurangkan pengeluaran.
  4. Logik strategi adalah mudah dan mudah difahami untuk pemula.
  5. Tiada keperluan untuk meramalkan trend pasaran atau pengiraan yang rumit, hanya perdagangan berasaskan peraturan yang mudah.

Risiko

Terdapat juga beberapa risiko dengan strategi perdagangan penyu Richard:

  1. Perdagangan breakout cenderung terperangkap, kadangkala menghasilkan kekerapan perdagangan yang berlebihan.
  2. ATR dan kehilangan hentian tergelincir mungkin terlalu ketat, menyebabkan kehilangan hentian awal kadang-kadang.
  3. Ia hanya menggunakan data harga tanpa menggabungkan faktor lain untuk meramalkan kesinambungan trend.
  4. Backtest risiko overfit, hasil dagangan sebenar mungkin miskin.

Untuk mengurangkan risiko ini, kita boleh mengoptimumkan keadaan kemasukan dengan lebih banyak penunjuk untuk meramalkan trend; menyesuaikan algoritma stop loss untuk mengurangkan kekerapan stop loss.

Arahan pengoptimuman

Strategi perdagangan penyu Richard boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter untuk mencari kombinasi parameter yang optimum, seperti menyesuaikan kitaran pengiraan atau menguji kelipatan ATR yang berbeza.
  2. Masukkan lebih banyak penunjuk atau algoritma pembelajaran mesin untuk menilai kesinambungan trend, seperti purata bergerak, penunjuk momentum dll.
  3. Mengoptimumkan kaedah stop loss, seperti menguji kehilangan stop slip fleksibel, kehilangan stop trailing dan lain-lain.
  4. Gabungkan penunjuk sentimen, berita dan maklumat lain untuk meramalkan pergerakan pasaran.

Kesimpulan

Strategi perdagangan penyu Richard adalah strategi trend breakout yang sangat tipikal. Ia mudah dan praktikal, baik untuk pemula belajar, dan paradigma perdagangan kuant. Strategi ini boleh dioptimumkan dengan banyak cara untuk mengurangkan risiko dan meningkatkan keuntungan. Secara keseluruhan, strategi penyu Richard sangat mencerahkan.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

Lebih lanjut