A estratégia HullMA Crossover Trend é uma estratégia de seguimento de tendências baseada no cruzamento de médias móveis duplas.
A estratégia de tendência de cruzamento de média móvel HullMA emprega três linhas WMA com períodos diferentes, incluindo wma1, wma2 e wma3.
Além disso, a estratégia utiliza a média móvel de Hull para fortalecer a validação do sinal. Especificamente, calcula a diferença entre o WMA duplicado de 2 períodos (n2ma) e o WMA de n períodos (nma). Somente quando a diferença subir, os sinais bull serão confirmados como válidos. Somente quando a diferença cair, os sinais bear serão confirmados como válidos.
A estratégia também incorpora a validação de preços. Somente quando o preço é maior que o dia anterior, os sinais de touro serão confirmados válidos para ordens longas. Somente quando o preço é menor que o dia anterior, os sinais de bear serão confirmados válidos para ordens curtas.
A estratégia de tendência de cruzamento de média móvel HullMA combina cruzamento de média móvel dupla e validação de preço, o que permite filtrar efetivamente sinais falsos. Esta é sua maior força. Além disso, com três linhas de média móvel de vários períodos, a estratégia pode capturar tendências de diferentes níveis no início. Seu mecanismo de stop loss também é bastante estável e confiável.
Como uma estratégia de tendência, a estratégia de tendência de cruzamento de média móvel HullMA pode gerar relativamente mais negociações e custos de deslizamento durante os mercados de faixa. Além disso, os sistemas de cruzamento de média móvel dupla tendem a ser muito sensíveis e podem emitir sinais incorretos durante tendências laterais. É aconselhável ajustar os parâmetros da média móvel ou impor filtros adicionais em conformidade.
A estratégia de tendência de dupla média móvel HullMA Crossover pode ser melhorada nos seguintes aspectos:
Otimizar os parâmetros da média móvel para encontrar a melhor combinação de parâmetros
Adicione filtros como volume ou volatilidade para eliminar falhas
Incorporar outros indicadores como validação suplementar para melhorar a qualidade do sinal
Optimização dinâmica dos parâmetros da média móvel do período
Em resumo, a estratégia de tendência de cruzamento de média móvel dupla HullMA é uma estratégia estável e confiável de tendência. Produz sinais de alta qualidade combinando cruzamento de média móvel dupla e validação de preço. Através do ajuste de parâmetros e adição de filtros, pode reduzir ainda mais os sinais incorretos e alcançar um melhor desempenho. É adequado para capturar tendências de médio a longo prazo e uma escolha sólida para negociação quantitativa.
/*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)