Binomial Moving Average (BMA) adalah jenis indikator rata-rata bergerak yang baru.
Strategi ini menggabungkan BMA cepat dan BMA lambat untuk menghasilkan sinyal perdagangan seperti MACD, yang termasuk dalam strategi trend-following.
Strategi Tren Rata-rata Bergerak Binomial
Menghitung Binomial Moving Average (BMA). Menurut periode yang ditetapkan pengguna, ia menghitung koefisien binomial dan mengambil setengah dari mereka sebagai bobot untuk harga rata-rata. Misalnya, dengan periode 5, ia menghitung 9 koefisien binomial dan mengambil setengahnya untuk rata-rata tertimbang. Ini memberikan lebih banyak bobot untuk lilin terbaru dan kelancaran yang lebih baik.
Setel periode BMA cepat dan periode BMA lambat. BMA cepat lebih sensitif terhadap perubahan harga sementara BMA lambat lebih stabil.
Ketika BMA cepat naik di atas BMA lambat, posisi panjang dibuka. Ketika BMA cepat turun di bawah BMA lambat, posisi pendek dibuka. Tahan posisi sampai sinyal sebaliknya muncul.
Keuntungan terbesar dari strategi ini terletak pada perhitungan inovatif BMA. Ini meningkatkan kekuatan rata-rata bergerak dengan kelancaran dan kepraktisan yang lebih baik. Dibandingkan dengan EMA dan SMA, BMA memberikan lebih banyak bobot pada lilin baru-baru ini sambil mempertahankan lebih banyak informasi historis. Hal ini memungkinkan untuk menangkap tren dengan lebih baik dan menghasilkan lebih sedikit sinyal palsu.
Selain itu, kombinasi BMA yang cepat dan lambat memanfaatkan sepenuhnya keuntungan dari moving average. Ini menyaring banyak kebisingan dan hanya menghasilkan sinyal pada titik balik tren. Strategi itu sendiri mudah dipahami dan diimplementasikan, cocok untuk perdagangan jangka menengah hingga panjang.
Risiko utama dari strategi ini meliputi:
Seperti semua strategi yang mengikuti tren, itu dapat menyebabkan kerugian ketika tren berbalik.
Pengaturan parameter BMA yang tidak tepat juga mempengaruhi kinerja strategi. BMA cepat yang terlalu sensitif dapat menghasilkan sinyal palsu sementara BMA lambat yang tertinggal dapat kehilangan peluang tren.
Strategi secara default menggunakan posisi penuh. ukuran posisi dapat ditambahkan sesuai dengan preferensi risiko untuk membatasi kerugian per perdagangan.
Arah pengoptimalan utama adalah pengujian BMA itu sendiri dan kombinasi parameter.
Pengaturan periode: Uji periode BMA cepat dan periode BMA lambat yang berbeda untuk menemukan kombinasi yang optimal.
Berat BMA: Uji skema bobot yang berbeda, seperti mendistribusikan koefisien binomial setengah atau menempatkan lebih banyak berat pada lilin baru-baru ini.
Kondisi filter seperti pecah dan volume yang meningkat dapat ditambahkan untuk menghindari sinyal yang tidak masuk akal.
Mekanisme stop loss dan ukuran posisi juga dapat diuji untuk mengontrol risiko dengan lebih baik.
Strategi ini pertama-tama mengusulkan indikator Binomial Moving Average yang unik. Ini meningkatkan perhitungan rata-rata bergerak dan meningkatkan kegunaan dan stabilitas keseluruhan strategi. Perpindahan antara BMA cepat dan lambat menghasilkan sinyal perdagangan yang sederhana namun efektif. Masih ada ruang untuk optimasi lebih lanjut pada kelancaran parameter dan pengendalian risiko. Ini adalah strategi tren yang sangat menjanjikan.
/*backtest start: 2022-12-07 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HosseinDaftary //@version=4 strategy("Binomial Moving Average","BMA", overlay=true, margin_long=100, margin_short=100 ,max_bars_back=96) //Binomial Moving Average:This type of moving average that is made by myself and i did not see anywhere before uses the half of binomial cofficients for //averaging the prices for example if the period be 5 then we use the 9 degree binomial cofficients(that yields 10 cofficients) and use half of them. //we use 126/256 for last bar,84/256,36/256,9/256 and finally use 1/256 for 5th bar. Seemingly this MA works better than EMA. fa_ma=input(title='Fast MA',defval=10) sl_ma=input(title='Slow MA',defval=30) fac(n)=> fact=1 for i= 1 to n fact:=fact*i fact cof= array.new_float(sl_ma) hn_ma(price,length)=> sum=1.0 sum1=0.0 array.set(cof,length-1,1) for i=2 to length array.set(cof,length-i,fac(2*length-1)/(fac(i-1)*fac(2*length-i))) sum:=sum+array.get(cof,length-i) for i=0 to length-1 array.set(cof,i,array.get(cof,i)/sum) sum1:=sum1+array.get(cof,i)*price[i] sum1 hn1=plot(hn_ma(close,sl_ma) , color=#00ff00) hn2=plot(hn_ma(close,fa_ma) ,color=#ff0000) fill(hn1,hn2,color=hn_ma(close,fa_ma)>hn_ma(close,sl_ma)?color.green:color.red) longCondition = crossover(hn_ma(close, fa_ma), hn_ma(close, sl_ma)) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(hn_ma(close, fa_ma), hn_ma(close, sl_ma)) if (shortCondition) strategy.entry("Short", strategy.short)