Strategi ini menggunakan perubahan harga tertinggi dan terendah dari K-line untuk menilai arah dan intensitas osilasi pasar, dan menggabungkan rata-rata bergerak untuk menilai tren keseluruhan untuk melaksanakan operasi jangka pendek.
Strategi ini pertama-tama menilai perubahan harga tertinggi dan terendah dari K-line relatif terhadap K-line sebelumnya. Jika harga tertinggi naik, itu dicatat sebagai 1. Jika harga terendah turun, itu dicatat sebagai -1, jika tidak dicatat sebagai 0. Kemudian hitung nilai rata-rata perubahan harga tertinggi dan terendah dalam siklus tertentu untuk menilai arah dan intensitas osilasi pasar.
Pada saat yang sama, strategi mencatat harga tertinggi dan terendah dalam siklus terbaru. Ketika rata-rata bergerak menentukan pembalikan tren, dikombinasikan dengan harga yang tercatat untuk menentukan tingkat harga kunci untuk membentuk tingkat stop loss dan take profit.
arah masuk ditentukan oleh moving average. pergi panjang di atas rel atas dan pergi pendek di bawah rel bawah. stop loss dan mengambil tingkat keuntungan dibentuk dengan menilai tingkat harga kunci.
Keuntungan terbesar dari strategi ini adalah memanfaatkan sepenuhnya karakteristik fluktuasi jangka pendek untuk menghasilkan keuntungan. Dengan menentukan stop loss dan mengambil keuntungan berdasarkan tingkat harga kunci, strategi berjalan di bawah aturan yang jelas. Pada saat yang sama, itu menggabungkan penilaian tren untuk menyaring pasar yang tidak menguntungkan dan menghindari kerugian yang tidak perlu.
Risiko utama yang dihadapi strategi ini adalah:
Tidak ada keuntungan jika pasar tidak berfluktuasi.
Kerugian yang tidak perlu yang disebabkan oleh harga yang menembus level stop loss.
Kesalahan penilaian tren dapat melewatkan peluang atau melakukan operasi ke arah yang berlawanan.
Strategi ini dapat dioptimalkan dalam aspek berikut:
Sesuaikan siklus rata-rata bergerak agar sesuai dengan karakteristik varietas yang berbeda.
Mengoptimalkan stop profit dan stop loss range untuk menyeimbangkan profit dan loss.
Tambahkan indikator lain untuk penilaian untuk menghindari operasi yang salah.
Tambahkan stop loss otomatis untuk mengontrol kerugian maksimum.
Secara umum, strategi ini adalah yang mengambil keuntungan dari fluktuasi jangka pendek. Ini memanfaatkan sepenuhnya pergerakan harga kecil untuk menghasilkan keuntungan. Pada saat yang sama, secara ketat mengendalikan risiko dan memotong kerugian secara tepat waktu ketika tren tidak menguntungkan. Ini cocok untuk investor yang mengejar pengembalian yang stabil dengan sikap yang relatif hati-hati. Dengan penyesuaian parameter yang tepat, ini dapat mencapai hasil yang baik di pasar yang fluktuatif.
/*backtest start: 2024-01-16 00:00:00 end: 2024-01-16 22:45:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's ZZ-3 Strategy", shorttitle = "ZZ-3 str", 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, %") corr = input(0.0, title = "Correction, %") bars = input(1, minval = 1) revers = input(false, defval = false, title = "revers") showll = input(true, defval = true, title = "Show Levels") showbg = input(false, defval = false, title = "Show Background") showar = input(false, defval = false, title = "Show Arrows") 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") //Levels hbar = 0 hbar := high > high[1] ? 1 : high < high[1] ? -1 : 0 lbar = 0 lbar := low > low[1] ? 1 : low < low[1] ? -1 : 0 uplevel = 0.0 dnlevel = 0.0 hh = highest(high, bars + 1) ll = lowest(low, bars + 1) uplevel := hbar == -1 and sma(hbar, bars)[1] == 1 ? hh + ((hh / 100) * corr) : uplevel[1] dnlevel := lbar == 1 and sma(lbar, bars)[1] == -1 ? ll - ((ll / 100) * corr) : dnlevel[1] //Lines upcol = na upcol := showll == false ? na : uplevel != uplevel[1] ? na : lime plot(uplevel, color = upcol, linewidth = 2) dncol = na dncol := showll == false ? na : dnlevel != dnlevel[1] ? na : red plot(dnlevel, color = dncol, linewidth = 2) //Background size = strategy.position_size trend = 0 trend := size > 0 ? 1 : size < 0 ? -1 : high >= uplevel ? 1 : low <= dnlevel ? -1 : trend[1] col = showbg == false ? na : trend == 1 ? lime : trend == -1 ? red : na bgcolor(col) //Arrows longsignal = false shortsignal = false longsignal := size > size[1] shortsignal := size < size[1] plotarrow(longsignal and showar and needlong ? 1 : na, colorup = blue, colordown = blue, transp = 0) plotarrow(shortsignal and showar and needshort ? -1 : na, colorup = blue, colordown = blue, transp = 0) //Trading lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if uplevel > 0 and dnlevel > 0 and revers == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if uplevel > 0 and dnlevel > 0 and revers == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnlevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = uplevel, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()