
Binomial Moving Average (BMA) adalah sebuah jenis indikator moving average yang menggunakan setengah dari faktor binomial untuk menghitung harga rata-rata, dengan perhitungan yang unik, kehalusan yang baik, dan kepraktisan yang kuat.
Strategi ini menggabungkan BMA cepat dan BMA lambat untuk membentuk sinyal perdagangan yang mirip dengan MACD dan merupakan strategi trend-following.
Strategi tren rata-rata bergerak binomial
Menghitung Moving Average Binomial ((BMA)). Menghitung koefisien binomial berdasarkan panjang siklus yang ditetapkan pengguna, kemudian mengambil setengah dari nilai sebagai harga rata-rata berbobot. Misalnya, dengan panjang siklus 5, menghitung koefisien binomial 9 kali, mengambil setengah dari rata-rata berbobot.
Setting fast BMA cycle and slow BMA cycle. BMA cepat lebih sensitif terhadap perubahan harga, BMA lambat lebih stabil. Persaingan mereka menghasilkan sinyal perdagangan.
Ketika BMA cepat di atas melewati BMA lambat, lakukan lebih banyak; ketika BMA cepat di bawah melewati BMA lambat, kosongkan. Setelah masuk ke dalam lapangan, terus memegang posisi sampai sinyal mundur muncul.
Keuntungan terbesar dari strategi ini adalah bahwa metode penghitungan indikator BMA adalah baru, dan ini meningkatkan keuntungan dari rata-rata bergerak, meningkatkan kehalusan dan kepraktisan. Dibandingkan dengan EMA dan SMA, BMA memiliki bobot yang lebih besar pada beberapa garis K terbaru, tetapi juga menyimpan lebih banyak informasi sejarah. Ini memungkinkan untuk menangkap tren dengan lebih baik dan menghasilkan lebih sedikit sinyal palsu.
Selain itu, kombinasi BMA yang cepat dan lambat memanfaatkan keunggulan rata-rata bergerak, yang memfilter banyak kebisingan dan hanya menghasilkan sinyal perdagangan di titik-titik perubahan tren. Strategi itu sendiri logisnya sederhana, mudah dipahami dan diterapkan, cocok untuk operasi garis panjang dan menengah.
Risiko utama dari strategi ini adalah:
Seperti semua strategi trend-following, ketika tren berbalik, kemungkinan besar akan terjadi kerugian. Solusinya adalah dengan menetapkan stop loss, atau mengoptimalkan parameter untuk membuat BMA lebih sensitif.
Jika BMA cepat terlalu sensitif, akan meningkatkan sinyal palsu; Jika BMA lambat terlalu lambat, mungkin akan kehilangan peluang tren. Perlu tes kombinasi ganda untuk menemukan parameter terbaik.
Strategi ini secara default melakukan perdagangan posisi penuh dan dapat mengatur manajemen posisi sesuai dengan preferensi risiko untuk mengurangi kerugian tunggal.
Tujuan utama dari strategi ini adalah untuk mengoptimalkan pengujian BMA sendiri dan parameter kombinasi.
Pengaturan siklus: Uji berbagai siklus BMA cepat dan BMA lambat untuk menemukan kombinasi parameter yang optimal. Umumnya siklus cepat antara 10-30 dan siklus lambat antara 20-60
BMA weight: dapat diuji dengan cara yang berbeda untuk distribusi berat, yaitu setengah dari faktor binomial pada seluruh bagian, atau lebih mementingkan beberapa garis K yang paling dekat.
Kondisi filter: dapat mengatur kondisi filter seperti harga terobosan, volume transaksi meningkat, dan lain-lain, untuk menghindari sinyal yang tidak masuk akal.
Mekanisme stop loss, manajemen posisi juga dapat diuji untuk menambah, mengendalikan risiko.
Untuk pertama kalinya, strategi ini menawarkan indikator unik dari moving average biner, yang meningkatkan cara menghitung moving average, sehingga meningkatkan kepraktisan dan stabilitas strategi secara keseluruhan. Persaingan antara BMA cepat dan BMA lambat menghasilkan sinyal perdagangan yang sederhana dan efektif.
/*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)