
Биномиальная скользящая средняя (Binomial Moving Average, BMA) - это новый тип скользящего среднего показателя. Она использует половину коэффициента биномиальности для вычисления средней цены, обладая уникальным способом вычисления, хорошей плавностью и большой практичностью.
Эта стратегия сочетает в себе быстрый и медленный BMA, образуя торговый сигнал, похожий на MACD, и относится к стратегии отслеживания тенденций. Она может использоваться в течение нескольких циклов и подходит для работы на средней и длинной линиях.
Биномиальная стратегия движущихся средних трендов
Вычислить двумерный скользящий средний ((BMA). Он вычисляет двумерный коэффициент в зависимости от установленной пользователем длины цикла, а затем принимает половину его значения в качестве средневзвешенной цены. Например, если длина цикла равна 5, то вычисляется девять двумерных коэффициентов, принимая половину в качестве средневзвешенной. Это приводит к тому, что последние несколько K-линий имеют больший вес и лучше сглаживаются.
Установка быстрых и медленных циклов BMA. Быстрые BMA более чувствительны к изменениям цены, а медленные BMA более стабильны. Их скрещивание создает торговый сигнал.
Когда быстрый BMA пересекает медленный BMA, делать больше; когда быстрый BMA пересекает медленный BMA, делать пустоту. После входа в поле, продолжайте держать позицию до появления обратного сигнала.
Наибольшее преимущество этой стратегии заключается в том, что метод расчета BMA является новым, он усиливает преимущества движущихся средних, повышает плавность и практичность. По сравнению с EMA и SMA, BMA имеет больший вес на недавние K-линии, но также сохраняет больше исторической информации. Это позволяет лучше улавливать тенденции и производить меньше ложных сигналов.
Кроме того, комбинация быстрого и медленного BMA в полной мере использует преимущества движущейся средней, которая фильтрует большое количество шума и генерирует торговые сигналы только в точках перехода в тренде. Сама стратегия имеет простую логику, легко понятна и реализуема, подходит для средне- и долгосрочных операций.
Основные риски этой стратегии заключаются в следующем:
Как и все стратегии отслеживания трендов, когда тренд переворачивается, это может привести к убыткам. Решение - установить стоп-лосс или оптимизировать параметры, чтобы сделать BMA более чувствительным.
Неправильная настройка параметров BMA также влияет на эффективность стратегии. Если быстрая BMA слишком чувствительна, это увеличивает ложный сигнал; если медленная BMA слишком отстает, это может привести к упущению возможности тренда.
Эта стратегия по умолчанию включает в себя полную позицию и позволяет настроить управление позицией в соответствии с рисковыми предпочтениями для снижения убытков.
Основным направлением оптимизации стратегии является тестирование самого BMA, а также комбинации параметров.
Настройка цикла: тестирование различных быстрых и медленных циклов BMA для поиска оптимального сочетания параметров. Обычно быстрые циклы составляют от 10 до 30, а медленные - от 20 до 60.
Вес BMA: можно тестировать различные способы распределения веса, в полной мере половину бинарного коэффициента, или более предпочтительно несколько последних K-линий. Это может еще больше улучшить гладкость BMA.
Условия фильтрации: можно установить условия фильтрации, такие как ценовой прорыв, увеличение объема сделки, чтобы избежать неразумных сигналов.
Стоп-лошади, управление позициями также могут быть использованы для тестирования присоединения, контроля риска.
Эта стратегия впервые предлагает уникальный показатель бинарных движущихся средних, который расширяет способ вычисления движущихся средних, что повышает общую практичность и стабильность стратегии. Кроссовка быстрых BMA и медленных BMA создает простой и эффективный торговый сигнал.
/*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)