Trend Trader Bands Backtest Strategi Berdasarkan Trend Trader Moving Average

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

img

Gambaran umum

Ide utama dari strategi ini adalah untuk menilai tren harga dan menghasilkan sinyal perdagangan menggunakan moving averages dan Bollinger bands. Secara khusus, pertama-tama menghitung rata-rata rentang benar (ATR) selama periode tertentu untuk mendapatkan rentang volatilitas, kemudian menggabungkan harga tertinggi dan terendah untuk membentuk saluran pembatas. Jika harga menembus saluran ini, harga penutupan ditetapkan sebagai harga saluran. Setelah itu, ia menghitung rata-rata bergerak dari harga penutupan terbatas, yang disebut Trend Trader moving average (AVR). Akhirnya, gambar Bollinger band di atas dan di bawah Trend Trader moving average untuk membentuk sinyal perdagangan.

Logika Strategi

Strategi ini pertama-tama menghitung rentang ATR dan membentuk saluran pembatasan yang dikombinasikan dengan harga tertinggi dan terendah. Harga penutupan akan terbatas pada harga saluran hanya ketika memecahkan saluran. Setelah itu, strategi ini menghitung trend trader moving average dari harga penutupan terbatas, yang mencerminkan arah tren jangka menengah dan panjang. Akhirnya, tarik band atas dan band bawah sejajar dengan trend trader moving average sebagai Bollinger bands. Menembus band atas menghasilkan sinyal panjang dan menembus band bawah menghasilkan sinyal pendek.

Inti dari menilai tren terletak pada Trend Trader moving average, yang mewujudkan arah tren jangka menengah dan panjang. Peran Bollinger band adalah untuk menyaring beberapa breakout palsu dan membuat sinyal perdagangan lebih dapat diandalkan. Seluruh strategi menggabungkan trend berikut dan breakout, membentuk sistem tren yang kuat.

Keuntungan

  1. ATR dan kisaran harga membangun saluran adaptif untuk melacak volatilitas pasar
  2. Trend Trade AVR dengan jelas menilai tren jangka menengah dan panjang
  3. Bollinger Bands menyaring kegagalan palsu dan meningkatkan kualitas sinyal
  4. Sistem ini mencerminkan tren yang kuat, memegang panjang dapat mendapatkan hasil yang baik

Risiko

  1. Holding panjang mungkin mengalami kerugian besar karena beberapa kejadian tiba-tiba
  2. Pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan berlebihan, peningkatan biaya transaksi dan slippage
  3. Kinerja sangat bergantung pada pengaturan parameter

Solusi:

  1. Mengurangi periode penahan dengan benar dan mengatur stop loss
  2. Mengoptimalkan parameter untuk memberikan sinyal cukup buffer
  3. Menggunakan data historis dan perdagangan langsung untuk penyesuaian parameter

Arahan Optimasi

  1. Pengaturan parameter penelitian di pasar dan kerangka waktu yang berbeda
  2. Uji apakah indikator lain dapat menyaring penyebaran palsu
  3. Cobalah untuk memasukkan stop loss untuk membatasi kerugian per perdagangan

Kesimpulan

Strategi ini secara keseluruhan adalah sistem trend berikut yang kuat. Ini dapat menilai tren jangka menengah dan panjang dan menghasilkan sinyal perdagangan yang dikombinasikan dengan Bollinger bands. Melalui optimasi parameter, itu dapat mendapatkan alfa yang stabil. Tetapi pengendalian risiko juga penting untuk menghindari kerugian besar karena beberapa peristiwa mendadak ketika memegang untuk jangka panjang. Secara umum, strategi layak penelitian lebih lanjut dan optimasi untuk jangka panjang berkelanjutan alfa.


/*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 banyak