Стратегия двойного скользящего среднего HullMA Crossover Trend

Автор:Чао Чжан, Дата: 2024-02-26 11:21:45
Тэги:

img

Обзор

Стратегия двойного скользящего среднего HullMA Crossover Trend - это стратегия, основанная на перекрестном использовании двойных скользящих средних.

Логика стратегии

Стратегия двойного движущегося среднего HullMA Crossover Trend использует три линии WMA с различными периодами, включая wma1, wma2 и wma3. wma2 и wma3 конструируют систему двойного движущегося среднего. Пересечение wma2 выше wma3 дает бычьи сигналы, в то время как пересечение wma2 ниже wma3 дает медвежие сигналы. wma1 служит вспомогательной ссылкой.

Кроме того, стратегия использует скользящую среднюю Hull для укрепления проверки сигнала. В частности, она рассчитывает разницу между 2-периодным WMA удвоенным (n2ma) и n-периодным WMA (nma). Только когда разница возрастает, бычьи сигналы подтверждаются действительными. Только когда разница падает, медвежие сигналы подтверждаются действительными.

Стратегия также включает в себя проверку цены. Только когда цена выше, чем в предыдущий день, бычьи сигналы будут подтверждены для длинных ордеров. Только когда цена ниже, чем в предыдущий день, медвежие сигналы будут подтверждены для коротких ордеров.

Анализ преимуществ

Стратегия HullMA Crossover Trend сочетает в себе двойной кроссовер скользящей средней и проверку цены, что позволяет эффективно отфильтровывать ложные сигналы.

Анализ рисков

Как стратегия, следующая за трендом, стратегия двойного скользящего среднего HullMA Crossover Trend может генерировать относительно больше сделок и расходов на скольжение на рынках с ограниченным диапазоном. Кроме того, двойные системы кроссоверов скользящих средних имеют тенденцию быть слишком чувствительными и могут излучать неправильные сигналы во время боковых тенденций. Желательно настроить параметры скользящих средних или наложить соответствующие дополнительные фильтры.

Руководство по оптимизации

Стратегия двойного скользящего среднего HullMA Crossover Trend может быть улучшена в следующих аспектах:

  1. Оптимизировать параметры скользящей средней для поиска лучшей комбинации параметров

  2. Добавьте фильтры, такие как объем или волатильность, чтобы исключить ложные прорывы

  3. Включение других показателей в качестве дополнительной проверки для улучшения качества сигнала

  4. Динамическая оптимизация параметров скользящих средних периодов

Резюме

В целом, стратегия Dual Moving Average HullMA Crossover Trend - это стабильная и надежная стратегия, следующая за трендом. Она производит высококачественные сигналы путем сочетания двойного пересечения скользящей средней и проверки цены. Благодаря настройке параметров и добавлению фильтров, она может еще больше уменьшить неправильные сигналы и достичь лучших результатов. Она подходит для улавливания средне- и долгосрочных тенденций и является надежным выбором для количественной торговли.


/*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)

Больше