Noro's Breakout Strategy v1.0

Penulis:ChaoZhang, Tarikh: 2023-09-21 15:09:43
Tag:

Ringkasan

Strategi ini berdagang berdasarkan harga pecah di luar melampau baru-baru ini. Ia mengira tertinggi tertinggi dan terendah terendah dalam tempoh dan menghasilkan isyarat apabila harga memecahkan tahap ini.

Cara Ia Bekerja

  1. Mengira puncak tertinggi tertinggi dan dnex terendah terendah selama N tempoh.

  2. Pergi panjang apabila harga pecah di atas puncak.

  3. Pergi short apabila harga turun di bawah Dnex.

  4. Boleh dikonfigurasi untuk panjang sahaja, pendek sahaja atau kedua-dua arah.

  5. Kadar penggunaan modal yang boleh dikonfigurasikan.

  6. Julat masa dagangan yang boleh dikonfigurasi.

Kelebihan

  • Mengambil isyarat pecah, baik untuk perdagangan trend
  • Peraturan mudah dan intuitif, mudah dilaksanakan
  • Konfigurasi arah menyesuaikan diri dengan pasaran yang berbeza
  • Boleh mengehadkan julat masa dagangan
  • Kawalan penggunaan modal

Risiko

  • Tidak dapat menapis penyebaran palsu dengan berkesan
  • Perdagangan dua hala meningkatkan kos
  • Penggunaan modal yang tinggi meningkatkan risiko

Arahan pengoptimuman

  • Tambah pengesahan untuk mengelakkan gangguan palsu
  • Mengoptimumkan nilai N untuk prestasi optimum
  • Penapis tambahan kepada isyarat skrin
  • Uji kadar penggunaan modal yang berbeza
  • Jumlah perdagangan terhad setiap hari

Kesimpulan

Strategi ini mengikuti trend menggunakan isyarat harga pecah. Meningkatkan kesahihan pecah dan menyesuaikan parameter boleh meningkatkan prestasi. Tetapi pecah palsu dan kawalan risiko perlu ditangani. Secara keseluruhan penyelesaian perdagangan trend yang mudah dan berkesan.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Brakeout Strategy v1.0", shorttitle = "Brakeout str 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, %")
len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
showlines = input(true, defval = true, title = "Show Lines?")
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")

//Extremums
upex = highest(high, len)
dnex = lowest(low, len)
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[len]))
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = upex + syminfo.mintick)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = dnex - syminfo.mintick)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Lebih lanjut