Estratégia de negociação de rompimento e retração de preços multifásica

OHLC SLTP PPV PVT MPB
Data de criação: 2025-05-13 11:08:10 última modificação: 2025-05-13 11:08:10
cópia: 1 Cliques: 290
2
focar em
319
Seguidores

Estratégia de negociação de rompimento e retração de preços multifásica Estratégia de negociação de rompimento e retração de preços multifásica

Visão geral

A estratégia de negociação de ruptura e retirada de preços em várias fases é um sistema de negociação baseado na ação dos preços, que identifica padrões de preços específicos e executa uma entrada precisa nos pontos de ruptura. A estratégia é executada monitorando a relação entre o preço de abertura, o preço máximo, o preço mínimo e o preço de encerramento do gráfico, combinado com a análise do diferencial de pontos, para capturar o momento em que a dinâmica do mercado muda.

Princípio da estratégia

O princípio central da estratégia é identificar e aproveitar as oportunidades de continuidade após as flutuações rápidas dos preços. Ao analisar o código em profundidade, podemos ver que a estratégia segue os seguintes princípios:

  1. Sistema de identificação de posiçãoA estratégia divide a lógica de negociação em três fases ((phase 1-3), que acionam diferentes condições de entrada de acordo com as diferentes fases.

  2. Detecção de condições de rupturaPara transações múltiplas, os principais critérios são:

    • Primeira fase: julgar se o valor de diferença entre o valor de alta e o valor de abertura da linha K anterior é de 300 pontos, enquanto o valor de baixa é inferior ao valor de alta menos 50 pontos
    • Segunda fase: Quando entrar na fase 1, verifique se o ponto mais baixo atual retrocedeu para o preço de abertura de referência mais 250 pontos
    • Terceira fase: determinar se a diferença entre o valor do máximo atual e o valor do encerramento anterior é superior a 300 pontos e se o mínimo atende aos requisitos de retirada
  3. Lógica inversaA negociação em branco usa uma lógica inversa totalmente simétrica com a de um múltiplo, para determinar o momento de entrada monitorando a relação entre o preço de abertura e o preço mínimo.

  4. Paragem de perdaA estratégia usa uma estratégia de stop loss de ponto fixo, com um stop loss múltiplo de 301 pontos abaixo do preço de entrada e um stop loss de 301 pontos acima do preço de fechamento anterior; o inverso ocorre com a negociação em branco.

Vantagens estratégicas

Ao analisar o código em profundidade, a estratégia mostra os seguintes benefícios:

  1. Mecanismo de julgamento em várias etapasA avaliação de três fases diferentes permite evitar erros de avaliação causados por uma única condição e aumentar a precisão da avaliação.

  2. Consciência de direção e retraçãoA estratégia foca tanto na dinâmica de ruptura (direção) dos preços quanto no possível recuo, equilibrando a ofensiva e a defensiva.

  3. Parâmetros flexíveisA estratégia pode ser adaptada a diferentes mercados e variedades com características de flutuação, aumentando o alcance da estratégia por meio da configuração de parâmetros de valor de ponto.

  4. Transações bidirecionaisA estratégia inclui uma lógica de negociação bidirecional, que permite aproveitar ao máximo as oportunidades de mercado e não se limita a uma tendência unidirecional.

  5. Gestão de risco embutidaO risco e os ganhos potenciais de cada transação são claramente controlados através de um limite de stop loss predefinido.

Risco estratégico

Apesar da estratégia ser bem concebida, existem os seguintes riscos potenciais:

  1. Ponto de fixação fixoA solução é ajustar esses parâmetros de acordo com as características da variedade e a dinâmica de volatilidade do mercado atual.

  2. Risco de Falso BreakoutO mercado pode apresentar uma falsa ruptura que retrocede rapidamente após uma brecha breve, causando sinais errados. Esse risco pode ser reduzido com o aumento de indicadores de confirmação, como volume de transação ou outros indicadores de dinâmica.

  3. Possíveis perdas continuadasEm mercados de turbulência, os preços frequentemente tocam a brecha de baixa, mas não formam uma tendência, podendo causar uma parada contínua. A solução é aumentar o filtro de ambiente de mercado e reduzir ou suspender a negociação em mercados de turbulência.

  4. Efeitos do ponto de deslizamentoA estratégia depende de pontos de preço precisos. Pode haver problemas de deslizamento em negociações reais, especialmente em mercados com pouca liquidez. Recomenda-se simular situações de deslizamento durante a retrospectiva e flexibilizar adequadamente as condições de entrada no mercado real.

  5. Complexidade de localizaçãoO design multi-fase aumenta a precisão, mas também aumenta a complexidade lógica, o que pode levar a atrasos ou erros na execução de transações. A verificação regular e a simplificação da lógica podem aumentar a eficiência da execução.

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

Para a estratégia, aqui estão algumas possíveis direções de otimização:

  1. Ajuste de parâmetros dinâmicosA mudança de parâmetros de pontos fixos para parâmetros dinâmicos baseados na volatilidade do mercado (como o indicador ATR) permite que a estratégia se adapte melhor a diferentes ambientes de mercado. Isso pode reduzir o limiar de disparo em períodos de baixa volatilidade e aumentar o limiar em períodos de alta volatilidade, aumentando a adaptabilidade.

  2. Aumentar a filtragem de mercadoIntrodução de indicadores de discernimento de tendências (como a direção da média móvel ou o indicador ADX), executando estratégias apenas em condições favoráveis de mercado e evitando negociações em condições desfavoráveis.

  3. Optimizar as configurações de stop lossO uso de tracking stop loss em vez de stop loss fixo pode ser considerado, permitindo maior espaço para o desenvolvimento de negociações lucrativas, enquanto protege os lucros já realizados.

  4. Aumentar os fatores de confirmação: Aumentar o volume de negócios, a estrutura do mercado ou a confirmação de outros indicadores técnicos no momento do sinal de entrada, reduzindo o impacto de falsos sinais.

  5. Filtro de tempoA adição de filtros de janelas de tempo de negociação, evitando os períodos de abertura e fechamento de mercados com maior volatilidade, mas sem uma direção clara, e focando-se em períodos de tempo mais estáveis para negociação.

  6. Simplificação da lógica de conversão de posiçãoReformulação da lógica de transição de fase, redução de verificações de estado desnecessárias, simplificação da estrutura do código e eficiência de execução.

Resumir

A estratégia de negociação de breakout e retração de preços em várias fases é um sistema de negociação bem estruturado que identifica oportunidades de negociação vantajosas por meio de análises de comportamento de preços em vários níveis. Sua principal vantagem reside no mecanismo de julgamento em várias fases, capacidade de negociação bidirecional e sistema de gerenciamento de risco embutido. Apesar de existirem problemas como adaptabilidade de parâmetros fixos e risco de falso rompimento, a estabilidade e a lucratividade da estratégia podem ser significativamente aumentadas com a introdução de medidas de otimização, como parâmetros dinâmicos, filtragem do ambiente de mercado e fatores de confirmação.

A estratégia é especialmente adequada para os comerciantes de curto e médio prazo, especialmente para aqueles que observam o comportamento dos preços e desejam intervir no início da mudança de dinâmica. A estratégia pode se tornar um sistema de negociação confiável, fornecendo uma fonte estável de receita para portfólios de negociação quantificados, através de um ajuste cuidadoso de parâmetros e adição de condições de filtragem apropriadas.

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

//@version=5
strategy("Custom Strategy", overlay=true, margin_long=1, margin_short=1, process_orders_on_close=true)

// 参数设置
point_value = input.float(0.0001, title="点值(例如:0.0001代表1个点)")

// 多单逻辑变量
var float long_ref_open = na
var float long_ref_high = na
var bool long_condition1 = false
var bool long_condition2 = false
var int long_phase = 0

// 空单逻辑变量
var float short_ref_open = na
var float short_ref_high = na
var bool short_condition1 = false
var bool short_condition2 = false
var int short_phase = 0

// 多单条件检查

// 多单第一条件检查
if not long_condition1 and not long_condition2
    if high[1] - open[1] >= 300 * point_value
        if low[1] <= high[1] - 50 * point_value
            strategy.entry("Long", strategy.long)
        else
            long_ref_open := open[1]
            long_ref_high := high[1]
            long_phase := 1

    else if close[1] - open[1] < 300 * point_value
        long_phase := 2

// 多单第二条件检查
if long_phase == 1
    if low <= long_ref_open + 250 * point_value
        strategy.entry("Long", strategy.long)
        long_phase := 0

if long_phase == 2
    if high - close[1] >= 300 * point_value
        if low <= high - 50 * point_value
            strategy.entry("Long", strategy.long)
            long_phase := 0
        else
            long_phase := 3
    else
        long_phase := 0

if long_phase == 3
    if low <= open[2] + 250 * point_value
        strategy.entry("Long", strategy.long)
        long_phase := 0

// 空单条件检查(反向逻辑)

// 空单第一条件检查
if not short_condition1 and not short_condition2
    if open[1] - low[1] >= 300 * point_value
        if high[1] >= low[1] + 50 * point_value
            strategy.entry("Short", strategy.short)
        else
            short_ref_open := open[1]
            short_ref_high := low[1]
            short_phase := 1

    else if open[1] - close[1] < 300 * point_value
        short_phase := 2

// 空单第二条件检查
if short_phase == 1
    if high >= short_ref_open - 250 * point_value
        strategy.entry("Short", strategy.short)
        short_phase := 0

if short_phase == 2
    if close[1] - low >= 300 * point_value
        if high >= low + 50 * point_value
            strategy.entry("Short", strategy.short)
            short_phase := 0
        else
            short_phase := 3
    else
        short_phase := 0

if short_phase == 3
    if high >= open[2] - 250 * point_value
        strategy.entry("Short", strategy.short)
        short_phase := 0

// 止损止盈逻辑
if strategy.position_size > 0
    strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price - 301 * point_value,limit = close[1] + 301 * point_value)

if strategy.position_size < 0
    strategy.exit("Short Exit", "Short",stop = strategy.position_avg_price + 301 * point_value, limit = close[1] - 301 * point_value)