
Strategi ini menggunakan indikator ZigZag untuk memetakan garis support dan resistance, dan mengambil tindakan over atau under sesuai ketika harga menembus garis support atau resistance.
Strategi ini pertama-tama menggunakan indikator ZigZag untuk menggambar garis bentuk Z di bawah parameter tertentu. Kemudian menggambar garis dukungan hijau ketika indikator ZigZag muncul di bagian bawah, menggambar garis resistensi merah ketika muncul di bagian atas.
Secara khusus, logika inti dari strategi ini adalah:
Rata-rata pergerakan indeks tiga kali dengan harga close menggunakan ema untuk mendapatkan kurva yang halus.
Untuk menentukan apakah kurva kelancaran naik, jika naik dan garis K sebelumnya tidak naik, catat sebagai bagian bawah, ambil nilai terendah dari garis K ini. Jika turun dan garis K sebelumnya naik, catat sebagai bagian atas, ambil nilai tertinggi dari garis K ini. Jika tidak, NaN.
Proses ini akan menghasilkan zigzag zigzag.
Ketika zigzag naik, catat sebagai titik puncak saat ini; ketika turun, catat sebagai titik dasar saat ini.
Saat titik naik, gambar garis support uplevel dengan warna hijau; saat titik turun, gambar garis resistance dnlevel dengan warna merah.
Jika harga naik di atas garis hijau, maka harga naik di atas garis hijau, dan turun di bawah garis merah, maka harga turun.
Strategi ini memiliki beberapa keuntungan:
Menggunakan indikator ZigZag untuk mengidentifikasi titik-titik dukungan dan resistensi penting, yang seringkali memiliki arti penting.
ZigZag menghapus sebagian dari kebisingan di pasar dan membuat sinyal perdagangan lebih jelas.
Ini adalah salah satu cara yang paling efektif untuk memulai dengan cara terobosan, dan dengan cara ini Anda dapat menangkap perubahan tren tepat waktu.
Garis-garis yang mendukung resistansi dibuat dengan cara yang sederhana dan efektif.
Strategi logis yang jelas dan mudah dipahami, parameter optimasi ruang yang besar.
Fleksibilitas dalam memilih varietas dan siklus waktu perdagangan, adaptasi yang kuat.
Strategi ini juga memiliki beberapa risiko:
Jika parameter indikator ZigZag tidak disetel dengan benar, peluang perdagangan yang hilang dapat terjadi.
Resistensi dukungan dapat diuji ulang setelah dirobek. Stop loss harus diatur untuk mengendalikan risiko.
Sinyal-sinyal terobosan mungkin keliru, dan harus diverifikasi dalam kombinasi dengan tren dan bentuk.
Pasar mungkin bergoyang di sisi yang berlawanan dalam jangka waktu yang lama, di mana strategi dapat menghasilkan terlalu banyak transaksi yang tidak efektif.
Perlu dipertimbangkan dampak dari biaya transaksi dan menghindari terlalu sering melakukan transaksi.
Langkah-langkah yang diambil:
Optimalkan parameter ZigZag untuk menemukan kombinasi parameter optimal.
Setelah terobosan, Anda harus mengatur stop loss untuk mengendalikan kerugian tunggal.
Ini akan meningkatkan keakuratan dengan menggabungkan indikator tren dan sinyal filter lainnya.
Termasuk syarat untuk mengidentifikasi pasar yang terkuras dan tidak diperdagangkan selama periode tersebut.
Dengan demikian, penembusan tersebut dapat dikurangi dengan mengurangi jumlah transaksi yang tidak valid.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Mengoptimalkan parameter ZigZag, menemukan kombinasi parameter terbaik. Parameter terbaik dapat ditemukan dengan melakukan pengukuran ulang.
Pertimbangkan kemungkinan untuk menguji kembali titik resistensi penyangga setelah terobosan masuk, dan atur logika keluar dari tes ulang.
Dengan menggunakan indikator tren seperti MA untuk memfilter sinyal perdagangan yang memiliki probabilitas rendah.
Meningkatkan indikator energi untuk mengkonfirmasi sinyal penembusan dan menghindari munculnya sinyal yang salah.
Mengatur Lachenbruch yang disebut-sebut sebagai metode dual ((dengan melakukan lebih banyak waktu kosong pada saat yang sama) untuk menyaring sinyal yang salah dan mendapatkan keuntungan.
Pertimbangkan untuk mengoptimalkan parameter secara dinamis menggunakan algoritma seperti pembelajaran mesin.
Memperkenalkan strategi stop loss dan menetapkan titik stop loss untuk mengendalikan risiko.
Strategi ini secara keseluruhan adalah strategi tembakan yang sederhana dan praktis. Ini menggunakan indikator ZigZag untuk memetakan garis dukungan dan resistensi, dan bertindak ketika harga menerobos garis-garis ini. Strategi ini memiliki kemampuan adaptasi yang kuat, tetapi ada juga risiko tertentu.
/*backtest
start: 2022-10-13 00:00:00
end: 2023-10-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
// strategy(title = "Noro's ZZ-2 Strategy", shorttitle = "Noro's ZZ-2 Strategy", 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, title = "ZigZag length")
Extreme = input(4, title = "ZigZag extreme")
src = input(close, title = "Source")
showzz = input(false, defval = false, title = "Show ZigZag")
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, Extreme)
zzcol = showzz ? black : na
plot(zigzag, color = zzcol, linewidth = 2)
//Levels
dot = 0.0
dot := zigzag > 0 ? zigzag : dot[1]
uplevel = 0.0
uplevel := dot > dot[1] ? zigzag : uplevel[1]
dnlevel = 0.0
dnlevel := dot < dot[1] ? zigzag : dnlevel[1]
upcol = na
upcol := dot > dot[1] ? na : lime
plot(uplevel, color = upcol, linewidth = 2)
dncol = na
dncol := dot < dot[1] ? na : red
plot(dnlevel, color = dncol, linewidth = 2)
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if dot > 0
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel)