Strategi Breakout N Bars


Tanggal Pembuatan: 2024-04-12 16:57:15 Akhirnya memodifikasi: 2024-04-12 16:57:15
menyalin: 0 Jumlah klik: 572
1
fokus pada
1617
Pengikut

Strategi Breakout N Bars

Ringkasan

Strategi N Bars Breakout adalah strategi perdagangan kuantitatif yang didasarkan pada harga breakout. Ide utama dari strategi ini adalah untuk membuka posisi yang lebih tinggi ketika harga close out melampaui harga tertinggi dari N hari perdagangan terakhir, dan posisi yang lebih rendah ketika harga close out jatuh dari harga terendah dari N hari perdagangan terakhir. Strategi ini menangkap tren yang kuat dengan membandingkan harga saat ini dengan harga terendah dari N hari perdagangan terakhir.

Prinsip Strategi

  1. Hitung harga tertinggi (highest) dan harga terendah (lowest) dalam N hari terakhir.
  2. Jika harga penutupan saat ini lebih tinggi dari “highest”, maka Anda membuka posisi “long”.
  3. Jika harga penutupan saat ini lebih rendah dari lowest, maka posisi yang lebih pendek.
  4. Anda dapat memilih untuk menggunakan harga close atau high/low sebagai sumber sinyal.
  5. Harga tertinggi dan terendah dihitung dengan menggunakan ta.highest dan ta.lowest, tergantung pada sumber sinyal.
  6. Gunakan ta.crossover dan ta.crossunder untuk menilai harga yang terobosan.

Keunggulan Strategis

  1. Logika sederhana dan jelas, mudah untuk diimplementasikan dan dioptimalkan.
  2. Ini adalah cara yang efektif untuk menangkap tren yang kuat, dan kemampuan untuk melacak tren.
  3. Ada banyak ruang untuk menyesuaikan parameter, yang dapat dioptimalkan sesuai dengan varietas dan siklus yang berbeda.
  4. Ada banyak aplikasi, dan kinerja yang baik untuk sebagian besar varietas dan siklus.
  5. Ada juga beberapa fitur baru yang memungkinkan pengguna untuk memilih sumber sinyal yang lebih fleksibel dan meningkatkan fleksibilitas strategi.

Risiko Strategis

  1. Performa yang buruk terhadap kondisi getaran dan pergerakan kecil, sering membuka posisi kosong menyebabkan biaya transaksi yang lebih tinggi.
  2. Pilihan parameter yang salah dapat menyebabkan risiko overfitting.
  3. Pada saat itu, ada kemungkinan akan terjadi penurunan yang lebih besar.
  4. Sumber sinyal tunggal mungkin beresiko terjadinya kesalahan sinyal.

Arah optimasi strategi

  1. Menambahkan kondisi penyaringan tren, seperti arah tren ma, adx, dan lain-lain, mengurangi perdagangan di bawah kondisi goyah.
  2. Optimalkan pilihan parameter, seperti nilai N, sumber sinyal, dan lain-lain, untuk meningkatkan stabilitas strategi dan profitabilitas.
  3. Meningkatkan Stop Loss dan Logika Stop Loss Mobile, Mengontrol Risiko Perdagangan Tunggal.
  4. Menggabungkan beberapa sumber sinyal untuk meningkatkan keandalan sinyal, misalnya dengan mempertimbangkan harga penutupan dan harga tinggi rendah pada saat yang sama.
  5. Optimalkan parameter dan logika sesuai dengan varietas dan siklus yang berbeda.

Meringkaskan

Strategi N Bars adalah strategi perdagangan kuantitatif yang sederhana dan praktis, dengan menangkap tren tren harga yang lebih baik. Strategi ini memiliki logika yang jelas, ruang yang luas untuk optimasi, dan aplikasi yang luas. Ini adalah strategi kuantitatif yang layak untuk diteliti dan dioptimalkan lebih lanjut. Dengan optimasi parameter dan perbaikan logis yang masuk akal, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut dan lebih baik beradaptasi dengan lingkungan pasar yang berbeda.

Kode 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)