Strategi ini berdasarkan teori pecah, membandingkan purata bergerak harga tertinggi dan terendah untuk menentukan sama ada trend itu berbalik, untuk mencari titik pecah yang berpotensi dan berdagang apabila pecah berlaku.
Strategi ini mula-mula mengira purata bergerak harga tertinggi dan terendah dalam tempoh yang ditakrifkan oleh pengguna. purata bergerak harga tertinggi mewakili band atas, dan purata bergerak harga terendah mewakili band bawah. Apabila harga menembusi band atas, ia memberi isyarat kenaikan, dan strategi akan membuka kedudukan panjang. Apabila harga menembusi band bawah, ia memberi isyarat penurunan, dan strategi akan membuka kedudukan pendek. Pengguna boleh mengkonfigurasi hanya panjang atau hanya pendek.
Strategi ini juga menyediakan tetapan stop loss dan mengambil keuntungan pilihan. Apabila panjang, stop loss ditetapkan pada band atas; apabila pendek, stop loss ditetapkan pada band bawah. Ini mengurangkan kerugian. Pengguna juga boleh memilih untuk menetapkan stop loss pada titik pecah, iaitu apabila panjang, stop loss adalah band bawah, dan apabila pendek, stop loss adalah band atas. Ini membolehkan potensi keuntungan yang lebih besar.
Kelebihan strategi ini ialah:
Logiknya mudah dan lurus, mudah difahami dan dilaksanakan.
Ia boleh dengan cepat menangkap titik pembalikan trend dan menyesuaikan kedudukan.
Ia menyediakan tetapan stop loss dan mengambil keuntungan pilihan untuk menyesuaikan keutamaan risiko peribadi.
Isyarat perdagangan jelas, tanpa terlalu banyak isyarat palsu.
Terdapat beberapa parameter yang boleh dikonfigurasi, mudah digunakan.
Fleksibiliti untuk mengkonfigurasi panjang sahaja atau pendek sahaja.
Risiko strategi ini termasuk:
Isyarat pecah mungkin pecah palsu dan tidak dapat bertahan.
Penentuan tempoh pecah yang tidak betul mungkin terlepas daripada trend jangka panjang.
Ia tidak mengambil kira jumlah pada breakout, boleh menyebabkan mengejar tinggi dan membunuh rendah.
Ada sedikit kelewatan, mungkin terlepas sebahagian besar langkah.
Dalam pasaran yang tidak menentu, stop loss mungkin terjejas.
Hanya bergantung pada penembusan untuk perdagangan, keuntungan tidak pasti.
Strategi ini boleh ditingkatkan dalam aspek berikut:
Masukkan penunjuk kelantangan untuk mengelakkan pecah palsu.
Mengoptimumkan parameter purata bergerak tempoh untuk sepadan dengan perubahan trend dalam kitaran yang berbeza.
Tetapkan ambang penarikan balik selepas pecah untuk pengesahan lebih lanjut untuk mengelakkan pecah palsu.
Tambah Bollinger Bands dan lain-lain di atas asas pecah untuk panduan yang lebih arah.
Menggabungkan penunjuk lain seperti RSI, MACD untuk isyarat perdagangan tambahan dan meningkatkan ketepatan.
Mengoptimumkan strategi stop loss dan mengambil keuntungan untuk mengatasi lebih baik turun naik pasaran sambil mengawal risiko.
Strategi perdagangan breakout mempunyai logik yang jelas untuk mengesan penembusan harga jalur atas dan bawah untuk kemasukan dan keluar. Terdapat ruang yang besar untuk peningkatan, dengan menggabungkan lebih banyak maklumat penunjuk dan mengoptimumkan parameter untuk menguatkan strategi. Setelah membiasakan diri dengan logik asas, peniaga boleh menyesuaikan parameter berdasarkan keperluan mereka dan mendapatkan hasil perdagangan yang baik.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.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") bod = input(false, defval = false, title = "Body mode") rev = input(false, defval = false, title = "Revers") 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 min = bod ? min(open, close) : low max = bod ? max(open, close) : high upex = highest(max, len) + syminfo.mintick * 10 dnex = lowest(min, len) - syminfo.mintick * 10 col = showlines ? blue : na plot(upex, color = col, linewidth = 2) plot(dnex, color = col, linewidth = 2) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[len])) and rev == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex) if (not na(close[len])) and rev == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()