Esta estratégia utiliza o indicador HMA (Hull Moving Average) e a análise técnica da K-line para realizar o julgamento do ímpeto e as operações de avanço nos preços.
O indicador HMA foi criado por Alan Hull em 2005 para criar uma média móvel sensível e suave.
(1) Calcular o DMA médio de dupla suavização de meio ciclo
(2) Calcular a SMA média do ciclo completo
(3) Calcular a diferença DIFF entre DMA e SMA
(4) Calcular a linha média do ciclo SQRT ((período) do DIFF para obter HMA
A estratégia utiliza as avanças para cima e para baixo do indicador HMA como sinais, combinados com a avança da parte da entidade da linha K, para gerar sinais de compra e venda.
A característica de
O mecanismo de dupla passagem melhora a fiabilidade dos sinais e evita que sejam presos.
O stop loss dinâmico e a proteção dos lucros otimizam o risco e o retorno.
A negociação totalmente automatizada simplifica as operações.
Em violentas flutuações de mercado, a probabilidade de um stop loss ser atingido é maior.
A alta frequência de negociação aumenta os custos de comissão.
Configurações incorretas de parâmetros podem gerar muitos sinais falsos.
Otimizar as condições de stop loss e take profit e definir retracements razoáveis.
Ajustar a frequência das negociações para reduzir o impacto das comissões.
Testar e otimizar as condições de ciclo e de ruptura do HMA para determinar parâmetros ideais.
Incorporar indicadores de avaliação da tendência para evitar a negociação de contra-tendência.
Aumentar o julgamento automático da mudança de fonte de dados para se adaptar a mais ambientes de mercado.
Aumentar os algoritmos de aprendizagem de máquina para obter otimização automática de parâmetros.
Implementar no servidor para obter verificação de negociação ao vivo 24 horas.
A estratégia de ruptura de momento HMA utiliza as vantagens únicas da média móvel Hull para capturar com precisão o momento do mercado. O mecanismo de filtragem de ruptura dupla melhora a qualidade do sinal e o stop de lucro e stop de perda dinâmicos protegem o rendimento. Esta estratégia é fácil de usar, eficaz e uma ferramenta de negociação quantitativa muito prática que vale a pena promover.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //SeaSide420 strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) // settings---------------------- q=input(title="HullMA",defval=5) SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=500.00, title="Target Point in $", type=float, step=1) price=input(ohlc4,title="Price data") ot=1 p=price[1] // Daily candle crossover--------- dt = 0.0010 Daily=(p-p[1])/p[1] //-------------------------------- // Hull MA's---------------------- n2ma=2*wma(p,round(q/2)) nma=wma(p,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(p[1],round(q/2)) nma1=wma(p[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) //--------------------------------- // Plotting------------------------ z1e=n1>n2?green:black z2e=n1>n2?black:red z3e=n1>n2?green:red n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) // Order controls------------------- closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)