Trend Trader Bands Backtest Strategi Berdasarkan Trend Trader Moving Average

Penulis:ChaoZhang, Tarikh: 2023-12-11 13:12:44
Tag:

img

Ringkasan

Idea utama strategi ini adalah untuk menilai trend harga dan menjana isyarat dagangan menggunakan purata bergerak dan Bollinger Bands. Secara khusus, ia mula-mula mengira julat sebenar purata (ATR) dalam tempoh tertentu untuk mendapatkan julat turun naik, kemudian menggabungkan harga tertinggi dan terendah untuk membentuk saluran terhad. Jika harga menembusi saluran ini, harga penutupan ditetapkan sebagai harga saluran. Selepas itu, ia mengira purata bergerak harga penutupan terhad, yang dipanggil purata bergerak Trend Trader (AVR). Akhirnya, lukis Bollinger Bands di atas dan di bawah purata bergerak Trend Trader untuk membentuk isyarat dagangan.

Logika Strategi

Strategi ini mula-mula mengira julat ATR dan membentuk saluran yang mengehadkan digabungkan dengan harga tertinggi dan terendah. Harga penutupan akan terhad kepada harga saluran hanya apabila ia memecahkan saluran. Selepas itu, ia mengira trend trader moving average dari harga penutupan terhad, yang mencerminkan arah trend pertengahan jangka panjang. Akhirnya, lukis band atas dan band bawah sejajar dengan trend trader moving average sebagai band Bollinger. Menembusi band atas menghasilkan isyarat panjang dan menembusi band bawah menghasilkan isyarat pendek.

Inti menilai trend terletak pada trend trader moving average, yang mewujudkan arah trend jangka menengah dan panjang. peranan Bollinger band adalah untuk menapis beberapa breakout palsu dan membuat isyarat perdagangan lebih boleh dipercayai. keseluruhan strategi menggabungkan trend berikut dan breakout, membentuk sistem trend yang kuat.

Kelebihan

  1. ATR dan julat harga membina saluran penyesuaian untuk mengesan turun naik pasaran
  2. Trend Trade AVR menilai dengan jelas trend jangka menengah dan panjang
  3. Bollinger Bands menapis pecah palsu dan meningkatkan kualiti isyarat
  4. Sistem ini mencerminkan trend yang kuat, memegang lama boleh mendapatkan pulangan yang baik

Risiko

  1. Holding lama mungkin mengalami kerugian besar kerana beberapa peristiwa tiba-tiba
  2. Tetapan parameter yang tidak betul boleh membawa kepada perdagangan berlebihan, meningkatkan kos transaksi dan slippage
  3. Prestasi sangat bergantung pada penyesuaian parameter

Penyelesaian:

  1. Mengurangkan tempoh penahan dengan betul dan menetapkan stop loss
  2. Mengoptimumkan parameter untuk memberi isyarat cukup penyangga
  3. Menggunakan data sejarah dan perdagangan langsung untuk penyesuaian parameter

Arahan pengoptimuman

  1. Tetapan parameter penyelidikan di pasaran dan jangka masa yang berbeza
  2. Uji sama ada penunjuk lain boleh menapis pecah palsu
  3. Cuba menggabungkan stop loss untuk had setiap kerugian perdagangan

Kesimpulan

Strategi ini secara keseluruhan adalah sistem trend berikut yang kuat. Ia boleh menilai trend jangka menengah dan panjang dan menghasilkan isyarat perdagangan yang digabungkan dengan Bollinger band. Melalui pengoptimuman parameter, ia boleh mendapatkan alpha yang stabil. Tetapi kawalan risiko juga penting untuk mengelakkan kerugian besar akibat beberapa peristiwa mendadak apabila memegang untuk jangka panjang. Secara umum, strategi layak penyelidikan lanjut dan pengoptimuman untuk alpha yang mampan jangka panjang.


/*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")

Lebih lanjut