Strategi Trading Tren Rata-rata Bergerak Dinamis

Penulis:ChaoZhang, Tanggal: 2023-11-15 17:45:13
Tag:

img

Gambaran umum

Strategi ini didasarkan pada indikator Dynamic Moving Average, dikombinasikan dengan Bollinger Bands dan RSI untuk penyaringan sinyal perdagangan. Strategi ini menerapkan tren mengikuti strategi panjang saja. Strategi ini menilai tren dengan menghitung perubahan harga penutupan Heiken Ashi Dynamic Moving Average dan membandingkannya dengan Bollinger Bands untuk menghasilkan sinyal perdagangan. Dengan filter RSI, dapat secara efektif mengidentifikasi titik ledakan tren untuk pelacakan tren.

Logika Strategi

Inti dari strategi ini adalah untuk menghitung perubahan harga penutupan Heiken Ashi Dynamic Moving Average. Secara khusus, ini menghitung perbedaan antara MA bar saat ini dan MA dua bar sebelumnya, kemudian mengalikannya dengan koefisien sensitivitas untuk mendapatkan nilai perubahan MA yang akurat.

Kemudian nilai perubahan ini dibandingkan dengan perbedaan antara Bollinger Bands band atas dan band bawah. Jika perubahan MA lebih besar dari perbedaan BB, itu dianggap sebagai ledakan tren. Ketika ledakan positif, yaitu perubahan MA positif, itu menghasilkan sinyal panjang dan garis hijau. Ketika ledakan negatif, yaitu perubahan MA negatif, itu menghasilkan sinyal dekat dan garis merah.

Selain itu, strategi ini memiliki filter RSI yang hanya memungkinkan sinyal panjang ketika RSI lebih tinggi dari ambang batas, menghindari risiko pembalikan tren.

Keuntungan

  • MA dinamis untuk melacak perubahan tren secara efektif
  • BB sebagai indikator dinamis dikombinasikan dengan MA untuk identifikasi ledakan tren yang lebih baik
  • RSI filter menghindari sinyal palsu dari rebound rendah
  • Long hanya cocok untuk pasar bull yang terus menerus
  • Parameter yang dapat disesuaikan yang fleksibel untuk produk dan jangka waktu yang berbeda

Risiko

  • Long hanya tidak bisa mendapatkan keuntungan dari downtrend
  • Terlalu bergantung pada optimasi parameter untuk produk dan kerangka waktu yang berbeda
  • Tidak dapat menangkap pembalikan tren secara efektif, dapat menyebabkan kerugian besar
  • Pengaturan filter RSI yang tidak benar dapat kehilangan peluang perdagangan
  • Sensitivitas tinggi dapat menghasilkan perdagangan berisik

Metode pengendalian risiko meliputi: penyesuaian parameter yang tepat untuk ketahanan, menggabungkan indikator lain untuk menilai pembalikan tren, hanya digunakan dalam tren jangka panjang yang jelas, dll.

Arahan Optimasi

Ada beberapa ruang untuk optimasi lebih lanjut:

  • Coba sumber harga yang berbeda seperti dekat, rata-rata bergerak dll untuk lebih halus

  • Sesuaikan parameter periode MA dan BB untuk optimalisasi di berbagai produk

  • Coba hubungan rasio alih-alih koefisien sensitivitas untuk nilai indikator yang lebih intuitif

  • Tambahkan filter lain seperti garis tren, volume dll untuk meningkatkan kualitas sinyal

  • Mengembangkan strategi jangka pendek berdasarkan pola indikator

  • Menggabungkan mekanisme stop loss untuk pengendalian risiko yang lebih baik

Kesimpulan

Secara keseluruhan ini adalah tren yang relatif stabil mengikuti strategi. Ini menggunakan rata-rata bergerak dinamis untuk menentukan arah tren, BB untuk mengidentifikasi titik eksplosif, RSI untuk menyaring sinyal palsu, mewujudkan sistem tren panjang saja. Tapi juga memiliki beberapa risiko, membutuhkan penyesuaian parameter untuk produk dan kerangka waktu yang berbeda, dan ketidakmampuan untuk mendapatkan keuntungan dari tren penurunan. Ada ruang untuk perbaikan lebih lanjut seperti meningkatkan kualitas sinyal, mengembangkan strategi pendek, menambahkan stop loss dll untuk mencapai kinerja yang lebih baik.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\

strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')

////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
    fastMA = ta.ema(source, fastLength)
    slowMA = ta.ema(source, slowLength)
    fastMA - slowMA

/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis + dev

calc_BBLower(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis - dev

//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

////////////////////T1 is change in MacD current  candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is  T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity

////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))

//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0

///////plots difference in macD*Sensitivity, color change if increasing or decreasing. 
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')


////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand. 
/////////////{this could have been a ratio maybe i will work with that in a different script.} 
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////

longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
    strategy.entry('up', strategy.long)

strategy.close('up', trendDown > e1)



Lebih banyak