Sistem Titik Keseimbangan Tren Welles Wilder

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

Gambaran umum

Ini adalah Sistem Titik Keseimbangan Tren asli yang diciptakan oleh Welles Wilder pada tahun 1978, dengan aturan yang ditemukan dalam bukunya New Concepts in Technical Trading Systems.

Logika Strategi

Komponen dan aturan utama adalah:

  1. Indikator momentum: Menghitung perubahan harga selama N periode untuk menentukan tren.

  2. Kondisi panjang: momentum meningkat selama dua periode saat ini dan sebelumnya.

  3. Kondisi pendek: Momentum yang menurun selama dua periode saat ini dan sebelumnya.

  4. Stop loss: Harga rata-rata hari sebelumnya ± kisaran hari sebelumnya.

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

  6. Keluar dengan stop atau target setelah masuk.

Strategi ini secara langsung menggunakan momentum untuk identifikasi tren dan pendekatan stop / target terstruktur untuk mengendalikan risiko dan membentuk sistem trend berikut yang kuat.

Keuntungan

Dibandingkan dengan strategi lain yang mengikuti tren, keuntungan utama adalah:

  1. Perhitungan momentum sederhana, mudah diterapkan.

  2. Multi-periode combo filter kebisingan.

  3. Stop / target terstruktur yang kuat.

  4. Batas kerugian per perdagangan.

  5. Pengurangan dapat dikontrol, mengambil keuntungan jelas.

  6. Mudah dioperasikan secara fleksibel.

  7. Parameter yang dapat disesuaikan untuk pasar yang berbeda.

  8. Logika intuitif dan sederhana.

  9. Stabilitas dan pengendalian risiko yang baik secara keseluruhan.

Risiko

Namun, risikonya adalah:

  1. Momentum lag mungkin melewatkan tikungan kunci.

  2. Kinerja bergantung pada pengaturan parameter.

  3. Tidak ada filter volume, risiko terjebak.

  4. Pengaturan stop/target kaku, mungkin gagal dalam prakteknya.

  5. Periode backtest terbatas, perlu untuk memverifikasi ketahanan jangka panjang.

  6. Ukuran tetap tidak memiliki penyesuaian dinamis.

  7. Ruang pengoptimalan terbatas, alfa tidak pasti.

  8. Perlu memantau rasio reward/risiko dan curve fitting.

Peningkatan

Mengingat analisis, peningkatan dapat mencakup:

  1. Mencoba perhitungan momentum yang berbeda.

  2. Menambahkan konfirmasi volume.

  3. Mengoptimalkan parameter stop/target.

  4. Memperkenalkan pembelajaran mesin untuk sinyal dinamis.

  5. Mengevaluasi ketahanan produk dan jangka waktu.

  6. Membangun model ukuran posisi dinamis.

  7. Menetapkan batas maksimum pengambilan yang dapat ditoleransi.

  8. Mengoptimalkan strategi manajemen risiko.

  9. Pengujian backtesting terus menerus untuk mencegah overfitting.

Kesimpulan

Dalam kesimpulan, ini adalah sistem yang relatif sederhana dan langsung mengikuti tren. Tetapi optimasi terus menerus dan pengujian ketahanan adalah kunci untuk setiap strategi untuk tetap beradaptasi. Melalui upaya sistematis, kinerja dan stabilitas 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 banyak