Noro's Breakout Strategy v1.0

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

Gambaran umum

Strategi ini diperdagangkan berdasarkan price breakouts di luar ekstrem baru-baru ini. Hal ini menghitung tertinggi tertinggi dan terendah terendah selama periode dan menghasilkan sinyal ketika harga melanggar tingkat ini.

Cara Kerjanya

  1. Menghitung puncak tertinggi tertinggi dan dnex terendah terendah selama N periode.

  2. Pergi panjang ketika harga pecah di atas puncak.

  3. Pergi short saat harga turun di bawah Dnex.

  4. Dapat dikonfigurasi untuk panjang saja, pendek saja atau kedua arah.

  5. Tingkat pemanfaatan modal yang dapat dikonfigurasi.

  6. Jangka waktu perdagangan yang dapat dikonfigurasi.

Keuntungan

  • Menangkap sinyal breakout, baik untuk perdagangan tren
  • Aturan sederhana dan intuitif, mudah diterapkan
  • Konfigurasi arah menyesuaikan dengan pasar yang berbeda
  • Dapat membatasi rentang waktu perdagangan
  • Mengontrol pemanfaatan modal

Risiko

  • Tidak dapat menyaring kebocoran palsu secara efektif
  • Perdagangan dua arah meningkatkan biaya
  • Penggunaan modal yang tinggi meningkatkan risiko

Arahan Optimasi

  • Tambahkan validasi untuk menghindari kebocoran palsu
  • Mengoptimalkan nilai N untuk kinerja optimal
  • Filter tambahan untuk sinyal layar
  • Uji tingkat penggunaan modal yang berbeda
  • Batas jumlah perdagangan per hari

Kesimpulan

Strategi ini mengikuti tren dengan menggunakan sinyal price breakout. Meningkatkan validitas breakout dan tuning parameter dapat meningkatkan kinerja. Tapi breakout palsu dan kontrol risiko perlu ditangani. Secara keseluruhan solusi perdagangan tren yang sederhana dan efektif.


/*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 banyak