Strategi Breakout Bendera


Tanggal Pembuatan: 2024-02-22 16:41:04 Akhirnya memodifikasi: 2024-02-22 16:41:04
menyalin: 0 Jumlah klik: 727
1
fokus pada
1617
Pengikut

Strategi Breakout Bendera

Ringkasan

Strategi penembusan bendera adalah strategi analisis teknis yang bertujuan untuk menangkap awal tren dengan mengidentifikasi grafik bendera dan masuk ke titik penembusan. Strategi ini menggunakan penilaian tambahan dari rata-rata real range of fluctuation (ATR) untuk menilai batas bendera setelah tiang bendera yang jelas, untuk memilah peluang masuk.

Prinsip Strategi

Strategi ini terdiri dari beberapa langkah:

  1. Menentukan tonggak: kebutuhan untuk memenuhi inovasi harga tinggi dan menembus saluran ATR.
  2. Menentukan ketinggian tiang bendera: mengukur jarak dari puncak tiang bendera ke SMA sebelumnya.
  3. Tentukan batas bendera: titik terendah bendera adalah 33% dari ketinggian tiang bendera, sebagai batas minimal bendera.
  4. Tentukan tipe bendera: Tentukan apakah 3 garis K pertama berada di dalam area bendera.
  5. Masuk: Lebih banyak jika ada bendera.
  6. Keluar: Keluar setelah 6 garis K yang dipegang tetap

Dalam menilai tiang dan bendera, strategi ini menggunakan indikator ATR dengan cerdik untuk menilai terobosan yang jelas, dan membatasi tinggi bendera secara ketat dalam 33% dari tinggi tiang, menghindari terlalu banyak sinyal palsu. Selain itu, menilai 3 garis K berturut-turut membentuk bendera, keandalan yang tinggi. Secara keseluruhan, aturan strategi ini dirancang dengan ketat, dan memang memiliki keunggulan dalam menangkap terobosan awal tren.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Menggunakan struktur bendera untuk menentukan tren adalah metode yang lebih klasik dalam analisis teknis, dengan tingkat keberhasilan yang lebih tinggi.
  2. Indikator ATR dan batasan jangkauan yang ketat dapat mencegah banyak sinyal palsu dan meningkatkan akurasi masuk.
  3. 6 garis K yang tetap dapat mengunci sebagian dari keuntungan, menghindari risiko terbalik.
  4. Peraturan-peraturan kebijakan jelas, mudah diterapkan, mudah dipelajari dan diikuti.
  5. Ada banyak cara untuk mencari peluang dalam berbagai situasi, dan lebih fleksibel.

Analisis risiko

Risiko utama dari strategi ini adalah:

  1. Ada juga kasus-kasus di mana model bendera tidak dapat sepenuhnya menilai tren, dan ada juga yang gagal.
  2. 6 K Line tampil terlalu semena-mena dan mungkin akan berangkat lebih awal.
  3. Jika situasi terlalu bergejolak, maka akan timbul false flag.
  4. Tidak dapat mengontrol kerugian secara efektif.

Untuk menghadapi risiko di atas, kita dapat mengatur strategi stop loss, atau mengoptimalkan mekanisme keluar, yang menghasilkan keuntungan tepat waktu ketika keuntungan mencapai proporsi tertentu. Selain itu, kita juga dapat melakukan penyaringan dalam kombinasi dengan indikator lain, untuk menghindari sinyal palsu ketika pasar terlalu bergoyang.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Menggunakan kombinasi indikator seperti MACD, KD, dan lain-lain untuk menghindari sinyal palsu dalam situasi getaran.
  2. Dengan memaksimalkan ATR perkalian berdasarkan kategori pasar, siklus permainan, dan lain-lain, strategi ini dapat disesuaikan.
  3. Tetapkan stop loss bergerak atau pertimbangkan untuk menarik kembali keuntungan dibandingkan dengan bermain dinamis.
  4. Cobalah metode pembelajaran mesin untuk mencari karakteristik yang lebih akurat untuk menentukan ketinggian bendera.
  5. Mengevaluasi tingkat kemenangan dan kerugian yang sebenarnya, dan secara dinamis menyesuaikan ukuran posisi.

Meringkaskan

Secara keseluruhan, strategi penembusan bendera yang memanfaatkan tren penilaian bentuk teknologi adalah metode yang lebih klasik, strategi yang benar-benar ketat dalam desain aturan masuk yang dapat menyaring banyak sinyal palsu. Namun, masih ada ruang untuk pengendalian risiko dan mekanisme keluar yang dapat dioptimalkan, yang dapat kita pertimbangkan dari sudut pandang keseluruhan, sehingga strategi dapat beroperasi secara stabil di berbagai pasar. Jika diuji dan dioptimalkan dengan baik, strategi ini dapat menjadi komponen berharga dalam sistem perdagangan kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © smith26
//This strategy enters on a bull flag and closes position 6 bars later.  Average true range is used instead of a moving average.
//The reason for ATR instead of MA is because with volatile securities, the flagpole must stand up a noticable "distance" above the trading range---which you can't determine with a MA alone.
//This is broken up into multiple parts: Defining a flagpole, defining the pole height, and defining the flag, which will be constrained to the top third (33%) of the pole height to be considered a flag.
//@version=4
strategy("Bull Flag v1.00", overlay=true)

ATR = atr(10) //Average True Range over last 10 bars.

upperATR = ohlc4[1] + ATR[1]  //Open + High + Low + Close divided by 4, + prior ATR.  Just used here for visually plotting the ATR upper channel.
lowerATR = ohlc4[1] - ATR[1] //Open + High + Low + Close divided by 4, - prior ATR.  Just used here for visually plotting the ATR lower channel.

//uncomment these two lines to see ATR channels
plot(upperATR, color=color.orange)
plot (lowerATR, color=color.orange)

//Current close higher than previous close, and current close minus current open is greater than 3 times the previous ATR.  "3x ATR" is chosen because any less was not a noticeable distance above the trading range.
flagpole1 = close>close[1] and (close-open) > (ATR[1] * 3)
plotshape(flagpole1, text="flagpole1", style=shape.arrowdown, size=size.huge) //Plots an arrow for flagpole1 for QA testing

//Two consecutive close higer than their previous close, and current close minus PREVIOUS open is greater than 3 times the previous ATR.
flagpole2 = close>close[1] and close[1]>close[2] and (close-open[1]) > (ATR[1] * 3)
plotshape(flagpole2, text="flagpole2", style=shape.arrowdown, size=size.huge, color=color.yellow) //Plots an arrow for flagpole2 for QA testing

//Three consecutive close higer than their previous close, and current close minus open from 2 bars ago is greater than 3 times the previous ATR.
flagpole3 = close>close[1] and close[1]>close[2] and close[2]>close[3] and (close-open[2]) > (ATR[1] * 3)
plotshape(flagpole3, text="flagpole3", style=shape.arrowdown, size=size.huge, color=color.white) //Plots an arrow for flagpole3 for QA testing

//A flagpole can be any of the three definitions of flagpole.
flagpole = flagpole1 or flagpole2 or flagpole3

//This will return the number of bars since "flagpole" was true.  Not being used, but could be useful.
//since_flagpole = barssince(flagpole)

after_pole_1 = flagpole[1] //This marks the bar directly after a flagpole.  
//plotshape(after_pole_1, text="after_pole_1", style=shape.cross, size=size.large, color=color.white) //Plots a cross for after_pole_1 for QA testing
after_pole_2 = flagpole[2] //This marks the bar two bars after a flagpole.  
after_pole_3 = flagpole[3] //This marks the bar three bars after a flagpole.  

//This returns the price at the "top" of the flagpole (using close price) at the most recent occurence, 0.
pole_top = valuewhen(flagpole, close, 0)
//plot(pole_top, trackprice=true)  //plots a horizontal line at the most recent pole_top

//Measures the distance between last pole top and the previous SMA.
pole_height = pole_top - sma(close, 10)[1] 
//plot(pole_height)

//This marks 33% below the pole_top, which will be the lowest point a flag can be.
flag_bottom = pole_top - (.33 * pole_height)
//plot(flag_bottom)

//The first, second, and third bars after the pole are considered part of a flag when open and close are between the pole_top and flag_bottom
flag1 = after_pole_1 and (open >= flag_bottom) and (open <= pole_top) and (close >= flag_bottom) and (close <= pole_top)
//plotshape(flag1, text="flag1", style=shape.flag, size=size.large, color=color.teal)
flag2 = after_pole_2 and (open >= flag_bottom) and (open <= pole_top) and (close >= flag_bottom) and (close <= pole_top)
//plotshape(flag2, text="flag2", style=shape.flag, size=size.large, color=color.teal)
flag3 = after_pole_3 and (open >= flag_bottom) and (open <= pole_top) and (close >= flag_bottom) and (close <= pole_top)
//plotshape(flag3, text="flag3", style=shape.flag, size=size.large, color=color.teal)

//When all three bars after a flagpole are a flag, the criteria are met and we have a "bull_flag"
//Specifically, when current bar is flag3, previous bar is flag2, and 2 bars ago is flag1, we have a bull_flag.
bull_flag = flag3 and flag2[1] and flag1[2]
plotshape(bull_flag, text="bull_flag", style=shape.flag, size=size.large, color=color.white) //Plots a flag for bull_flag for QA testing


if (bull_flag)
    strategy.entry("Long", strategy.long)

if barssince(bull_flag) == 6 //close 6 bars after entry.
    strategy.close("Long")