
Strategi perdagangan terobosan bertujuan untuk menangkap harga terobosan yang disebabkan oleh peningkatan turun naik pasaran. Strategi ini menggunakan purata rentang turun naik sebenar (ATR) untuk mengukur turun naik aset dalam tempoh tertentu.
Strategi ini pertama-tama mengira ATR dalam tempoh yang ditetapkan. Kemudian, berdasarkan ATR, mengira naik dan turun. Apabila harga penutupan menembusi ke atas, ia menghasilkan isyarat banyak; apabila harga penutupan jatuh ke bawah, ia menghasilkan isyarat kosong. Untuk mengesahkan isyarat lebih lanjut, ia perlu menutup bahagian entiti bentuk K semasa.
Apabila harga penutupan menembusi ke atas dan ke bawah, warna celah penembusan diisi di arah penembusan. Ciri ini membantu mengenali arah trend semasa dengan cepat.
Apabila ada isyarat melakukan lebih dan tiada kedudukan semasa, strategi membuka kedudukan lebih. Apabila ada isyarat melakukan lebih dan tiada kedudukan semasa, strategi membuka kedudukan kosong.
Parameter panjang menentukan jangka masa untuk mengukur turun naik. Nilai panjang yang lebih tinggi bermakna perhatian kepada turun naik harga yang lebih lama. Sebagai contoh, apabila panjang adalah 20, setiap perdagangan melintasi kira-kira 100 garis K, yang mengandungi lebih banyak turun naik.
Mengurangkan nilai Length dapat memberi tumpuan kepada turun naik harga yang lebih singkat, meningkatkan frekuensi perdagangan. Tiada hubungan yang ketat antara nilai Length dan panjang perdagangan purata, dan nilai Length yang terbaik perlu dijumpai melalui percubaan dan kesilapan.
Strategi ini menggunakan prinsip penembusan, yang dapat menangkap keadaan yang lebih besar yang disebabkan oleh turun naik pasaran. Indeks ATR secara dinamik mengira paras penembusan, mengelakkan penggunaan parameter tetap.
Dengan menggunakan garis K sebenar, isyarat pengesahan boleh disaring. Penuh jurang pecah warna menunjukkan arah trend secara intuitif.
Parameter Length memberikan fleksibiliti untuk menyesuaikan strategi dan dapat dioptimumkan mengikut perubahan pasaran tertentu.
Perdagangan terobosan mempunyai risiko untuk direbus. Anda boleh menetapkan hentian kerugian untuk mengawal kerugian tunggal.
Sinyal penembusan boleh menyebabkan isyarat palsu yang menyebabkan perdagangan garis ultra pendek. Parameter panjang boleh disesuaikan dengan betul untuk menghilangkan isyarat palsu.
Pengoptimuman parameter memerlukan sokongan data transaksi yang mencukupi. Pilihan parameter awal yang tidak tepat boleh menyebabkan prestasi perdagangan yang buruk.
Satu lagi cara yang boleh diperkenalkan dalam kitaran ATR ialah dengan memasukkan pita Brin sebagai satu cara baru untuk mengira bit terobosan.
Anda boleh terus mengikuti trend selepas penembusan tanpa berhenti dengan serta-merta. Sebagai contoh, anda boleh menyertai trend dengan berhenti.
Anda boleh mempertimbangkan untuk menggunakan parameter yang berbeza atau tidak berdagang sama sekali dalam pasaran yang bergolak, untuk mengelakkan terikat.
Strategi perdagangan pecah memanfaatkan turun naik pasaran, memasuki trend apabila harga membuat penembusan yang lebih besar. Indeks ATR secara dinamik menentukan titik penembusan, entiti K-line penapisan penipuan pecah.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
strategy("Volatility Breakout Strategy [Angel Algo]", overlay = true)
// Inputs
length = input(title="Length", defval=20)
// Calculate the average true range (ATR)
atr = ta.atr(length)
// Plot the ATR on the chart
plot(atr, color=color.blue, linewidth=2, title="ATR")
// Calculate the upper and lower breakouts
upper_breakout = high + atr
lower_breakout = low - atr
// Plot the upper and lower breakouts on the chart
ul = plot(upper_breakout[1], color = color.new(color.green, 100), linewidth=2, title="Upper Breakout Level")
ll = plot(lower_breakout[1], color = color.new(color.red, 100), linewidth=2, title="Lower Breakout Level")
// Create the signals
long_entry = ta.crossover(close, upper_breakout[1]) and barstate.isconfirmed
short_entry = ta.crossunder(close, lower_breakout[1]) and barstate.isconfirmed
active_signal_color =ta.barssince(long_entry) < ta.barssince(short_entry) ?
color.new(color.green,85) : color.new(color.red,85)
// Plot the signals on the chart
plotshape(long_entry and ta.barssince(long_entry[1]) > ta.barssince(short_entry[1]), location=location.belowbar, style=shape.triangleup,
color=color.green, size=size.normal, text = "Bullish breakout", textcolor = color.green)
plotshape(short_entry and ta.barssince(long_entry[1]) < ta.barssince(short_entry[1]), location=location.abovebar, style=shape.triangledown,
color=color.red, size=size.normal,text = "Bearish breakout", textcolor = color.red)
// Fill the space between the upper and lower levels with the color that indicates the latest signal direction
fill(ul,ll, color=active_signal_color)
long_condition = long_entry and strategy.position_size <= 0 and barstate.isconfirmed
short_condition = short_entry and strategy.position_size >= 0 and barstate.isconfirmed
if long_condition
strategy.entry("Volatility Breakout Long", strategy.long)
if short_condition
strategy.entry("Volatility Breakout Short", strategy.short)