
A estratégia utiliza uma combinação de dois períodos de HMA para construir um sistema de negociação de acompanhamento de tendências completo. Em particular, a estratégia usa o HMA 200 como um indicador de sinal de entrada, enquanto o HMA 150 é usado para a geração de sinais de parada dinâmica. A estratégia ativa um sinal de compra ou venda quando o preço ultrapassa o HMA 200 e executa uma parada quando o preço tem uma relação de cruzamento específica com o HMA 150. A estratégia também inclui um período de data de retorno configurável que permite ao comerciante avaliar o desempenho da estratégia em um determinado período de tempo.
O núcleo da estratégia é baseado em duas médias móveis de Hull (HMA) de dois períodos diferentes: HMA 200 e HMA 150. A HMA é um indicador de média móvel avançada, que, em comparação com a média móvel tradicional, é capaz de reduzir significativamente o atraso, mantendo a suavidade. A lógica de entrada da estratégia é baseada na relação cruzada do preço com a linha HMA 200 mais lenta: um sinal de compra é gerado quando o preço de venda atravessa o HMA 200 e um sinal de venda é gerado quando o preço de venda atravessa o HMA 200.
A lógica de stop-loss usa o HMA 150 mais rápido como ponto de referência dinâmico: para posições multihead, o stop-loss é acionado quando o preço atravessa o HMA 150 abaixo; para posições em aberto, o stop-loss é acionado quando o preço atravessa o HMA 150 acima. Este design permite que o nível de stop-loss se adapte à dinâmica do mercado, em vez de usar um objetivo de lucro fixo.
O código implementa a função de alcance de data de retrospecção configurável, que permite aos comerciantes realizar análises de desempenho de estratégias para períodos históricos específicos e avaliar com mais precisão o desempenho da estratégia em diferentes ambientes de mercado. A estratégia também inclui um componente de visualização, que exibe a linha HMA, os sinais de entrada e os sinais de parada no gráfico, para que os comerciantes entendam intuitivamente o estado do mercado e as decisões estratégicas.
Reduzir o atrasoA HMA possui menor latência em relação à média móvel tradicional, permitindo que os sinais de entrada e saída sejam mais oportunos, respondam mais rapidamente às mudanças no mercado e reduzam os potenciais custos de oportunidade.
Projeto de equilíbrio de dois ciclosA estratégia usa HMAs de diferentes períodos para entrada e parada, formando um método equilibrado - o período mais longo (<200) é usado para identificar a direção da tendência e o período mais curto (<150) é usado para uma proteção de lucro mais sensível, alcançando o duplo objetivo de capturar a tendência e bloquear os lucros.
Sistema de negociação totalmente automatizadoA estratégia tem regras de entrada e saída claras, pode ser executada de forma totalmente automatizada, reduz a interferência emocional humana e aumenta a disciplina de negociação. Os sinais visuais nos gráficos também ajudam a tomar decisões estratégicas.
Funções de feedback flexíveis: A gama de datas configuráveis permite que os comerciantes testem estratégias para períodos históricos específicos, ajudando a analisar o desempenho da estratégia em diferentes ambientes de mercado e a otimizar a configuração de parâmetros.
A lógica é clara.A lógica central da estratégia é simples e direta, fácil de entender e modificar, para que os comerciantes possam personalizar e expandir de acordo com suas próprias necessidades, e é adequada para todos os níveis de comerciantes.
Tendência de acompanhamento de vantagensComo uma estratégia de acompanhamento de tendências, ele pode obter maiores ganhos em mercados de forte tendência, especialmente em um ambiente de mercado de tendência unidirecional contínua.
Mercado intermédio fracoComo todas as estratégias de acompanhamento de tendências, pode ter um desempenho fraco em mercados de liquidação horizontal ou de forte volatilidade, sendo propenso a falsos sinais frequentes e a negociações perdedoras.
Falta de mecanismos de contençãoA estratégia atual não tem um mecanismo de parada de perda integrado, o que pode levar a um grande recuo quando a tendência se reverte, mas ainda não desencadeou as condições de parada. Na aplicação prática, deve-se considerar a adição de regras de parada de perda apropriadas para limitar a perda máxima de uma única transação.
Limites de parâmetros fixosOs períodos de HMA (<200 e 150) são fixos e podem não ser adequados para todos os mercados ou prazos de tempo. Diferentes variedades de negociação e períodos de tempo podem necessitar de diferentes configurações de parâmetros para obter os melhores resultados.
Sair prematuramente de uma forte tendênciaEm uma forte tendência, um mecanismo de parada baseado no HMA 150 pode levar a uma saída prematura de uma negociação lucrativa, perdendo parte do lucro. Esta é uma contradição inerente entre a abordagem de parada dinâmica e a continuidade da tendência.
Falta de gestão de posiçõesA estratégia não inclui ajustamento de tamanho de posição ou função de gerenciamento de risco, e todas as transações usam a mesma proporção de capital, o que pode levar a uma exposição excessiva ao risco em alguns casos.
Dependência de um único indicador: A estratégia depende apenas do indicador HMA, sem usar outros indicadores técnicos ou filtros para confirmar o sinal, o que pode aumentar o risco de falso sinal.
Adesão ao mecanismo de impedimentoImplementação de regras de stop loss dinâmicas ou fixas, como stop loss baseadas em ATR, stop loss porcentual ou stop loss baseado em níveis de suporte/resistência, para limitar o risco máximo de perda em uma única transação. Isso é crucial para proteger a segurança dos fundos, especialmente em caso de uma reversão súbita da tendência.
Desenho de parâmetros adaptativosAjustar o ciclo de HMA com base na volatilidade do mercado ou outras características do mercado, para que a estratégia possa se adaptar a diferentes circunstâncias do mercado. Por exemplo, usar um ciclo mais longo quando há alta volatilidade e um ciclo mais curto quando há baixa volatilidade.
Adição de filtros de mercado: Implementar mecanismos de detecção de mercados intercalares ou de tendência, evitar negociações ou ajustar parâmetros de estratégia em mercados intercalares. Indicadores como ADX, largura de banda de Brin podem ser usados para avaliar o estado do mercado.
Análise de volume de transação integradaA adição de indicadores de volume de negociação para confirmar a força da tendência, executando sinais apenas quando o volume de negociação é apoiado, reduzindo a perda de negociação causada por falsas rupturas.
Realização de gestão de posições inteligenteAjustar o tamanho da posição com base na volatilidade, tamanho da conta ou parâmetros de risco para garantir o equilíbrio de risco e o crescimento estável do capital a longo prazo. Por exemplo, implementar o cálculo do tamanho da posição com base no ATR ou o método de porcentagem de risco fixo.
Análise de Multi-Framas de TempoAumento da análise de tendências em quadros de tempo mais elevados, executando transações somente quando as tendências dos quadros de tempo mais elevados estão alinhadas, aumentando a qualidade do sinal e a taxa de sucesso.
Realização de stop loss: O tracking stop loss substitui o nível de parada fixo, permitindo que os lucros continuem a crescer enquanto protege os lucros, especialmente em tendências fortes. O tracking stop loss pode ser realizado com base no indicador HMA, ATR ou percentual de retração.
A estratégia de negociação de duplo período Hull Moving Average Trend Tracking e Dynamic Stop Quantitization oferece um método de acompanhamento de tendências intuitivo e eficaz, combinando mecanismos de parada dinâmica. Utilizando as características de baixa latência das médias móveis de Hull de dois períodos diferentes, a estratégia equilibra entre a captura de tendências e a proteção de lucros. Os principais benefícios da estratégia incluem a geração de sinais claros, a redução do atraso de sinais e o período de retorno personalizável, tornando-a uma ferramenta prática para quem segue tendências.
No entanto, a estratégia também apresenta algumas limitações, incluindo o fraco desempenho nos mercados de intervalos, a falta de mecanismos de parada e parâmetros fixos. A estratégia pode se tornar um sistema de negociação mais robusto para vários tipos de mercado, através da implementação de medidas de otimização recomendadas, como a adição de regras de parada, ajustes de parâmetros adaptáveis, filtragem de ambiente de mercado e gerenciamento inteligente de posições.
Em última análise, esta estratégia de dois ciclos baseada na média móvel de Hull fornece uma base sólida para o comerciante quantitativo, que pode ser personalizada e ampliada de acordo com as preferências de risco pessoais e os objetivos de negociação. Na aplicação prática, os comerciantes devem sempre ter em mente a importância da gestão de risco e fazer um bom teste de retorno e verificação de transações em simulação antes de negociar no mercado.
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
//@strategy HMA 200/150 Trading Strategy
//@description A trend-following strategy using HMA 200 for entry signals and HMA 150 for take profit signals. Buys when price closes above HMA 200, sells when price closes below HMA 200. Take profit for buys when price closes below HMA 150, and for sells when price closes above HMA 150. Includes date range inputs for backtesting.
//@author [TrendBlazeX]
strategy("HMA 200/150 Trading Strategy", overlay=true, margin_long=100, margin_short=100)
// Input for backtest period
var start_year = input.int(2023, "Start Year", minval=1900, maxval=2100, group="Backtest Period")
var start_month = input.int(1, "Start Month", minval=1, maxval=12, group="Backtest Period")
var start_day = input.int(1, "Start Day", minval=1, maxval=31, group="Backtest Period")
var end_year = input.int(2025, "End Year", minval=1900, maxval=2100, group="Backtest Period")
var end_month = input.int(12, "End Month", minval=1, maxval=12, group="Backtest Period")
var end_day = input.int(31, "End Day", minval=1, maxval=31, group="Backtest Period")
// Convert dates to timestamps
start_timestamp = timestamp(start_year, start_month, start_day, 0, 0)
end_timestamp = timestamp(end_year, end_month, end_day, 23, 59)
// Check if current bar is within the date range
in_date_range = time >= start_timestamp and time <= end_timestamp
// Calculate HMAs
hma200 = ta.hma(close, 200)
hma150 = ta.hma(close, 150)
// Define conditions for buy and sell signals
buySignal = ta.crossover(close, hma200) and in_date_range
sellSignal = ta.crossunder(close, hma200) and in_date_range
// Define take profit conditions
buyTakeProfit = ta.crossunder(close, hma150) and in_date_range
sellTakeProfit = ta.crossover(close, hma150) and in_date_range
// Strategy entry and exit
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
if (buyTakeProfit)
strategy.close("Buy", comment="TP Buy")
if (sellTakeProfit)
strategy.close("Sell", comment="TP Sell")
// Plot HMAs on chart
plot(hma200, color=color.blue, title="HMA 200", linewidth=2)
plot(hma150, color=color.orange, title="HMA 150", linewidth=2)
// Plot signals on chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(buyTakeProfit, title="Buy TP", location=location.abovebar, color=color.yellow, style=shape.diamond, size=size.tiny)
plotshape(sellTakeProfit, title="Sell TP", location=location.belowbar, color=color.yellow, style=shape.diamond, size=size.tiny)