Strategi dagangan purata bergerak berdasarkan Bollinger Bands yang dipaparkan

Penulis:ChaoZhang, Tarikh: 2024-01-05 12:27:02
Tag:

img

Ringkasan

Strategi ini membina saluran harga berdasarkan penunjuk Bollinger Bands dan penunjuk Momentum Oscillating Moving Average, menghasilkan isyarat perdagangan apabila harga memecahkan sempadan atas atau bawah saluran. Dengan menggabungkan kemampuan penyesuaian Bollinger Bands dan fleksibiliti pengayun momentum, ia dapat bertindak balas tepat pada masanya terhadap perubahan trend pasaran.

Logika Strategi

Strategi ini membina saluran harga menggunakan Bollinger Middle Band dan Momentum Oscillating Moving Average. Band tengah menggunakan Bollinger Middle Band 21-period. Band atas dan bawah membentang ke atas dan ke bawah untuk julat peratusan masing-masing. Momentum Oscillating Moving Average membentang atau menyusut berhampiran tahap overbought atau oversold berdasarkan band tengah. Apabila harga menembusi band atas, pergi panjang. Apabila harga menembusi band bawah, pergi pendek.

Khususnya, jalur tengah Bollinger dikira sebagai:

Middle Band = Moving Average of N-period closing price

Garis atas dan bawah dikira sebagai:

Upper Band = Middle Band + WidthDev * N-period Bollinger standard deviation 
Lower Band = Middle Band - WidthDev * N-period Bollinger standard deviation

Di mana WidthDev mewakili julat peratusan meluas ke atas dan ke bawah.

Momentum Oscillating Moving Average membesar atau menyusut berdasarkan band tengah mengikut peraturan tertentu. Apabila pasaran menjadi terlalu banyak dibeli atau terlalu banyak dijual, ia meluas lebih jauh dari band tengah untuk memberikan lebih banyak peluang untuk pergi panjang atau pergi pendek. Apabila pasaran tenang, ia berkurangan ke arah band tengah.

Ringkasnya, strategi ini menggambarkan saluran harga menggunakan Bollinger Bands dan menentukan masa kemasukan menggunakan Momentum Oscillating Moving Average, mewujudkan perdagangan breakout.

Analisis Kelebihan

  1. Mencerminkan turun naik pasaran Bollinger Bands boleh mencerminkan turun naik pasaran dan perubahan trend dalam masa nyata.

  2. Mengurangkan isyarat palsu Kesan regangan Momentum Oscillating Moving Average dapat mengurangkan isyarat palsu yang dihasilkan oleh Bollinger Bands. Dengan memperluaskan lebar saluran BB dan memanjangkan tempoh penahan, keuntungan yang lebih besar boleh diperoleh.

  3. Tempoh yang tepat menangkap pembalikan trend Penyambungan antara jalur atas dan bawah BB dan Purata Bergerak Osilasi Momentum menyediakan masa dan harga yang menguntungkan untuk menghasilkan isyarat perdagangan, yang dapat menangkap penyesuaian bull dan bear utama dengan berkesan dan memahami pembalikan trend tepat pada masanya.

Analisis Risiko

  1. Parameter BB yang tidak betul Tetapan parameter BB yang tidak betul seperti tempoh pengiraan dan pengganda penyimpangan standard boleh menyebabkan jarak antara jalur terlalu luas atau terlalu sempit, menghasilkan isyarat palsu yang berlebihan dan melemahkan kestabilan strategi.

  2. Amplituda gelora yang berlebihan Amplituda getaran yang terlalu besar dari Momentum Oscillating Moving Average boleh menyebabkan titik stop loss terlalu jauh, meningkatkan risiko kerugian.

  3. Pembaharuan yang tertunda
    Apabila pasaran berosilasi atau tanpa trend, isyarat dagangan dari BB dan Momentum Oscillating Moving Average mungkin terlambat, gagal mencerminkan perubahan harga dalam masa, menyebabkan risiko pembalikan yang tertunda.

Arahan pengoptimuman

  1. Mengoptimumkan parameter BB Uji tempoh yang berbeza, pengganda penyimpangan standard untuk mencari kombinasi parameter optimum yang memberikan frekuensi isyarat yang lebih baik dan lebih sedikit isyarat palsu.

  2. Mengoptimumkan Parameter Momentum Oscillating Moving Average Uji amplitudo dan tempoh osilasi yang berbeza untuk mencari parameter yang lebih baik menangkap trend dan mengurangkan kelewatan isyarat.

  3. Tambah keadaan penapis Tambah penapis seperti jumlah dagangan berdasarkan isyarat silang untuk mengecualikan isyarat dagangan yang tidak cekap.

  4. Gabungan strategi Gabungkan strategi ini dengan strategi stop loss atau strategi pembelajaran mesin lain untuk mengawal risiko dan meningkatkan kestabilan.

Ringkasan

Strategi ini menggabungkan kekuatan Bollinger Bands adaptif dan Momentum Oscillating Moving Average, mencapai integrasi trend mengikuti dan menangkap pembalikan trend. Dengan menyeimbangkan turun naik pasaran dan fleksibiliti isyarat perdagangan, ia merealisasikan perdagangan pecah yang stabil dan berkesan. Pengoptimuman parameter dan kawalan risiko juga penting untuk menguji dan menyesuaikan mengikut persekitaran pasaran yang berbeza.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//                               Hull Cloud v2 by SEASIDE420
strategy("Hull Moving Average Cloud v2", shorttitle="hull_cloud_v2", overlay=true, commission_type=strategy.commission.percent, commission_value=0.075, default_qty_type=strategy.percent_of_equity, max_bars_back=200, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
hullperiod=input(title="HullMA Period",defval=210, minval=1)
Width=input(title="Cloud Width",defval=200, minval=2)
price=input(ohlc4,title="Price data")
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) 
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) 
FromYear = input(defval = 2017, title = "From Year", minval = 2017) 
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) 
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) 
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) 
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) 
window() => true
n2ma=2*wma(price,round(hullperiod/2))
nma=wma(price,hullperiod)
diff=n2ma-nma
sqn=round(sqrt(hullperiod))
n2ma1=2*wma(price[1],round(hullperiod/2))
nma1=wma(price[1],hullperiod)
diff1=n2ma1-nma1
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
Hull_Line=n1-n1[1]/n2[1]
Hull_retracted=if(n1>n2)
    Hull_retracted=Hull_Line-Width
else
    Hull_retracted=Hull_Line+Width
c1=(Hull_retracted*n1)/price[1] 
c2=(Hull_retracted*n2)/price[1]
c4=c1>c2?green:red
c2p=plot(c2, color=black, linewidth=1)
c3p=plot(price, color=black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
plot(cross(c1, c2) ? c1 : na, style = circles,color=c4, linewidth = 4) 
if (price<c2)
    strategy.close("BUY", when=window())
if (price>c2)                       
    strategy.close("SELL", when=window())
if (price[1]>c2 and price[1]>c1)             
    strategy.entry("BUY",strategy.long, when=window())
if (price[1]<c1 and price[1]<c2)            
    strategy.entry("SELL",strategy.short, when=window())//           /L'-, 
//                               ,'-.      `   ````                 /  L '-, 
//     .                    _,--dMMMM\        `   ` ` '`..         /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `     ,<>          /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\          ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//                                                                                  :D

Lebih lanjut