N Bars Breakout Strategi


Tarikh penciptaan: 2024-04-12 16:57:15 Akhirnya diubah suai: 2024-04-12 16:57:15
Salin: 0 Bilangan klik: 572
1
fokus pada
1617
Pengikut

N Bars Breakout Strategi

Gambaran keseluruhan

Strategi N Bars Breakout adalah strategi perdagangan kuantitatif berdasarkan harga yang pecah. Gagasan utama strategi ini adalah untuk membuka kedudukan yang lebih tinggi apabila harga penutupan melampaui harga tertinggi pada hari perdagangan N yang lalu, dan meletakkan kedudukan yang lebih rendah apabila harga penutupan jatuh pada harga terendah pada hari perdagangan N yang lalu. Strategi ini menangkap pergerakan yang kuat dengan membandingkan harga semasa dengan harga tertinggi dan terendah pada hari perdagangan N yang lalu.

Prinsip Strategi

  1. Hitung harga tertinggi (highest) dan harga terendah (lowest) dalam tempoh N hari perdagangan.
  2. Jika harga penutupan semasa lebih tinggi daripada harga tertinggi, anda akan membuka kedudukan panjang.
  3. Jika harga penutupan semasa adalah lebih rendah daripada lowest, maka ia akan menjadi lebih pendek.
  4. Anda boleh memilih untuk menggunakan harga tutup (close) atau harga tinggi/rendah (high/low) sebagai sumber isyarat (source).
  5. Bergantung pada sumber isyarat, harga tertinggi dan terendah dikira menggunakan ta.highest dan ta.lowest.
  6. Gunakan ta.crossover dan ta.crossunder untuk menentukan harga yang melampau.

Kelebihan Strategik

  1. Logiknya mudah, jelas, mudah dilaksanakan dan dioptimumkan.
  2. Ia mempunyai keupayaan untuk mengesan trend yang kuat.
  3. Ruang penyesuaian parameter yang besar, boleh dioptimumkan mengikut pelbagai jenis dan kitaran.
  4. Ia mempunyai banyak kegunaan dan berfungsi dengan baik untuk kebanyakan jenis dan tempoh.
  5. Ia juga membolehkan pengguna untuk memilih sumber isyarat dengan lebih fleksibel dan meningkatkan kebolehan adaptasi strategi.

Risiko Strategik

  1. Performa yang kurang baik terhadap keadaan gegaran dan pergerakan kecil, sering membuka kedudukan kosong menyebabkan kos dagangan yang lebih tinggi.
  2. Pilihan parameter yang tidak betul boleh menyebabkan risiko overfitting.
  3. Ia mungkin lebih besar apabila trend berbalik.
  4. Satu-satunya sumber isyarat mungkin menghadapi risiko isyarat palsu.

Arah pengoptimuman strategi

  1. Menambah syarat penapis trend, seperti arah trend ma, adx, dan lain-lain, mengurangkan perdagangan dalam keadaan goyah.
  2. Pilihan parameter pengoptimuman, seperti nilai N, sumber isyarat dan lain-lain, meningkatkan kestabilan strategi dan keuntungan.
  3. Meningkatkan logik stop loss dan stop loss bergerak, mengawal risiko perdagangan tunggal.
  4. Menggabungkan pelbagai sumber isyarat untuk meningkatkan kebolehpercayaan isyarat, seperti dengan mempertimbangkan harga penutupan dan harga tinggi rendah pada masa yang sama.
  5. Parameter dan logik yang dioptimumkan mengikut pelbagai jenis dan kitaran.

ringkaskan

Strategi N Bars Breakout adalah strategi perdagangan kuantitatif yang mudah dan praktikal, yang mencapai kesan trend yang lebih baik dengan menangkap pergerakan harga yang menembusi. Strategi ini logiknya jelas, ruang pengoptimuman yang besar, aplikasi yang luas, adalah strategi kuantitatif yang patut diteliti dan dioptimumkan. Dengan pengoptimuman parameter yang munasabah dan penambahbaikan logik, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi ini, untuk menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza.

Kod sumber strategi
/*backtest
start: 2023-04-06 00:00:00
end: 2024-04-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakout", overlay=true, precision=6, pyramiding=0, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=25.0, commission_value=0.05)

n = input.int(5, "N Bars", minval=1)
src_input = input.string("Close", "Source", ["Close", "High/Low"])

bull_src = switch src_input
	"Close" => close
	"High/Low" => high
	=>
		runtime.error("Invalid source input")
		na

bear_src = switch src_input
	"Close" => close
	"High/Low" => low
	=>
		runtime.error("Invalid source input")
		na

highest = ta.highest(bull_src[1], n)
lowest = ta.lowest(bear_src[1], n)

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Plots
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

bool long = ta.crossover(bull_src, highest)
bool short = ta.crossunder(bear_src, lowest)

//Plots
lowest_plot  = plot(lowest,  color=color.red, title="Lowest")
highest_plot  = plot(highest,  color=color.green, title="Highest")
bull_src_plot = plot(bull_src, color=color.blue, title="Bull")
bear_src_plot = plot(bear_src, color=color.orange, title="Bear")

// this message is an alert that can be sent to a webhook, which allows for simple automation if you have a server that listens to alerts and trades programmatically.
enter_long_alert = '{"side": "Long", "order": "Enter", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'
exit_long_alert = '{"side": "Long", "order": "Exit", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'

if long
    strategy.entry(id="Long", direction=strategy.long, limit=open, alert_message=enter_long_alert)

if short
    strategy.close(id="Long", comment="Close Long", alert_message=exit_long_alert)