Strategi Breakout Saluran Harga ZZ-4


Tanggal Pembuatan: 2023-09-21 10:59:55 Akhirnya memodifikasi: 2023-09-21 10:59:55
menyalin: 0 Jumlah klik: 647
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini didasarkan pada saluran harga indikator ZZ untuk berdagang, menggunakan sinyal bahwa harga telah melampaui batas atas saluran ke atas atau ke bawah melewati batas bawah saluran untuk membangun posisi overhead atau overhead. Strategi ini mencoba untuk menangkap ledakan tren di luar saluran harga.

Prinsip Strategi

  1. Perhitungan batas atas dan bawah saluran harga
  2. Jika harga saham naik, maka Anda harus membayar lebih banyak.
  3. Tangan kosong ketika harga turun melewati batas bawah
  4. Tentukan waktu mulai dan berhenti trading
  5. Setiap hari sebelum penutupan.

Secara khusus, strategi ini menggunakan indikator ZZ untuk menghitung batas atas dan bawah saluran harga. Ketika harga melewati batas atas dari bawah, masuk lebih banyak; Ketika harga melewati batas bawah dari atas, masuk lebih sedikit. Setelah melakukan lebih banyak, stop loss digunakan, dengan batas atas dan bawah saluran harga sebagai stop loss.

Analisis Keunggulan

  1. Menggunakan saluran harga untuk menilai titik terobosan tren potensial, memiliki kemampuan untuk mengidentifikasi tren
  2. Sinyal perdagangan sederhana, intuitif, dan mudah diukur
  3. Parameter siklus saluran yang dapat disesuaikan untuk varietas dan siklus yang berbeda
  4. Menetapkan rentang tanggal dan penutupan harian membantu dalam pengendalian risiko
  5. Stop loss yang dapat membatasi kerugian tunggal

Analisis risiko

  1. Fluktuasi di dalam saluran harga dapat menyebabkan beberapa stop loss
  2. Parameter harus disesuaikan secara tepat waktu, jika tidak, jangkauan saluran mungkin tidak akurat
  3. Penembusan mungkin palsu, ada risiko tersandung
  4. Potensi keuntungan dibatasi dalam kisaran saluran harga
  5. Ruang untung yang tidak dimanfaatkan sepenuhnya

Risiko ini dapat dikurangi dengan melonggarkan selang channel, mengoptimalkan strategi stop loss, dan menilai kekuatan tren.

Arah optimasi

  1. Uji berbagai parameter untuk menemukan kombinasi terbaik
  2. Peningkatan saluran harga untuk menangkap tren yang lebih besar
  3. Menerapkan indikator penilaian tren untuk menghindari terobosan palsu
  4. Optimalkan strategi stop loss untuk mencegah penipuan
  5. Meningkatkan rasio kepemilikan untuk memaksimalkan keuntungan terobosan
  6. Evaluasi tingkat pengembalian untuk berbagai rentang tanggal

Meringkaskan

Strategi ini didasarkan pada titik ledakan tren penilaian saluran harga. Keuntungan adalah sinyal perdagangan sederhana, stop loss jelas, dan mudah dioperasikan. Kelemahannya adalah adanya sering melompat dan tidak sepenuhnya memanfaatkan tren.

Kode Sumber Strategi
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ZZ-4 Strategy", shorttitle = "Noro's ZZ-4 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, %")
len = input(7, minval = 1, title = "Length")
showll = input(true, defval = true, title = "Show Levels")
showbg = input(false, defval = false, title = "Show Background")
showpc = input(false, defval = false, title = "Show Price Channel")
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")

//Price channel
h = highest(ohlc4, len)
l = lowest(ohlc4, len)
pccol = showpc ? color.blue : na
plot(h, color = pccol, transp = 0)
plot(l, color = pccol, transp = 0)

//Levels
ml = 0
ml := l > l[1] ? 1 : l < l[1] ? -1 : ml[1]
ll = 0.0
ll := ml == 1 and ml[1] == -1 ? l[1] : ll[1]
mh = 0
mh := h > h[1] ? 1 : h < h[1] ? -1 : mh[1]
hl = 0.0
hl := mh == -1 and mh[1] == 1 ? h[1] : hl[1]

//Lines
colorh = showll and hl == hl[1] ? color.lime : na
colorl = showll and ll == ll[1] ? color.red : na
plot(hl, color = colorh, linewidth = 2, transp = 0, title = "Long")
plot(ll, color = colorl, linewidth = 2, transp = 0, title = "Short")

//Background
size = strategy.position_size
trend = 0
trend := size > 0 ? 1 : size < 0 ? -1 : high >= hl ? 1 : low <= ll ? -1 : trend[1]
bgcol = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(bgcol, transp = 80)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ll > 0 and hl > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = hl, when=(truetime))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = ll, when=(truetime))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")