Sistem Titik Imbangan Trend Welles Wilder

Penulis:ChaoZhang, Tarikh: 2023-09-23 15:30:58
Tag:

Ringkasan

Ini adalah Sistem Titik Imbangan Trend asal yang dicipta oleh Welles Wilder pada tahun 1978, dengan peraturan yang terdapat dalam bukunya Konsep Baru dalam Sistem Dagangan Teknikal.

Logika Strategi

Komponen dan peraturan utama adalah:

  1. Penunjuk momentum: Mengira perubahan harga dalam N tempoh untuk menentukan trend.

  2. Keadaan panjang: Momentum meningkat dalam tempoh semasa dan dua tempoh sebelumnya.

  3. Keadaan pendek: Momentum jatuh dalam tempoh semasa dan dua tempoh sebelumnya.

  4. Stop loss: Harga purata hari sebelumnya ± julat hari sebelumnya.

  5. Ambil keuntungan: 2 * harga purata hari sebelumnya - hari sebelumnya rendah (panjang) atau tinggi (pendek).

  6. Keluar dengan berhenti atau sasaran selepas masuk.

Strategi ini secara langsung menggunakan momentum untuk mengenal pasti trend dan pendekatan berhenti / sasaran yang berstruktur untuk mengawal risiko dan membentuk sistem trend yang kukuh.

Kelebihan

Berbanding dengan strategi trend berikut yang lain, kelebihan utama adalah:

  1. Pengiraan momentum yang mudah, mudah dilaksanakan.

  2. Penapis gabungan pelbagai tempoh bunyi.

  3. Struktur berhenti / sasaran adalah kukuh.

  4. Batasan kerugian setiap perdagangan.

  5. Pengeluaran boleh dikawal, mengambil keuntungan jelas.

  6. Mudah untuk beroperasi dengan fleksibel.

  7. Parameter yang boleh diselaraskan untuk pasaran yang berbeza.

  8. Logik intuitif dan mudah.

  9. Secara keseluruhan kestabilan dan kawalan risiko yang baik.

Risiko

Walau bagaimanapun, risiko adalah:

  1. Kelewatan momentum mungkin terlepas belokan utama.

  2. Prestasi bergantung pada penyesuaian parameter.

  3. Tiada penapis kelantangan, risiko terperangkap.

  4. Tetapan berhenti / sasaran kaku, mungkin gagal dalam amalan.

  5. Tempoh backtest yang terhad, perlu mengesahkan ketahanan jangka panjang.

  6. Saiz tetap tidak mempunyai penyesuaian dinamik.

  7. Ruang pengoptimuman terhad, alpha tidak pasti.

  8. Perlu memantau nisbah ganjaran / risiko dan pemasangan lengkung.

Peningkatan

Berdasarkan analisis, penambahbaikan mungkin melibatkan:

  1. Uji kiraan momentum yang berbeza.

  2. Menambah pengesahan jumlah.

  3. Mengoptimumkan parameter berhenti / sasaran.

  4. Memperkenalkan pembelajaran mesin untuk isyarat dinamik.

  5. Menilai ketahanan merentasi produk dan jangka masa.

  6. Membina model saiz kedudukan dinamik.

  7. Menetapkan had pengambilan maksimum yang boleh diterima.

  8. Mengoptimumkan strategi pengurusan risiko.

  9. Pengujian semula berterusan untuk mengelakkan pemasangan berlebihan.

Kesimpulan

Ringkasnya, ini adalah sistem trend yang agak mudah dan langsung. Tetapi pengoptimuman berterusan dan ujian kestabilan adalah kunci untuk mana-mana strategi untuk kekal adaptif. Melalui usaha sistematik, prestasi dan kestabilan strategi dapat ditingkatkan.


/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © 2020 X-Trader.net

//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)

MomPer = input(2, "Momentum Period")

isLong = strategy.position_size > 0
isShort = strategy.position_size < 0

longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]

longEntry = (not isLong) and longTrigger 
shortEntry = (not isShort) and shortTrigger

longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)

strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong) 

strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort) 



Lebih lanjut