Estratégia de negociação de reentrada e rastreamento de tendência dinâmica ATR

ATR SMA MA
Data de criação: 2025-02-18 15:11:28 última modificação: 2025-02-18 15:11:28
cópia: 1 Cliques: 362
1
focar em
1617
Seguidores

Estratégia de negociação de reentrada e rastreamento de tendência dinâmica ATR

Visão geral

Trata-se de uma estratégia de acompanhamento de tendências baseada em ATR, que combina a média móvel e o indicador ATR para determinar os pontos de entrada e saída. A característica central da estratégia é a trajetória ascendente e descendente da média móvel através da ATR, com entrada adicional quando o preço se desloca, e com um ponto de parada e parada baseado no múltiplo ATR.

Princípio da estratégia

A estratégia baseia-se nos seguintes elementos-chave:

  1. Utilizando as médias móveis ajustadas do ATR como base de tendências, formando um trajeto ascendente e descendente dinâmico
  2. Quando o preço entra em alta, um sinal de multiplicação é gerado, e o preço de entrada é o preço de fechamento atual.
  3. O Stop Loss está definido como a distância ATR de 2x abaixo do preço de entrada
  4. A parada é definida como acima do preço de entrada ((5 + múltiplos personalizados) × distância ATR
  5. A estratégia reinicia a entrada automaticamente se o preço voltar ao preço de entrada original após o disparo de um stop loss ou de um stop.
  6. Otimizar a exibição de gráficos usando a limitação de exibição de até 30 linhas K

Vantagens estratégicas

  1. Adaptabilidade dinâmica: as médias móveis ajustadas pelo ATR são capazes de se adaptar às variações de volatilidade do mercado
  2. Ciência do gerenciamento de risco: Stop loss e stop loss baseados em configurações dinâmicas do ATR, compatíveis com as características de flutuação do mercado
  3. Inovação no mecanismo de reentrada: permite a reentrada quando o preço retorna a uma posição vantajosa, aumentando as oportunidades de lucro
  4. Excelente visualização: a estratégia fornece uma visualização clara das linhas de entrada, parada e parada para facilitar o monitoramento das transações
  5. Parâmetros flexíveis: pode-se ajustar o ciclo de julgamento de tendência e o múltiplo de parada com os parâmetros de entrada

Risco estratégico

  1. Risco de reversão de tendência: pode ser frequente a ação de stop loss em mercados turbulentos
  2. Risco de reentrada: retorno de preços para o ponto de entrada e reestruturação de estoques podem enfrentar um bloqueio contínuo
  3. Risco de deslizamento: os preços reais de transação podem estar em desvio dos preços de sinalização em períodos de alta volatilidade
  4. Sensibilidade de parâmetros: os parâmetros ótimos podem variar muito em diferentes condições de mercado
  5. Carga de computação: requer computação em tempo real de vários indicadores técnicos, podendo aumentar a carga do sistema

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

  1. Introdução de filtros de ambiente de mercado: pode ser adicionado um filtro de taxa de flutuação, ajustar os parâmetros da estratégia ou suspender a negociação durante a alta volatilidade
  2. Otimização da lógica de reentrada: consideração de restrições mais rigorosas na reentrada, como indicadores de confirmação de tendência
  3. Mecanismos de suspensão aprimorados: função de suspensão móvel para proteger mais lucros quando a tendência continua
  4. Aumento do filtro de tempo: pode ser adicionado um limite de período de negociação, evitando períodos de baixa liquidez
  5. Otimização da eficiência computacional: pode-se aumentar a eficiência de execução da estratégia, reduzindo cálculos e gráficos desnecessários

Resumir

Trata-se de uma estratégia de acompanhamento de tendências concebida de forma razoável e com lógica clara, que oferece boa adaptabilidade ao mercado por meio do ajuste dinâmico do ATR. O mecanismo de reentrada da estratégia é um ponto inovador, capaz de oferecer oportunidades de lucro adicional em boas condições de mercado. Embora existam alguns pontos de risco a serem considerados, a estabilidade e a rentabilidade da estratégia podem ser ainda melhoradas com a orientação de otimização sugerida.

Código-fonte da estratégia
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("KON SET By Sai", overlay=true, max_lines_count=40)

// INPUTS
length = input.int(10, "Trend Length")
target_multiplier = input.int(0, "Set Targets") // Target adjustment
max_bars = 30  // Number of bars to display the lines after signal

// VARIABLES
var bool inTrade = false
var float entryPrice = na
var float stopLoss = na
var float targetPrice = na
var int barCount = na  // Counter to track how many bars have passed since signal

// ATR for stop-loss and target calculation
atr_value = ta.sma(ta.atr(200), 200) * 0.8

// Moving averages for trend detection
sma_high = ta.sma(high, length) + atr_value
sma_low = ta.sma(low, length) - atr_value

// Signal conditions for trend changes
signal_up = ta.crossover(close, sma_high)
signal_down = ta.crossunder(close, sma_low)

// Entry conditions
if not inTrade and signal_up
    entryPrice := close
    stopLoss := close - atr_value * 2
    targetPrice := close + atr_value * (5 + target_multiplier)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=stopLoss, limit=targetPrice)
    inTrade := true
    barCount := 0  // Reset bar count when signal occurs

// Exit conditions
if inTrade and (close <= stopLoss or close >= targetPrice)
    inTrade := false
    entryPrice := na
    stopLoss := na
    targetPrice := na
    barCount := na  // Reset bar count on exit

// Re-entry logic
if not inTrade and close == entryPrice
    entryPrice := close
    stopLoss := close - atr_value * 2
    targetPrice := close + atr_value * (5 + target_multiplier)
    strategy.entry("Re-Long", strategy.long)
    strategy.exit("Re-Exit Long", "Re-Long", stop=stopLoss, limit=targetPrice)
    inTrade := true
    barCount := 0  // Reset bar count when re-entry happens

// Count bars since the signal appeared (max 30 bars)
if inTrade and barCount < max_bars
    barCount := barCount + 1

// Plotting lines for entry, stop-loss, and targets (Only during active trade and within max_bars)
entry_line = plot(inTrade and barCount <= max_bars ? entryPrice : na, title="Entry Price", color=color.new(color.green, 0), linewidth=1, style=plot.style_cross)
sl_line = plot(inTrade and barCount <= max_bars ? stopLoss : na, title="Stop Loss", color=color.new(color.red, 0), linewidth=1, style=plot.style_cross)
target_line = plot(inTrade and barCount <= max_bars ? targetPrice : na, title="Target Price", color=color.new(color.blue, 0), linewidth=1, style=plot.style_cross)

// Background color between entry and target/stop-loss (Only when inTrade and within max_bars)
fill(entry_line, target_line, color=color.new(color.green, 90), title="Target Zone")
fill(entry_line, sl_line, color=color.new(color.red, 90), title="Stop-Loss Zone")

// Label updates (reduce overlap and clutter)
if bar_index % 50 == 0 and inTrade and barCount <= max_bars  // Adjust label frequency for performance
    label.new(bar_index + 1, entryPrice, text="Entry: " + str.tostring(entryPrice, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
    label.new(bar_index + 1, stopLoss, text="Stop Loss: " + str.tostring(stopLoss, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index + 1, targetPrice, text="Target: " + str.tostring(targetPrice, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)