Bollinger Bands Backtesting Strategy Berdasarkan Moving Average untuk Trend Trader


Tarikh penciptaan: 2023-12-11 13:12:44 Akhirnya diubah suai: 2023-12-11 13:12:44
Salin: 0 Bilangan klik: 593
1
fokus pada
1621
Pengikut

Bollinger Bands Backtesting Strategy Berdasarkan Moving Average untuk Trend Trader

Gambaran keseluruhan

Gagasan utama strategi ini adalah menggunakan purata bergerak dan beling Brin untuk menilai trend harga dan menghasilkan isyarat perdagangan. Khususnya, pertama-tama mengira purata jangkauan pergerakan sebenar ATR untuk satu kitaran, kemudian menggabungkan harga tertinggi dan harga terendah untuk mendapatkan saluran terhad. Jika harga menembusi saluran itu, biarkan harga tutup sama dengan harga saluran.

Prinsip Strategi

Strategi ini pertama-tama mengira jangkauan ATR, kemudian digabungkan dengan harga tertinggi dan terendah, untuk mendapatkan saluran terhad. Hanya apabila harga menembusi saluran itu, harga tutup akan terhad pada harga saluran. Kemudian mencari purata bergerak untuk harga tutup setelah terhad, yang disebut rata-rata pedagang trend (Trend Trade AVR).

Strategi ini menilai trend dengan menggunakan rata-rata peniaga trend, yang menunjukkan arah trend dalam jangka masa sederhana dan panjang. Tangan Brin berfungsi untuk menyaring beberapa pecah palsu, menjadikan isyarat perdagangan lebih dipercayai. Strategi ini menggabungkan trend dan pencabutan trend untuk membentuk sistem trend yang lebih kuat.

Kelebihan Strategik

  1. Menggunakan ATR dengan harga tertinggi dan terendah untuk membentuk saluran dan mengesan pergerakan pasaran
  2. Rata-rata peniaga trend menilai dengan jelas trend jangka panjang
  3. Brin membuat penemuan palsu untuk meningkatkan kualiti isyarat
  4. Keseluruhan sistem mencerminkan trend yang kuat, pemegang jangka panjang dapat memperoleh keuntungan yang baik

Risiko Strategik

  1. Pemilihan jangka panjang dan jangka menengah boleh menyebabkan kerugian yang lebih besar
  2. Penetapan parameter yang tidak betul boleh menyebabkan perdagangan yang kerap, meningkatkan kos perdagangan dan kehilangan slippoints
  3. Kesan sangat berkaitan dengan parameter yang ditetapkan dan perlu disesuaikan untuk mencari parameter terbaik

Kaedah pencegahan:

  1. Dapat memendekkan tempoh pegangan dengan sewajarnya dan menghentikan kerugian tepat pada masanya
  2. Parameter pengoptimuman yang membolehkan isyarat mempunyai buffer tertentu
  3. Menggunakan data sejarah dan parameter pengoptimuman cakera keras

Arah pengoptimuman strategi

  1. Kajian lebih terperinci mengenai seting parameter kitaran yang berbeza di pasaran yang berbeza
  2. Ujian untuk menapis penembusan palsu
  3. Cuba untuk mengawal kerugian tunggal dengan menggunakan strategi stop loss.

ringkaskan

Strategi ini secara keseluruhannya adalah sistem pengesanan trend yang kuat. Ia dapat menilai trend pasaran pada garis tengah dan panjang, dan menghasilkan isyarat perdagangan dalam kombinasi dengan Brin. Dengan pengoptimuman parameter, keuntungan tambahan yang stabil dapat diperoleh.

Kod sumber strategi
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")