
Двойная подвижная средняя HullMA - это стратегия для отслеживания трендов, основанная на пересечении двух подвижных средних. Она использует WMA для создания системы двойных подвижных средних и генерирует торговые сигналы при их пересечении.
Двойная подвижная средняя HullMA с использованием трёх различных периодических линий WMA, включающих wma1, wma2 и wma3 . wma2 и wma3 создают двойную подвижную среднюю систему, которая сигнализирует о повышении, когда wma2 проходит через wma3, и о снижении, когда wma2 проходит через wma3 .
Эта стратегия дополнительно использует Hull Moving Average для усиления сигнального суждения. В частности, она рассчитывает разницу в n2ma и n-дневных переменных nma в два раза больше, чем в 2-дневных взвешенных перемещающихся средних, и измеряет изменение значения разрыва. Позитивные сигналы подтверждаются только тогда, когда разница повышается, а отрицательные сигналы подтверждаются, когда разница снижается.
Эта стратегия одновременно сочетается с ценовым определением. Только тогда, когда цена выше цены предыдущего дня, будет подтверждено, что положительный сигнал эффективно генерируется, чтобы сделать много заказов. Только тогда, когда цена ниже цены предыдущего дня, будет подтверждено, что отрицательный сигнал эффективно генерируется.
Двухмесячная HullMA сочетает в себе двойную пересекающуюся среднюю и ценовое определение, что позволяет эффективно отсеивать ложные сигналы. Кроме того, эта стратегия использует движущиеся средние с тремя различными периодами, чтобы поймать различные уровни тенденции и попасть на рынок в начале тенденции.
Двойная подвижная средняя HullMA кросс-трендинговая стратегия, как одна из стратегий слежения за тенденцией, в состоянии свертывания может привести к большему количеству сделок и потерям скольжения. Кроме того, двойная подвижная средняя кросс-система слишком чувствительна и может подавать ошибочные сигналы на стороне. Рекомендуется соответствующая корректировка параметров подвижной средней или добавление дополнительных фильтрующих условий.
Двойная подвижная средняя HullMA может быть оптимизирована в следующих аспектах:
Оптимизация параметров скользящих средних и поиск оптимальных комбинаций параметров
Повышение фильтров, таких как объем или волатильность, чтобы исключить ложные прорывы
Повышение качества сигнала в сочетании с другими показателями в качестве вспомогательного суждения
Динамическая оптимизация параметров циклических скользящих средних
Двойная подвижная средняя HullMA является стабильной и надежной стратегией для отслеживания тренда в целом. Она сочетает в себе двойную подвижную среднюю скрещивание и ценовое определение для получения высококачественного сигнала.
/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
strategy.close("Short")
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
strategy.entry("Short",strategy.short)