Strategi Pecahan Fractal

Penulis:ChaoZhang, Tarikh: 2023-12-19 15:32:57
Tag:

img

Ringkasan

Ini adalah strategi pengesanan garis panjang yang mengikuti trend yang menilai trend berdasarkan fraktal harga. Ia memutuskan untuk membuka kedudukan berdasarkan terobosan titik fraktal terkini. Pada masa yang sama, ia menilai arah trend dengan mengira harga purata N titik fraktal terakhir dan menutup kedudukan apabila trend berubah.

Prinsip-prinsip

  1. Hitung titik fraktal harga. Titik fraktal ditakrifkan sebagai harga tertinggi hari ini yang lebih tinggi daripada harga tertinggi dua hari sebelumnya dan dua hari akan datang.

  2. Mencatatkan harga titik fraktal terakhir sebagai rintangan.

  3. Apabila harga penutupan memecahkan titik fraktal terakhir, dianggap bahawa rintangan telah dipecahkan dan kedudukan panjang telah ditubuhkan.

  4. Hitung harga purata N titik fraktal terakhir untuk menentukan trend. Apabila harga purata naik, ia adalah trend menaik, dan apabila ia jatuh, ia adalah trend menurun.

  5. Jika harga titik fraktal purata turun semasa kedudukan panjang, tutup kedudukan.

Analisis Kelebihan

Kelebihan terbesar strategi penilaian trend berasaskan fraktal ini adalah bahawa ia dapat menapis bunyi pasaran dengan berkesan dan menentukan arah trend jangka panjang.

Di samping itu, kriteria untuk membuka dan menutup kedudukan strategi ini sangat jelas, yang mengelakkan perdagangan yang kerap.

Analisis Risiko

Risiko terbesar strategi ini terletak pada sifat kebarangkalian titik fraktal itu sendiri. Fraktal tidak dapat meramalkan sepenuhnya sama ada harga pasti akan berbalik, iaitu, kemungkinan salah menilai masih wujud. Apabila salah menilai berlaku, ia akan menghadapi risiko kerugian.

Di samping itu, rentang masa untuk menilai titik fraktal adalah panjang dan tidak dapat menyesuaikan diri dengan perdagangan frekuensi tinggi.

Arahan pengoptimuman

Memandangkan kebarangkalian salah menilai titik fraktal, kita boleh mengoptimumkan dengan cara berikut:

  1. Gabungkan dengan penunjuk lain seperti Bollinger Bands, purata bergerak, dan lain-lain untuk mengelakkan penilaian yang salah berdasarkan titik fraktal sahaja.

  2. Sesuaikan parameter titik fraktal, seperti bilangan tempoh sebelum dan selepas penghakiman, untuk mengoptimumkan penilaian titik fraktal.

  3. Tambah strategi stop loss untuk menghentikan kerugian apabila kerugian berkembang ke tahap tertentu.

Ringkasan

Strategi Breakout Fractal sangat sesuai untuk menilai trend jangka panjang secara keseluruhan dan sangat sesuai untuk digunakan oleh pelabur jangka panjang. Selagi kita menyesuaikan parameter dengan betul dengan sewajarnya, menambah penapis lain dengan premis untuk memastikan ketepatan penilaian, kita boleh sangat mengoptimumkan strategi ini dan menjadikannya sebahagian penting daripada Keputusan Kuantitatif.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Fractal Breakout Strategy (by ChartArt)", shorttitle="CA_-_Fractal_Breakout_Strat", overlay=true)

// ChartArt's Fractal Breakout Strategy
//
// Version 1.0
// Idea by ChartArt on April 24, 2016.
//
// This long only strategy determines the last fractal top
// and enters a trade when the price breaks above the last
// fractal top. The strategy also calculates the average
// price of the last 2 (or 3) fractal tops to get the trend.
//
// The strategy exits the long trade when the average of the
// fractal tops is falling (when the trend is lower highs).
// And the user can manually set a delay of this exit.
//
// In addition the fractals tops can be colored in blue
// and a line can be drawn based on the fractal tops.
// This fractal top line is colored by the fractal trend.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


// input

n_time = input(title='Always exit each trade after this amount of bars later (Most important strategy setting)', defval=3)
price = input(hl2,title='Price type to determine the last fractal top and the fractal breakout, the default is (high+low)/2')


// fractal calculation

fractal_top = high[2] > high[3] and high[2] > high[4] and high[2] > high[1] and high[2] > high[0]
fractal_price = valuewhen(fractal_top, price, 1)
use_longer_average = input(true,title='Use Fractal price average of the last 3 fractals instead of the last 2 fractals?')
fractal_average = use_longer_average?(fractal_price[1] + fractal_price[2] + fractal_price[3] ) / 3 : (fractal_price[1] + fractal_price[2]) / 2
fractal_trend = fractal_average[0] > fractal_average[1]
no_repainting = input(true,title='Use the price of the last bar to prevent repainting?')
fractal_breakout = no_repainting?price[1] > fractal_price[0]:price[0] > fractal_price[0]


// highlight fractal tops

show_highlight = input(true,title='Highlight fractal tops in blue and color all other bars in gray?')
highlight = fractal_top?blue:silver
barcolor(show_highlight?highlight:na,offset=-2)
show_fractal_top_line = input(true,title='Draw a colored line based on the fractal tops?')
fractal_top_line = change(fractal_top) != 0 ? price : na
fractal_top_line_color = change(fractal_price) > 0 and fractal_breakout == true ? green : change(fractal_price) < 0 and fractal_breakout == false ? red : blue
plot(show_fractal_top_line?fractal_top_line:na,offset=-2,color=fractal_top_line_color,linewidth=4)


// strategy

trade_entry = fractal_trend and fractal_breakout
trade_exit = fractal_trend[n_time] and fractal_trend == false 
 
if (trade_entry)
    strategy.entry('Long', strategy.long)
 
if (trade_exit)
    strategy.close('Long')

Lebih lanjut