O recuo da tendência pode ajustar a estratégia de entrada dinâmica de risco

SMA EMA 移动平均线交叉 回调策略 风险管理 止损止盈 突破点保护 趋势确认
Data de criação: 2025-03-26 13:29:16 última modificação: 2025-03-26 13:29:16
cópia: 0 Cliques: 276
2
focar em
319
Seguidores

O recuo da tendência pode ajustar a estratégia de entrada dinâmica de risco O recuo da tendência pode ajustar a estratégia de entrada dinâmica de risco

Visão geral

A estratégia de entrada dinâmica de risco de reversão de tendência é projetada para os comerciantes de balanço que desejam estabelecer posições múltiplas em reversões após mudanças de tendência de curto prazo e, ao mesmo tempo, entrar em ações de balanço imediatamente quando as condições do mercado favorecem a descida. A estratégia combina a confirmação de tendências de cruzamento SMA, pontos de entrada de reversão de porcentagem fixa e parâmetros de gerenciamento de risco ajustáveis para a melhor execução de negociação.

O núcleo da estratégia é o uso de uma média móvel simples (SMA) cruzada de 10 e 25 períodos para confirmar a direção da tendência, e combinada com uma média móvel de 150 períodos (EMA) como uma condição de filtragem adicional para negociações a céu aberto. As negociações de múltiplos não são inseridas imediatamente após a SMA cruzada, mas sim aguardam a reversão do preço para a porcentagem especificada para entrar, o que otimiza o preço de entrada e aumenta o risco-retorno.

Princípio da estratégia

A estratégia funciona de acordo com algumas partes-chave:

  1. Mecanismo de confirmação de tendências:

    • O sistema identifica um sinal de mudança de tendência otimista quando o SMA de 10 ciclos atravessa o SMA de 25 ciclos
    • Quando o SMA de 10 ciclos atravessa o SMA de 25 ciclos, o sistema identifica um sinal de mudança de tendência para baixo
    • A negociação a céu aberto só é executada quando o preço está abaixo da EMA de 150 ciclos, garantindo a consistência com a tendência mais ampla
  2. Mecanismo de reencaminhamento multi-cabeça:

    • Em vez de entrar imediatamente quando o sinal de cruzamento SMA aparece, você espera que o preço se reoriente e entra em uma posição mais alta
    • Ponto de entrada é definido como a posição de um retorno fixo de porcentagem (default 1%) a partir de um pico recente
    • Sistema de cálculo dinâmico e mapeamento de posições de apoio para visualizar a área de entrada de retorno
    • Trigger de entrada múltipla quando o preço sobe para cima e ultrapassa o nível de correção
  3. Regras de entrada de cabeça vazia:

    • Se você atravessar o SMA de 10 ciclos abaixo do SMA de 25 ciclos e o preço estiver abaixo do EMA de 150 ciclos, entre imediatamente em cima
  4. Gestão de Riscos e Estratégias de Saída:

    • Stop Stop (TP) - Ponto Ajustável Objetivo de lucro (Default: 1000 pontos)
    • Stop Loss (SL) - Nível de Stop Loss ajustável (Default: 250 pontos)
    • Ponto de reserva ((BE) - quando o preço se move para a direção favorável, o ponto de parada é movido para o ponto de reserva
    • Condição de saída adicional de múltiplos títulos: se você tiver uma posição de múltiplos títulos e atravessar o SMA de 25 ciclos com o SMA de 10 ciclos e o preço estiver abaixo do EMA de 150 ciclos, force a saída de múltiplos títulos para evitar perdas causadas por uma reversão de tendência

A estratégia usa uma variável de permanência para rastrear os sinais de retorno, garantindo a entrada no momento certo. Quando a posição está vazia, o sistema reinicia todos os sinais e níveis, preparando-se para o próximo sinal de negociação.

Vantagens estratégicas

Ao analisar o código em profundidade, a estratégia mostra as seguintes vantagens significativas:

  1. Otimização do tempo de entrada:

    • A estratégia obtém um melhor preço de entrada ao esperar o retorno do sinal de entrada em vez de entrar imediatamente quando o sinal de cruzamento aparece.
    • Este método reduz o risco inicial e aumenta o potencial risco-retorno.
    • Percentagem de retorno ajustável para diferentes cenários de mercado e preferências de risco dos traders
  2. Gerenciamento de riscos completo:

    • Parâmetros precisos de stop loss e stop loss garantem um controle de risco claro para cada transação
    • O mecanismo de garantia protege as transações lucrativas e reduz a margem de retirada geral
    • Todos os parâmetros de risco podem ser ajustados para adaptar-se a diferentes volatilidades do mercado
  3. Filtragem de tendências alinhadas:

    • Usar EMA150 como condição de filtragem adicional para garantir que as transações de curto prazo estejam de acordo com as tendências de longo prazo
    • Regras de saida adicionais quando a tendência se inverte protegem os fundos contra perdas significativas
  4. Comentários visuais:

    • O sistema traça níveis de retorno e sinais em gráficos para fornecer orientação visual clara
    • Os pontos de execução e de saída das transações são claramente marcados para facilitar o feedback e a melhoria da estratégia
  5. Altamente adaptável:

    • Estratégias aplicadas a várias categorias de ativos, incluindo ações, divisas e índices
    • Parâmetros flexíveis para diferentes cenários de mercado e estilos de negociação

Risco estratégico

Apesar das vantagens desta estratégia, existem os seguintes riscos a serem observados:

  1. Risco de mercado rápido:

    • Em mercados altamente voláteis, os preços podem saltar os pontos de entrada ou de parada planejados
    • Eventos de mercado extremos podem aumentar os pontos de deslizamento e afetar os preços de execução reais
    • Solução: ajustar a percentagem de retorno e os parâmetros de risco durante a alta volatilidade ou considerar a suspensão temporária do comércio
  2. Performance do mercado em turbulência:

    • A estratégia de dependência de tendência confirma que pode produzir sinais errados em mercados de baixa e baixa volatilidade
    • Frequentes cruzamentos SMA podem levar a perdas contínuas
    • Solução: adicionar filtros de intensidade de tendência adicionais, como o indicador ADX, ou suspender a negociação em mercados turbulentos
  3. Limites da gestão de risco de pontos fixos:

    • O uso de pontos fixos de stop-loss e stop-loss pode não ser adequado para diferentes tipos de volatilidade do mercado
    • Quando a volatilidade se expande, pode causar parada prematura ou um alvo de parada muito distante
    • Solução: Considerar os níveis de stop loss e stop loss dinâmicos baseados no ATR
  4. Excessiva dependência de indicadores técnicos:

    • A estratégia baseia-se apenas em indicadores técnicos, ignorando fatores fundamentais e sentimentos de mercado.
    • SMAs e EMAs são indicadores atrasados e podem não responder em tempo hábil a uma reviravolta no mercado
    • Solução: Combinação com outros indicadores de liderança ou de sentimento de mercado, como o RSI ou o índice de fluxo de capital
  5. Riscos de otimização de parâmetros:

    • Parâmetros de otimização excessiva podem levar a curva de ajuste, com um mau desempenho no mercado futuro
    • Solução: usar dados históricos longos o suficiente para testar e verificar a solidez da estratégia em diferentes condições de mercado

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

De acordo com a análise do código, as seguintes são algumas das principais direções em que a estratégia pode ser otimizada:

  1. Gestão de Riscos Dinâmicos:

    • Convertendo pontos de stop loss e stop loss fixos para níveis dinâmicos baseados em ATR
    • Isso permite que a gestão de risco se adapte à atual volatilidade do mercado, estabelecendo um menor stop loss durante a baixa volatilidade e um maior stop loss durante a alta volatilidade.
    • Método de implementação:stopDistance = input.float(2.0) * ta.atr(14)Método de cálculo
  2. Filtragem de intensidade de tendência:

    • Adicionar ADX (indicador de direção média) ou indicadores similares para medir a intensidade da tendência
    • Execução de negociação somente quando a tendência é forte o suficiente (por exemplo, ADX > 25) para evitar falsos sinais em mercados de turbulência
    • Isso reduzirá significativamente os sinais errados e aumentará a taxa de vitórias.
  3. Análise de Multi-Framas de Tempo:

    • Integração de informações de tendências de quadros temporais mais elevados para garantir que as transações estejam em consonância com as tendências maiores
    • Por exemplo, só é possível negociar quando a linha do dia e o gráfico de 4 horas mostram a mesma direção de tendência
    • Esta abordagem pode aumentar a taxa de sucesso das transações e reduzir o risco de transações adversas.
  4. Reconhecimento de retorno inteligente:

    • Métodos mais complexos de identificação de retorno em vez de simples porcentagens fixas
    • Considere o uso de níveis de retorno de Fibonacci ou pontos de resistência de suporte crítico
    • Isso proporcionaria pontos de entrada mais significativos e melhor alinhados com a estrutura do mercado.
  5. Confirmação de transação:

    • Adição de análise de volume de transação como parte do sinal de confirmação
    • Buscar pontos de entrada de maior qualidade em retrabalhos de baixo volume e rupturas de alto volume
    • A confirmação de volume de transações pode melhorar significativamente a qualidade do sinal e reduzir o ruído das transações.
  6. Parâmetros de adaptação:

    • Desenvolver um mecanismo para ajustar os parâmetros da estratégia de acordo com a evolução recente do mercado
    • Por exemplo, aumentar automaticamente a percentagem de retorno quando a volatilidade aumenta
    • Essa capacidade de adaptação permite que a estratégia se mantenha robusta em diferentes cenários de mercado.

Resumir

A estratégia de entrada dinâmica é um sistema de negociação bem projetado, que combina a identificação de tendências, a otimização da entrada e o gerenciamento completo do risco. A estratégia obtém melhores preços de entrada e retornos de risco do que o simples sistema de cruzamento SMA, ao esperar a correção de preços e entrar novamente.

A vantagem central da estratégia é a sua flexibilidade e adaptabilidade, permitindo que os comerciantes ajustem os parâmetros de acordo com as preferências de risco pessoais e as condições do mercado. Ao mesmo tempo, a função de gestão de risco integrada (incluindo stop loss, stop loss e ponto de garantia) oferece proteção completa do capital.

No entanto, a estratégia também apresenta algumas limitações, incluindo a performance em mercados turbulentos e a gestão de risco de pontos fixos. A robustez e o desempenho geral da estratégia podem ser significativamente melhorados pela implementação de otimização de recomendações, como gerenciamento de risco dinâmico, filtragem de intensidade de tendência e confirmação de volume de negociação.

Esta é uma estratégia básica ideal para os comerciantes de balanço, que pode ser ainda mais personalizada de acordo com o estilo de negociação e objetivos individuais. Com a configuração razoável de parâmetros e o ajuste de monitoramento contínuo, a estratégia tem o potencial de fornecer resultados de negociação estáveis em vários ambientes de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-08-01 00:00:00
end: 2025-03-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("BTCUSD with adjustable sl,tp", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=10, 
     calc_on_every_tick=true)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ USER INPUTS
// ─────────────────────────────────────────────────────────────────────────────
longSignalStyle  = input.string("Label Up", title="Long Signal Style", options=["Label Up", "Arrow Up", "Cross"])
shortSignalStyle = input.string("Label Down", title="Short Signal Style", options=["Label Down", "Arrow Down", "Cross"])

// Adjustable exit parameters (in points)
tpDistance    = input.int(1000, "Take Profit Distance (points)", minval=1)
slDistance    = input.int(250, "Stop Loss Distance (points)",   minval=1)
beTrigger     = input.int(500, "Break-Even Trigger Distance (points)", minval=1)

// Adjustable retracement percentage for long pullback entry (e.g. 0.01 = 1%)
retracementPct = input.float(0.01, "Retracement Percentage (e.g. 0.01 for 1%)", step=0.001)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ INDICATORS: SMA & EMA
// ─────────────────────────────────────────────────────────────────────────────
sma10  = ta.sma(close, 10)
sma25  = ta.sma(close, 25)
ema150 = ta.ema(close, 150)

plot(sma10,  color=color.blue,   title="SMA 10")
plot(sma25,  color=color.red,    title="SMA 25")
plot(ema150, color=color.orange, title="EMA 150")

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ ENTRY CONDITIONS
// ─────────────────────────────────────────────────────────────────────────────
longCondition  = ta.crossover(sma10, sma25)
shortCondition = ta.crossunder(sma10, sma25)
shortValid     = close < ema150  // Only take shorts if price is below EMA150

// Plot immediate entry signals (for visual reference)
plotshape(longCondition and (strategy.position_size == 0), title="Long Signal", 
     style=(longSignalStyle == "Label Up" ? shape.labelup : (longSignalStyle == "Arrow Up" ? shape.triangleup : shape.cross)), 
     location=location.belowbar, color=color.green, text="Long", size=size.small)
plotshape(shortCondition and shortValid and (strategy.position_size == 0), title="Short Signal", 
     style=(shortSignalStyle == "Label Down" ? shape.labeldown : (shortSignalStyle == "Arrow Down" ? shape.triangledown : shape.cross)), 
     location=location.abovebar, color=color.red, text="Short", size=size.small)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ LONG PULLBACK ENTRY USING FIXED PERCENTAGE RETRACEMENT
// ─────────────────────────────────────────────────────────────────────────────
// We use persistent variables to track the pullback signal.
var bool longSignalActive = false
var float pullHigh = na        // highest high since long signal activation
var float retraceLevel = na    // level = pullHigh * (1 - retracementPct)

// Only consider new entries when no position is open.
if strategy.position_size == 0
    // When a long crossover occurs, activate the signal and initialize pullHigh.
    if longCondition
        longSignalActive := true
        pullHigh := high

    // If signal active, update pullHigh and compute retracement level.
    if longSignalActive
        pullHigh := math.max(pullHigh, high)
        retraceLevel := pullHigh * (1 - retracementPct)

        // When price bounces upward and crosses above the retracement level, enter long
        if ta.crossover(close, retraceLevel)
            strategy.entry("Long", strategy.long)
            longSignalActive := false

    // Short entries: enter immediately if conditions are met
    if shortCondition and shortValid
        strategy.entry("Short", strategy.short)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ EXIT CONDITIONS WITH ADJUSTABLE TP, SL & BE
// ─────────────────────────────────────────────────────────────────────────────
var bool beLong  = false
var bool beShort = false

// LONG EXIT LOGIC
if strategy.position_size > 0 and strategy.position_avg_price > 0
    longEntry = strategy.position_avg_price

    // Additional exit: if SMA(10) crosses below SMA(25) while price < EMA150, exit long
    if ta.crossunder(sma10, sma25) and close < ema150
        label.new(bar_index, low, "SMA Exit", style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment="SMA Cross Exit")

    // Break-even trigger if price moves in favor by beTrigger points
    if close >= longEntry + beTrigger
        beLong := true

    effectiveLongStop = beLong ? longEntry : (longEntry - slDistance)
    if close <= effectiveLongStop
        label.new(bar_index, low, (beLong ? "BE Hit" : "SL Hit"), style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment=(beLong ? "BE Hit" : "SL Hit"))

    if close >= longEntry + tpDistance
        label.new(bar_index, high, "TP Hit", style=label.style_label_up, color=color.green, textcolor=color.white)
        strategy.close("Long", comment="TP Hit")

// SHORT EXIT LOGIC
if strategy.position_size < 0 and strategy.position_avg_price > 0
    shortEntry = strategy.position_avg_price

    // Basic stop logic
    if close >= shortEntry + slDistance
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

    // Take profit logic
    if close <= shortEntry - tpDistance
        label.new(bar_index, low, "TP Hit", style=label.style_label_down, color=color.green, textcolor=color.white)
        strategy.close("Short", comment="TP Hit")

    // Break-even trigger
    if close <= shortEntry - beTrigger
        beShort := true

    effectiveShortStop = beShort ? shortEntry : (shortEntry + slDistance)
    if close >= effectiveShortStop
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

// Reset BE flags when no position is open
if strategy.position_size == 0
    beLong  := false
    beShort := false
    // Reset the pullback signal
    if not longSignalActive
        pullHigh := na
        retraceLevel := na