O recurso está a ser carregado... Carregamento...

Sistema de tendência de ruptura histórica com filtro de média móvel (HBTS)

Autora:ChaoZhang, Data: 2024-12-05 14:40:05
Tags:MASMAEMAWMAVWMA

img

Resumo

Esta estratégia é um sistema de seguimento de tendências baseado em breakouts de preços históricos e filtros de média móvel. Ele combina sinais de breakout de preços de vários períodos com médias móveis para identificar tendências de mercado, usando regras de entrada e saída rígidas para capturar movimentos de mercado de médio a longo prazo. A estratégia usa breakouts de preços de 55 dias para sinais longos, breakouts de preços de 20 dias para saídas e incorpora uma média móvel de 200 dias como um filtro de tendência para reduzir efetivamente os riscos de falha de breakout.

Princípios de estratégia

A lógica básica é baseada nas variações de preços e na tendência seguinte.

  1. Sinal de entrada: o sistema gera um sinal longo quando o preço atinge uma alta de 55 dias e fecha acima da média móvel de 200 dias
  2. Sinal de saída: o sistema fecha as posições quando o preço ultrapassa o mínimo de 20 dias
  3. Filtro de tendência: utiliza a média móvel de 200 dias como principal indicador de tendência, inserindo apenas longs acima da média
  4. Gestão de posições: utiliza 10% do capital da conta para cada transacção
  5. Opções de média móvel: Suporta SMA, EMA, WMA, VWMA, permitindo flexibilidade com base nas características do mercado

Vantagens da estratégia

  1. Lógica clara: A estratégia usa indicadores clássicos de desvio de preços e média móvel, fáceis de entender e executar
  2. Controlo de risco robusto: tem condições de stop-loss claras, gerencia o risco através de filtros de média móvel e controlo de posição
  3. Alta adaptabilidade: pode ser ajustado através de parâmetros para se adequar a diferentes ambientes de mercado
  4. Captura de tendência forte: utiliza vários intervalos de tempo para confirmar a direção da tendência
  5. Alta automação: regras de estratégia claras facilitam a implementação programática

Riscos estratégicos

  1. Risco de mercado irregular: propenso a falhas durante as fases de consolidação
  2. Risco de deslizamento: podem ocorrer deslizamentos significativos em mercados menos líquidos
  3. Risco de reversão da tendência: potencial de grandes saques perto dos principais pontos de virada da tendência
  4. Sensibilidade dos parâmetros: os parâmetros ideais podem variar significativamente em diferentes ambientes de mercado.
  5. Risco de gestão de fundos: em certas situações, o posicionamento em proporção fixa pode ser demasiado arriscado

Orientações de otimização

  1. Confirmação de sinal: pode adicionar o volume de ruptura e outros indicadores auxiliares para filtrar falsos rupturas
  2. O valor da posição em risco deve ser calculado de acordo com o método de classificação da posição em risco.
  3. Gestão de posições: Ajuste dinâmico do tamanho das posições com base na volatilidade do mercado
  4. Análise de quadros de tempo múltiplos: adicionar mais análise de quadros de tempo para melhorar a confiabilidade do sinal
  5. Reconhecimento do ambiente de mercado: adicionar indicadores de força da tendência para avaliar as condições atuais do mercado

Resumo

Este é um sistema estratégico que combina regras clássicas de negociação de tartarugas com ferramentas modernas de análise técnica. Ele capta tendências através de quebras de preços, confirma a direção usando médias móveis e controla o risco com uma gestão razoável de posição. A lógica da estratégia é clara, prática e tem boa escalabilidade. Embora possa ter um desempenho inferior em mercados agitados, através da otimização adequada de parâmetros e controle de riscos, ainda pode alcançar retornos estáveis em mercados de tendência.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Turtle Traders - Andrei", overlay=true, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ====== Inputs ======
// Período para a máxima das compras
lookback_buy = input.int(title="Período para Máxima de Compra", defval=55, minval=1)

// Período para a mínima das vendas
lookback_sell = input.int(title="Período para Mínima de Venda", defval=20, minval=1)

// Período da Média Móvel
ma_length = input.int(title="Período da Média Móvel", defval=200, minval=1)

// Tipo de Média Móvel
ma_type = input.string(title="Tipo de Média Móvel", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])

// ====== Cálculos ======
// Cálculo da Média Móvel baseada no tipo selecionado
ma = switch ma_type
    "SMA" => ta.sma(close, ma_length)
    "EMA" => ta.ema(close, ma_length)
    "WMA" => ta.wma(close, ma_length)
    "VWMA" => ta.vwma(close, ma_length)

// Cálculo da máxima dos últimos 'lookback_buy' candles
highest_buy = ta.highest(high, lookback_buy)

// Cálculo da mínima dos últimos 'lookback_sell' candles
lowest_sell = ta.lowest(low, lookback_sell)

// ====== Condições de Negociação ======
// Condição de entrada: fechamento acima da máxima dos últimos 'lookback_buy' candles E acima da MA
longCondition = (high == highest_buy) and (close > ma)

if (longCondition)
    strategy.entry("Comprar", strategy.long)

// Condição de saída: fechamento abaixo da mínima dos últimos 'lookback_sell' candles
exitCondition = (low == lowest_sell)

if (exitCondition)
    strategy.close("Comprar")

// ====== Plotagens ======
// Plotar a máxima de 'lookback_buy' candles
plot(highest_buy, color=color.green, title="Máxima", linewidth=2)

// Plotar a mínima de 'lookback_sell' candles
plot(lowest_sell, color=color.red, title="Mínima", linewidth=2)

// Plotar a Média Móvel
plot(ma, color=color.blue, title="Média Móvel", linewidth=2)

// ====== Sinais Visuais ======
// Sinal de entrada
plotshape(series=longCondition, location=location.belowbar, color=color.green, 
          style=shape.labelup, title="Sinal de Compra", text="")

// Sinal de saída
plotshape(series=exitCondition, location=location.abovebar, color=color.red, 
          style=shape.labeldown, title="Sinal de Venda", text="")


Relacionados

Mais.