Estratégia de negociação baseada na média móvel do Hull e no candelabro

Autora:ChaoZhang, Data: 21 de Fevereiro de 2023
Tags:

Resumo

A ideia central desta estratégia é comparar a média móvel do casco (HMA) com os valores do candelabro para gerar sinais de compra e venda.

Princípios

Em primeiro lugar, a estratégia calcula o HMA de um determinado período usando a função hma ((). Em seguida, obtém o preço de abertura do candelabro anterior como referência. Se o HMA for maior do que o preço de abertura da vela anterior, um sinal de compra é gerado. Se o HMA for menor do que o preço de abertura da vela anterior, um sinal de venda é gerado.

As condições de entrada são que o preço precisa quebrar o HMA na direção oposta antes de entrar no mercado. Isso significa que ele vai comprar apenas quando o preço quebra acima do HMA de baixo. Ele vai vender apenas quando o preço quebra abaixo do HMA de cima. Isso evita ser espancado por mercados oscilantes.

As condições de saída são para parar a perda quando o preço cai de volta para o outro lado da HMA. Por exemplo, se o preço cai abaixo da HMA após a compra, ele vai parar a venda com perda.

Em resumo, esta estratégia identifica a principal direção da tendência usando a suavidade do HMA para gerar sinais.

Análise das vantagens

  1. Usando HMA em vez de SMA pode identificar melhor tendências e filtrar ruído.

  2. O mecanismo de fuga pode reduzir a probabilidade de ser preso e abrir posições repetitivas.

  3. Adotar o preço anterior da vela em vez do preço atual evita o ajuste da curva.

  4. As regras são simples e claras, adequadas para otimização de parâmetros e negociação de robôs.

  5. Pode ser aplicado de forma flexível a qualquer instrumento e período de tempo, com universalidade.

Riscos e melhorias

  1. A definição inadequada dos parâmetros HMA pode deixar de lado tendências ou ser demasiado sensível.

  2. Confiar em um único indicador é suscetível de ser interrompido por tentativas de ruptura, considere combinar outros indicadores para filtrar sinais.

  3. O stop loss está muito perto da HMA, pode ser preso novamente por uma ruptura subsequente.

  4. Incapaz de determinar a direcção e a força da tendência.

  5. O stop loss fixo causa uma grande flutuação no risco/recompensa.

Conclusão

Esta estratégia é relativamente simples e prática em geral, com uma idéia central clara. Identifica a tendência principal com HMA e filtra sinais falsos com ruptura. Evita ser esmagado por mercados agitados. A otimização adequada de parâmetros pode alcançar resultados decentes. No entanto, a confiabilidade e a taxa de vitória ainda são limitadas como uma única estratégia de indicador. Recomenda-se combinar com outros indicadores técnicos ou métodos de gerenciamento de dinheiro para melhorar significativamente a robustez.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
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/
// © SeaSide420. Any timeFrame/pair , Hull Moving Average vs Candle
//@version=4
strategy("Hull Moving Average vs Candle",shorttitle="HMA-vs-Candle",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.cash_per_order,commission_value=1.00,slippage=1)
Period=input(title="Hull MA Period",type=input.integer,defval=50,minval=1)
Resolution=input(title="Candle Resolution", type=input.resolution,defval="D")
Price=input(title="Source of Price",type=input.source,defval=open)
HMA=hma(Price,Period)
Candle=security(syminfo.tickerid,Resolution,Price,barmerge.gaps_off,barmerge.lookahead_off)
change_color=HMA>Candle?color.green:color.red
plot1=plot(Candle,color=change_color,title="Candle Line",linewidth=2,transp=50)
plot2=plot(HMA[1],color=change_color,title="Hull MA Line",linewidth=2,transp=50)
fill(plot1,plot2,color=change_color,transp=50)
strategy.close("BUY",when=Price<HMA and HMA<Candle,comment="close buy entry")
strategy.close("SELL",when=Price>HMA and HMA>Candle,comment="close sell entry")
if (Price>HMA and HMA>Candle and Price>Price[1])
    strategy.entry("BUY",strategy.long)
if (Price<HMA and HMA<Candle and Price<Price[1])
    strategy.entry("SELL",strategy.short)



//                                                                   /L'-, 
//                               ,'-.           /MM . .             /  L '-, 
//     .                    _,--dMMMM\         /MMM  `..           /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `QMM   ,<>         /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\       `  ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//                                                                                        ~ priceless artwork by SeaSide420

Mais.