A ideia central desta estratégia é comparar a média móvel de Hull (Hull Moving Average, HMA) com a linha K para gerar um sinal de compra e venda. Compre quando a HMA está acima da linha K e venda quando a HMA está abaixo da linha K.
Primeiro, a estratégia calcula o HMA de um determinado período com a função hma (). Em seguida, obtém o preço de abertura da linha K superior como referência de comparação. Se o HMA for superior ao preço de abertura da linha K superior, um sinal de compra é gerado; Se o HMA for inferior ao preço de abertura da linha K superior, um sinal de venda é gerado.
A condição de entrada para a estratégia é entrar apenas quando o preço quebra o HMA na direção oposta. Ou seja, só comprar quando o preço quebra o HMA abaixo; só vender quando o preço quebra o HMA acima. Isso evita que o mercado seja abalado por sinais de retorno.
A saída da estratégia é uma parada de perda quando o preço retorna para o outro lado do HMA. Por exemplo, se o preço de compra cair abaixo do HMA, a parada de perda é vendida.
Em geral, esta estratégia utiliza as características suaves da HMA para identificar as principais direções de tendência e gerar sinais. Ao mesmo tempo, exige que os preços se rompam para filtrar os falsos sinais, evitando ser repelidos pelas turbulências do mercado.
Usando HMA em vez de SMA, é possível identificar melhor as tendências, filtrando oscilações.
O mecanismo de ruptura pode reduzir a probabilidade de ser apanhado e abrir posições repetidas.
O uso de um preço de linha K anterior, em vez de um preço atual, evita a traçação de curva retrógrada.
As regras são simples e claras, adequadas para otimização de parâmetros e negociação de robôs.
Aplica-se de forma flexível em qualquer variedade e ciclo, sendo universal.
A configuração inadequada do parâmetro HMA pode causar tendências erradas ou hipersensibilidade. Pode-se testar diferentes parâmetros de período para encontrar o melhor valor.
Indicadores individuais são suscetíveis de serem re-examinados dentro da área de exclusão e podem ser considerados em combinação com outros indicadores para filtrar o sinal.
O ponto de parada está próximo do HMA, sendo mais propenso a ser re-pertocado, podendo ser adequadamente afastado para o ponto de resistência de suporte.
Não é possível avaliar a direção e a intensidade da tendência e considerar a inclusão de um indicador de classificação de tendências.
O ponto de parada fixo causa uma grande flutuação de risco e receita, podendo ser experimentado com o bloqueio de perdas ou o gerenciamento de fundos.
Esta estratégia é simples e prática, com uma ideia central clara. A HMA julga a direção da tendência principal, para quebrar o sinal de erro. O mercado de choque pode ser evitado repetidamente abrindo o portfólio. A otimização de parâmetros pode obter bons resultados.
/*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