
Strategi ini membentuk tren naik turun dengan mengira harga tertinggi dan terendah dalam tempoh tertentu, dan melakukan lebih banyak apabila harga menembusi tren naik, dan melonggarkan posisi apabila harga jatuh ke bawah. Strategi ini menangkap tahap kekuatan trend, dan menilai masa masuk melalui perlanggaran trend.
Strategi ini mulakan dengan mengira harga tertinggi dan terendah pada 20 garis K yang lalu, membentuk tren atas dan bawah. Apabila harga penutupan K semasa lebih tinggi daripada tren atas, lakukan lebih banyak; Apabila harga jatuh ke bawah, hentikan kedudukan.
Khususnya, strategi menggunakan fungsi tertinggi dan terendah untuk mengira harga tertinggi dan terendah untuk 20 garis K terkini, membentuk ruang. Kemudian menilai sama ada harga penutupan K semasa lebih tinggi daripada yang teratas, dan jika ya, lakukan lebih banyak; jika harga jatuh ke bawah, hentikan kedudukan.
Strategi ini bergantung pada trend untuk menilai masa masuk, dan merupakan strategi mengikuti trend. Ia hanya melakukan lebih banyak dan tidak kosong, dan digunakan untuk jenis yang mempunyai ciri-ciri trend yang jelas.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mudah difahami dan diimplementasikan.
Menggunakan trend breakout untuk menentukan masa masuk, anda boleh menangkap tahap kekuatan trend.
Pengendalian risiko dengan menggunakan Stop Loss Mobile boleh mengehadkan kerugian tunggal secara berkesan.
Hanya buat lebih dan tidak kosong, berlaku untuk varieti yang jelas trend.
Parameter yang boleh disesuaikan, panjang kitaran yang boleh disesuaikan dan stop loss yang boleh disesuaikan.
Strategi ini juga mempunyai risiko:
Tidak dapat dipastikan sama ada trend ini akan berubah atau tidak.
Kedudukan Henti Kerosakan mudah dicetuskan oleh lonjakan harga yang besar seketika.
Ia boleh menyebabkan beberapa kemerosotan kecil apabila trend berubah.
Tidak ada peluang untuk mengambil keuntungan daripada trend menurun.
Tetapan parameter yang tidak betul boleh menyebabkan terlalu sensitif atau lambat.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah indikator penghakiman trend, untuk mengelakkan melakukan lebih banyak lagi apabila trend berbalik. Sebagai contoh, penambahan indikator penghakiman arah trend seperti MACD.
Mengoptimumkan strategi hentian bergerak dan menetapkan kawalan risiko yang lebih munasabah. Sebagai contoh, menggunakan hentian bergerak yang bergelombang dengan harga.
Tambah strategi kosong, anda boleh membuka kedudukan untuk membuat keuntungan dalam trend menurun.
Uji optimasi parameter untuk mencari kombinasi parameter yang optimum.
Tambah fungsi pengoptimuman parameter automatik, menyesuaikan parameter secara dinamik mengikut keadaan pasaran.
Untuk membuat keputusan strategik dalam kombinasi pelbagai tempoh masa, jangan tertipu oleh satu tempoh masa.
Strategi ini secara keseluruhannya mudah difahami, menggunakan trend break untuk menilai masa masuk, dapat menangkap fasa kuat trend. Pada masa yang sama menggunakan stop loss bergerak untuk mengawal risiko. Tetapi strategi ini juga mempunyai beberapa risiko, seperti ketidaktepatan penilaian trend, stop loss yang ditembusi.
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-24 17:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true)
// INPUTS
iLength = input(20, "Length", minval = 1)
stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100
// SETTING
float up = na
up := close > open ? high : nz(up[1])
float down = na
down := close < open ? low : nz(down[1])
highest = highest(up, iLength)
lowest = lowest(down, iLength)
// PLOT
p1 = plot(highest, "Highest", color.black, 2)
p2 = plot(lowest, "Lowest", color.black, 2)
fill(p1, p2, color.new(color.navy, 90), title="Range")
// ENTRY SIGNALS
wickDown = low < lowest
// STRATEGY IMPLEMENTATION
strategy.entry("Buy", strategy.long, when = wickDown)
strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest)
// Customizable Stop Loss
stopLossLevel = close * (1 - stopLossPercent)
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)