Strategi Perdagangan Penyu Berdasarkan Saluran Donchian

Penulis:ChaoZhang, Tarikh: 2024-02-26 14:35:02
Tag:

img

Ringkasan

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.

Logika Strategi

Logik teras strategi ini ialah:

  1. 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.

  2. Hitung Saluran Donchian yang perlahan: Band atas adalah tertinggi tertinggi di atas bar perlahan yang lalu, band bawah adalah yang terendah.

  3. 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.

  4. Selepas membuka kedudukan, jalur tengah saluran pantas digunakan sebagai stop loss.

  5. Tutup kedudukan apabila terdapat isyarat bertentangan dengan isyarat pembukaan semasa tempoh penahan.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Peraturan mudah dilaksanakan. Saluran Donchian dan pergerakan stop loss mudah difahami, sesuai untuk pemula.

  2. Parameter yang boleh disesuaikan. Pengguna boleh menyesuaikan parameter berdasarkan produk perdagangan dan jangka masa untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.

  3. Hanya bergantung pada harga pecah saluran jalur, mengelakkan isyarat palsu dari penunjuk biasa.

  4. Pengurusan stop loss automatik. Stop loss bergerak berdasarkan jalur tengah saluran pantas boleh mengehadkan kerugian pada perdagangan tunggal.

Analisis Risiko

Risiko yang dihadapi oleh strategi ini termasuk:

  1. Lebih banyak stop loss apabila trend tidak jelas. Ini mempengaruhi keuntungan strategi.

  2. Apabila trend berbalik, keuntungan terapung dalam arah trend sebelumnya akan berubah menjadi kerugian.

  3. Tetapan parameter yang tidak betul membawa kepada terlalu agresif atau terlalu konservatif. Nilai yang betul perlu dijumpai melalui pengujian balik berulang.

  4. 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.

Arahan pengoptimuman

Strategi boleh ditingkatkan dalam aspek berikut:

  1. Tambah penapis untuk isyarat masuk untuk mengelakkan menangkap isyarat pembalikan trend.

  2. Mengoptimumkan parameter seperti tempoh saluran dan saiz kedudukan untuk menyesuaikan instrumen perdagangan yang berbeza dengan lebih baik.

  3. Tambah modul pengurusan risiko seperti had pengambilan maksimum dan had kerugian harian untuk mengelakkan kerugian berlebihan dalam peristiwa melampau.

  4. Memperbaiki strategi stop loss. Sebagai contoh, mengamalkan stop loss untuk membuat berhenti lebih beradaptasi dengan trend pasaran.

Kesimpulan

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)

Lebih lanjut