Estratégias de rompimento de tendências


Data de criação: 2024-03-22 14:48:37 última modificação: 2024-03-22 14:48:37
cópia: 1 Cliques: 640
1
focar em
1617
Seguidores

Estratégias de rompimento de tendências

Visão geral

Esta é uma estratégia de negociação quantitativa que usa o indicador ATR e o preço de fechamento para capturar uma ruptura de tendência. A estratégia determina a direção da tendência através do cálculo dinâmico de linhas de tendência ascendentes e descendentes, gerando um sinal de negociação quando o preço de fechamento quebra a linha de tendência. A estratégia configura um stop loss e um preço de alvo ao mesmo tempo e pode fazer um stop loss móvel de acordo com a volatilidade.

Princípio da estratégia

  1. Calcule o sinal ATR: atr_signal = atr(atr_period)
  2. Calcule a linha de tendência ascendente e descendente:
    • Linha de tendência inferior: lower_trend = low - atr_mult*atr_signal
    • Linha de tendência superior: upper_trend = high + atr_mult*atr_signal
  3. Ajuste dinâmico da linha de tendência, mantendo-se inalterado se a linha de tendência for quebrada, ou seja, atualizado para o valor mais recente
  4. A linha de tendência é colorida de acordo com a posição do preço de fechamento em relação à linha de tendência, para determinar a direção da tendência
  5. Geração de sinais de transação:
    • Faça mais sinais: não há posições atuais e o preço de fechamento ultrapassou a linha de tendência
    • Sinais de fechamento: não há posições atuais e o preço de fechamento ultrapassou a linha de tendência
  6. Estabeleça um stop loss e um preço de alvo:
    • Parar: Fator de amplitude do ATR no momento da última transação
    • Preço alvo: preço de transação mais recente ± margem de parada * taxa de ganho / perdarr
  7. Paragem móvel:
    • Paradas múltiplas: linha de tendência superior
    • Paragem em branco: linha de tendência mais baixa

Análise de vantagens

  1. Linhas de tendência de ajuste dinâmico com base na volatilidade, adaptadas a diferentes condições de mercado
  2. As linhas de tendência são marcadas por cores orientadas para facilitar a identificação de tendências
  3. Usar o ATR como uma medida de volatilidade para definir um stop loss razoável e um preço-alvo
  4. Função de parada móvel para reduzir o máximo possível a retirada, garantindo lucros
  5. Alta parametrização, adaptação a diferentes variedades e ciclos

Análise de Riscos

  1. A estratégia de ruptura de tendência é propensa a produzir sinais excessivos em mercados de turbulência, resultando em prejuízos
  2. A escolha inadequada dos parâmetros ATR pode causar linhas de tendência demasiado sensíveis ou lentas, afetando a qualidade do sinal
  3. A relação de ganhos e perdas fixa pode não se adaptar às diferentes características do mercado
  4. A perda móvel pode ser um corte de tendência.

Solução:

  1. Introdução de filtros de tendência ou indicadores de choque para auxiliar no julgamento e evitar perdas em mercados de choque
  2. Optimizar os parâmetros ATR de acordo com a variedade e as características do ciclo
  3. Optimizar a relação de perdas e prejuízos e mover a lógica de stop loss para aumentar a relação de risco e receita da estratégia
  4. Combinação de métodos de identificação de tendências para melhorar o stop loss móvel e capturar mais lucros de tendências

Direção de otimização

  1. Combinação de múltiplos períodos de tempo para identificar tendências com períodos grandes e sinais de gatilho com períodos pequenos
  2. Adição de verificação de indicadores de quantidade antes da ruptura da linha de tendência, aumentando a eficácia do sinal
  3. Optimizar a gestão de posições e aumentar a operação de banda
  4. Optimizar parâmetros de stop loss para a relação de ganhos e perdas
  5. Melhorar a lógica de stop loss móvel para reduzir o stop loss prematuro em trends

A multiplicação dos períodos de tempo ajuda a filtrar o ruído e a manter a tendência mais estável. A verificação dos indicadores de quantidade antes da ruptura elimina os sinais falsos. A otimização do gerenciamento de posições aumenta a eficiência do uso de fundos. A otimização dos parâmetros de stop loss e de stop loss melhora a relação de risco de receita da estratégia.

Resumir

A estratégia usa o ATR como medida de volatilidade, ajusta dinamicamente a posição da linha de tendência, capta a tendência de ruptura. Define de forma razoável os objetivos de parada e lucro, e usa o stop loss móvel para bloquear os lucros. Os parâmetros são ajustáveis e adaptáveis. Mas a estratégia de ruptura de tendência também é vulnerável aos efeitos da situação de choque e precisa de mais otimização e melhoria.

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

//@version=4
strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD")
//Developer: Trading Strategy Guides
//Creator: Trading Strategy Guides
//Date: 3/18/2024
//Description: A trend trading system strategy 

atr_period = input(title="ATR Period", defval=120, type=input.integer)
atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer)
dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer)
factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float)
rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer)
trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer)
col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool)

atr_signal = atr(atr_period)

lower_trend = low - atr_mult*atr_signal
upper_trend = high + atr_mult*atr_signal

upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend
lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend

upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na
lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green

trend_line = lower_trend

plot(lower_trend, color=lower_color, title="Lower Trend Color")
plot(upper_trend, color=upper_color, title="Upper Trend Color")

is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0)
is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0)

if is_buy
    strategy.entry("Enter Long", strategy.long)
else if is_sell
    strategy.entry("Enter Short", strategy.short)