Artikel ini memperkenalkan strategi perdagangan yang disebut
Inti dari strategi ini adalah menggunakan indikator ZigZag untuk menemukan titik ekstrim harga dan menampilkan tren harga. Indikator ZigZag terdiri dari Exponential Moving Average (EMA) harga tinggi dan rendah. Secara khusus, indikator ini terdiri dari langkah-langkah berikut:
Hitung EMA rata-rata bergerak eksponensial dari harga penutupan, termasuk tiga garis rata-rata bergerak: garis cepat, garis tengah, dan garis lambat.
Hukum apakah harga berada dalam tren naik, yaitu apakah garis tengah saat ini lebih tinggi dari garis tengah garis K sebelumnya.
Jika saat ini dalam tren naik, cari harga terendah yang dihitung dari awal gelombang titik rendah sebelumnya dalam siklus yang terdeteksi sebagai nilai ZigZag.
Jika saat ini dalam tren menurun, cari harga tertinggi yang dihitung dari awal gelombang titik tinggi sebelumnya dalam siklus yang terdeteksi sebagai nilai ZigZag.
Dengan demikian, indikator ZigZag yang mencerminkan titik ekstrem fluktuasi harga terbentuk.
Berdasarkan hal ini, kita menggunakan garis ZigZag sebagai referensi untuk menilai tren harga. yaitu, ketika harga naik dan menembus garis indikator ZigZag, kita pergi panjang; ketika harga turun dan menembus garis indikator ZigZag, kita pergi pendek.
Keuntungan dari penggunaan indikator ZigZag untuk menentukan tren harga dan melacak harga ekstrim sebagai pendirian posisi adalah:
Dapat secara efektif menyaring kebisingan pasar dan menangkap tren utama.
Sinyal perdagangan yang dibuat pada titik tertinggi dan terendah baru dapat menghasilkan keuntungan secara efisien.
Garis ZigZag relatif halus, yang dapat mengurangi sinyal palsu.
Mudah untuk mengoptimalkan strategi dengan menyesuaikan parameter ZigZag.
Risiko utama dari strategi ini adalah:
Berjalan jangka panjang mungkin terjebak karena fluktuasi yang keras di pasar. Stop loss yang tepat waktu diperlukan pada saat ini.
Indikator ZigZag sensitif terhadap parameter. Pengaturan yang tidak benar dapat kehilangan peluang perdagangan atau menghasilkan sinyal palsu. Parameter perlu diuji dan dioptimalkan dengan tepat.
Strategi pelacakan tren lebih bergantung pada tren pasar.
Menanggapi risiko di atas, kita dapat mengatur mekanisme stop loss untuk mengendalikan kerugian tunggal; pada saat yang sama, menyesuaikan ukuran posisi daripada mencari posisi penuh; akhirnya, mencocokkan berbagai jenis portofolio strategi.
Kami dapat lebih mengoptimalkan strategi ini dalam aspek berikut:
Tambahkan mekanisme stop loss. Misalnya, atur stop loss bergerak atau stop loss untuk amplitudo retracement harga.
Menggabungkan dengan indikator lain untuk penyaring posisi. Misalnya, meningkatkan indikator momentum untuk memastikan momentum yang cukup; atau indikator volume perdagangan untuk memastikan volume perdagangan yang tinggi.
Mengadopsi konfigurasi parameter yang berbeda sesuai dengan lingkungan pasar yang berbeda (seperti pasar bull dan bear).
Uji parameter garis EMA yang berbeda untuk menemukan kombinasi parameter terbaik.
Strategi ini menggunakan indikator ZigZag untuk menentukan tren harga dan menetapkan posisi pelacakan di dekat titik ekstrim. Keuntungannya adalah mengikuti tren secara efisien untuk mendapatkan keuntungan. Ini juga memiliki risiko terjebak. Kita dapat mengatur stop loss, mengoptimalkan parameter dan portofolio strategi perdagangan untuk mengendalikan risiko. Strategi ini lebih cocok untuk perdagangan tren jangka menengah hingga panjang. Jika dikontrol dan dikombinasikan dengan benar, itu dapat memperoleh pengembalian yang stabil.
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-07 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's ZigTrend Strategy v1.0", shorttitle = "ZigTrend 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") length = input(4) ExtremeDetection = input(4) src = input(close) 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") //ZigZag f_zz(_length, _detection)=> _hls = ema(ema(ema(src, _length), round(_length*0.66)), round(_length*0.33)) _isRising = _hls >= _hls[1] _zigzag = _isRising and not _isRising[1] ? lowest(_detection) : not _isRising and _isRising[1] ? highest(_detection) : na zigzag = f_zz(length, ExtremeDetection) plot(zigzag, color=black, linewidth=2) //Signals up = close > zigzag dn = close < zigzag //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)