Sistema de negociação de tendência híbrida de rompimento de preço histórico (HBTS)

MA SMA EMA WMA VWMA
Data de criação: 2024-12-05 14:40:05 última modificação: 2024-12-05 14:40:05
cópia: 0 Cliques: 431
1
focar em
1617
Seguidores

Sistema de negociação de tendência híbrida de rompimento de preço histórico (HBTS)

Visão geral

A estratégia é um sistema de acompanhamento de tendências baseado em breakouts de preços históricos e filtragem de linhas uniformes. Combina sinais de breakouts de preços de vários períodos e médias móveis para identificar tendências de mercado e capturar movimentos de mercado a médio e longo prazo por meio de regras rigorosas de entrada e saída. A estratégia usa breakouts de preços de 55 dias como sinal de fazer mais, breakouts de preços de 20 dias como sinal de posição de equilíbrio, enquanto a linha de média de 200 dias é introduzida como filtro de tendência, reduzindo efetivamente o risco de breakouts falsos.

Princípio da estratégia

A lógica central da estratégia baseia-se em rupturas de preços e acompanhamento de tendências.

  1. A entrada de sinal: quando o preço alcança uma alta de 55 dias e o preço de fechamento está acima da média de 200 dias, o sistema emite um sinal de multiplicação
  2. Sinais de saída: Quando o preço cai abaixo de uma baixa de 20 dias, o sistema termina a negociação em equilíbrio
  3. Filtragem de tendências: usar a linha média de 200 dias como base para determinar a grande tendência e abrir posições apenas acima da linha média
  4. Gerenciamento de posições: 10% do valor líquido da conta é usado como proporção de capital por transação
  5. Opção de linha de linha: Suporte para quatro modos de linha de linha: SMA, EMA, WMA e VWMA, com opções flexíveis de acordo com diferentes características do mercado

Vantagens estratégicas

  1. A lógica é simples e clara: a estratégia usa os clássicos indicadores de ruptura de preço e de linha média, fáceis de entender e executar
  2. Controle de risco perfeito: configuração de condições de stop loss claras e gerenciamento de risco por meio de filtragem uniforme e controle de posição
  3. Adaptabilidade: adaptação a diferentes cenários de mercado por meio de ajustes de parâmetros
  4. Forte capacidade de captura de tendências: confirmação da direção da tendência através de rupturas de preços em múltiplos períodos de tempo
  5. Alta automatização: regras de estratégia claras para implementação programática

Risco estratégico

  1. Risco de choque de mercado: Falsos sinais de ruptura podem ser gerados durante a liquidação horizontal
  2. Risco de deslizamento: em mercados com pouca liquidez, o deslizamento na ruptura pode ser maior
  3. Risco de reversão de tendência: maior retração pode ocorrer perto do ponto de reversão da tendência
  4. Sensibilidade de parâmetros: os parâmetros ótimos podem variar muito em diferentes cenários de mercado
  5. Risco de gestão de fundos: posições de proporção fixa podem ser arriscadas em alguns casos

Direção de otimização da estratégia

  1. Mecanismo de confirmação de sinais: indicadores auxiliares, como o volume de tráfego, podem ser aumentados para filtrar brechas falsas
  2. Paragem dinâmica: introdução de indicadores de volatilidade, como o ATR, para realizar paragem dinâmica
  3. Optimização da gestão de posições: proporção de posições ajustadas dinamicamente de acordo com a volatilidade do mercado
  4. Análise de múltiplos períodos: adicionar análises de mais períodos de tempo para aumentar a confiabilidade do sinal
  5. Identificação do cenário de mercado: adicionar indicadores de intensidade de tendência para julgar o cenário atual do mercado

Resumir

Este é um sistema de estratégia que combina a lei clássica de negociação do mar e as ferramentas de análise tecnológica moderna. Capturar a tendência através da ruptura do preço, usar o filtro de linha uniforme para confirmar a direção, juntamente com o racional gerenciamento de posição para controlar o risco. A lógica da estratégia é clara, prática e com boa escalabilidade.

Código-fonte da estratégia
/*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="")