A primeira estratégia de rompimento da faixa de preço de meia hora: um sistema de rastreamento de tendências de mercado baseado na identificação de momentum de vários períodos

ATR Range Breakout SESSION ANALYSIS momentum Risk-Reward Ratio R:R TIME-BASED TRADING SINGLE ENTRY SYSTEM
Data de criação: 2025-07-25 11:57:10 última modificação: 2025-07-25 11:57:10
cópia: 0 Cliques: 211
2
focar em
319
Seguidores

A primeira estratégia de rompimento da faixa de preço de meia hora: um sistema de rastreamento de tendências de mercado baseado na identificação de momentum de vários períodos A primeira estratégia de rompimento da faixa de preço de meia hora: um sistema de rastreamento de tendências de mercado baseado na identificação de momentum de vários períodos

Visão geral

A estratégia de ruptura do intervalo de preço na primeira meia hora é um sistema de negociação baseado em análise de tempo e ruptura de intervalo de preço, especialmente projetado para negociação em gráficos de 15 minutos. A estratégia utiliza o intervalo de preço formado 30 minutos antes da data de negociação como referência fundamental para determinar o ponto de ruptura. A ideia central da estratégia é capturar o movimento do preço de negociação antecipado, para a tendência de sucesso após a orientação do mercado ser estabelecida, ao mesmo tempo em que evita o excesso de negociação e aumenta a taxa de vitória geral por meio de um limite rigoroso de negociação única por dia.

Princípio da estratégia

A estratégia baseia-se no conceito de que os intervalos de preços estabelecidos no início do mercado geralmente refletem os níveis de suporte e resistência importantes para a atividade de negociação do dia. O processo de execução é o seguinte:

  1. Formação da zona de referênciaO sistema monitora e agrega dados de duas linhas K de 15 minutos antes do dia de negociação (09:15:00-09:44:59) para registrar os preços mais altos e mais baixos durante esse período, formando “altos de referência” e “baixos de referência”.

  2. Configurações de transaçãoA estratégia procura sinais de quebra de preço na faixa de referência durante os períodos de negociação seguintes, incluindo 09:15 a 12:00 e 13:00 a 16:00.

  3. Regras de entrada

    • A entrada de muitos.A taxa de câmbio de um dólar por barril é a taxa de câmbio de um dólar por barril, que é a taxa de câmbio de um dólar por barril.
    • Entrada em brancoA partir de agora, o preço do Bitcoin deve ser mais baixo do que o preço do Bitcoin, e o preço do Bitcoin deve ser menor do que o preço do Bitcoin.
    • Limitação de transações diáriasA partir de agora, as transações serão feitas com a mesma frequência que as transações anteriores, e não haverá mais posições abertas no mesmo dia.
  4. Regras de partida

    • Objetivo de parada: definido como a distância entre o preço de entrada e o intervalo inicial mais ((multiplas cabeças) ou menos ((cabeças vazias)).
    • Posições de paradaO ponto de parada para a negociação multi-cabeça é definido no ponto baixo de referência, e o ponto de parada para a negociação de cabeças vazias é definido no ponto alto de referência.
  5. Controle de direção de transação

    • Os usuários podem limitar a direção de negociação para “apenas comprar”, “apenas vender” ou “em dois sentidos” por meio de parâmetros de entrada, de acordo com as preferências individuais do mercado ou o julgamento de tendências.

O código de estratégia garante que os sinais de ruptura sejam capturados com precisão e que as regras de gerenciamento de risco sejam rigorosamente executadas por meio de um rigoroso controle de tempo e detecção de condições de preço.

Vantagens estratégicas

Depois de analisar o código em profundidade, a estratégia tem as seguintes vantagens significativas:

  1. DisciplinaA aplicação de uma única transação por dia de negociação evita o excesso de negociação e a tomada de decisões emocionais, reduzindo os custos e o estresse psicológico associados à frequência de negociação.

  2. Regras clarasA entrada e a saída são claras e transparentes, sem necessidade de julgamento subjetivo, reduzindo a hesitação e os erros no processo de negociação.

  3. Alta flexibilidade: Com o parâmetro “trade_direction”, os usuários podem optar por negociar de forma multi-direcional, binária ou manter negociações bidirecionais com base em tendências macroeconômicas ou análises pessoais, aumentando a adaptabilidade da estratégia.

  4. Controle de risco perfeitoO objetivo é que cada transação tenha um stop loss e um stop loss predefinidos, com uma relação de risco/retorno clara, o que contribui para uma gestão de fundos estável a longo prazo.

  5. Eficiência de tempoA estratégia aproveita as características do mercado de curto prazo, que é frequentemente mais volátil e direcional, para aumentar a eficiência de negociação, focando-se nos primeiros 30 minutos após a abertura do mercado.

  6. Estrutura de código claraA estratégia é implementada através da reinstalação de variáveis e da verificação de condições. A lógica é rigorosa e fácil de entender e manter.

Risco estratégico

Apesar do bom desenho da estratégia, existem os seguintes riscos potenciais:

  1. Risco de Falso BreakoutO mercado pode reverter rapidamente após a ruptura da faixa de referência, resultando em um stop loss. A solução pode ser a adição de mecanismos de confirmação, como exigir que o preço permaneça por algum tempo após a ruptura ou quebrar uma certa amplitude antes de executar a transação.

  2. Risco de largura de bandaSe a volatilidade do mercado durante os primeiros 30 minutos for excessiva, o que pode levar a uma distância de parada excessiva e não atender aos princípios razoáveis de gerenciamento de risco, pode-se considerar o estabelecimento de limites de intervalos máximos ou ajustes de acordo com a dinâmica da volatilidade histórica.

  3. Risco de estreitamento do intervaloPor outro lado, se a movimentação inicial for muito pequena, pode ocasionar que o objetivo de parada fique muito próximo do ponto de entrada, dificultando a cobertura dos custos de negociação. A solução é estabelecer um requisito de intervalo mínimo ou optar por desistir de negociação em dias de baixa volatilidade.

  4. Dependência do mercado únicoA estratégia é projetada para um mercado específico e pode não funcionar bem em outros mercados ou em diferentes condições de mercado. Recomenda-se um bom feedback e análise de adequação do mercado antes da aplicação.

  5. Limites da taxa de retorno do risco fixo: O uso de uma taxa de risco-recompensa fixa no código ((risk_reward = 1.0), pode não ser adaptado a diferentes condições de mercado. Pode ser considerado um ajuste dinâmico de acordo com a volatilidade do mercado ou a intensidade da tendência.

Direção de otimização

Com base na análise do código, a estratégia pode ser otimizada nas seguintes direções:

  1. Ajustes de intervalos dinâmicosA estratégia atual usa uma janela de tempo fixa (os primeiros 30 minutos) para determinar os intervalos de negociação. Pode-se considerar a forma como os intervalos de referência são formados de acordo com a flutuação do mercado (como o indicador ATR), ajustando-se dinamicamente para adaptar-se a diferentes condições de mercado.

  2. Mecanismo de confirmação múltiplaAumento de indicadores técnicos adicionais ou confirmação de padrões de preços, reduzindo o risco de falso breakout se a transação for executada somente quando a direção do breakout coincide com a tendência da média móvel de curto prazo.

  3. Gestão de posições parciaisModificação do código para implementar estratégias de parada parcial e parada parcial, como, por exemplo, eliminar parte da posição depois de atingir um determinado objetivo de lucro e definir o restante para rastrear o stop loss, a fim de maximizar a captura de tendências.

  4. Fator de decadência do tempoA introdução do factor de decaimento de tempo faz com que, à medida que o dia de negociação avança, a estratégia aumente gradualmente a exigência de sinais de ruptura, pois, em geral, a ruptura da posição anterior faz mais sentido do que a ruptura da posição posterior.

  5. Redução do risco de adaptaçãoA taxa de retorno do risco é ajustada dinamicamente de acordo com as condições do mercado (como a volatilidade, a intensidade da tendência), em vez de usar valores fixos, para se adaptar melhor a diferentes condições do mercado.

  6. Filtro de volume de transaçõesAumentar o mecanismo de confirmação de transações, confirmando que a brecha é válida apenas se o volume de transações aumentar significativamente, reduzindo ainda mais o risco de falsas brechas.

Resumir

A estratégia de breakout do primeiro intervalo de preço de meia hora é um sistema de negociação simples e eficaz para executar negociações, capturando os intervalos de preços-chave estabelecidos pelo início do mercado e rastreando suas rupturas. A estratégia enfatiza a disciplina, regras claras e rigoroso controle de risco, especialmente para os comerciantes que buscam métodos de negociação sistematizados.

A principal vantagem da estratégia reside em suas regras claras de entrada e saída, restrições de negociação diárias e preferências de direção de negociação ajustáveis, permitindo que ela mantenha a disciplina de negociação sistematizada e tenha uma certa flexibilidade para se adaptar a diferentes ambientes de mercado.

Embora existam desafios com o risco de false breakout e a configuração de intervalos, esses riscos podem ser efetivamente mitigados por orientações de otimização recomendadas, como ajuste de intervalos dinâmicos, mecanismos de confirmação múltipla e gerenciamento de risco adaptativo.

Em geral, é um quadro estratégico concebido de forma racional, lógica e clara, adequado para ser aplicado ao comércio real pelo comerciante depois de compreendido e adequadamente ajustado, especialmente para capturar a dinâmica e a direção dos movimentos iniciais do mercado.

Código-fonte da estratégia
/*backtest
start: 2025-06-24 00:00:00
end: 2025-07-12 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/

//@version=6
strategy("HSI1! First 30m Candle Strategy (15m Chart)", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, calc_on_every_tick=true)

// === CONFIGURATION ===
risk_reward = 1.0
trade_size = 1

// User input to choose direction
trade_direction = input.string("Both", title="Trade Direction", options=["Buy Only", "Sell Only", "Both"])

// === SESSION TIME ===
time_in_session = (time >= timestamp("Asia/Hong_Kong", year, month, dayofmonth, 9, 15) and time <= timestamp("Asia/Hong_Kong", year, month, dayofmonth, 12, 0)) or (time >= timestamp("Asia/Hong_Kong", year, month, dayofmonth, 13, 0) and time <= timestamp("Asia/Hong_Kong", year, month, dayofmonth, 16, 0))

// === FIRST 30-MIN CANDLE AGGREGATION ===
// The first 30m period: 09:15:00 to 09:44:59
start_30m = timestamp("Asia/Hong_Kong", year, month, dayofmonth, 9, 15)
end_30m   = timestamp("Asia/Hong_Kong", year, month, dayofmonth, 9, 45)

// Identify the first bar of a new day for reset
curr_ymd = year * 10000 + month * 100 + dayofmonth
var int first_30m_ymd = na
var float first_30m_high = na
var float first_30m_low  = na
var bool range_locked = false

// Reset all at the start of a new day
if na(first_30m_ymd) or first_30m_ymd != curr_ymd
    first_30m_ymd := curr_ymd
    first_30m_high := na
    first_30m_low := na
    range_locked := false

// If within first 30m window, keep updating highs/lows
if time >= start_30m and time < end_30m
    first_30m_high := na(first_30m_high) ? high : math.max(first_30m_high, high)
    first_30m_low  := na(first_30m_low)  ? low  : math.min(first_30m_low, low)

// Lock the range after the 09:45 bar starts
if not range_locked and time >= end_30m and not na(first_30m_high) and not na(first_30m_low)
    range_locked := true

carry_high = range_locked ? first_30m_high : na
carry_low  = range_locked ? first_30m_low  : na

// === SINGLE TRADE PER DAY LOGIC ===
var int last_trade_ymd = na
var bool traded_today = false

if na(last_trade_ymd) or last_trade_ymd != curr_ymd
    traded_today := false  // New day, reset flag

can_trade = time_in_session and not na(carry_high) and not traded_today

// === TRADE ENTRY/EXIT CONDITIONS ===
long_condition  = can_trade and strategy.position_size == 0 and high >= carry_high and (trade_direction == "Buy Only" or trade_direction == "Both")
short_condition = can_trade and strategy.position_size == 0 and low <= carry_low and (trade_direction == "Sell Only" or trade_direction == "Both")

stop_long  = carry_low
take_long  = carry_high + (carry_high - carry_low) * risk_reward

stop_short = carry_high
take_short = carry_low - (carry_high - carry_low) * risk_reward

if long_condition
    strategy.entry("Long", strategy.long, qty=trade_size, stop=carry_high)
    strategy.exit("TP/SL Long", "Long", stop=stop_long, limit=take_long)
    last_trade_ymd := curr_ymd
    traded_today := true

if short_condition
    strategy.entry("Short", strategy.short, qty=trade_size, stop=carry_low)
    strategy.exit("TP/SL Short", "Short", stop=stop_short, limit=take_short)
    last_trade_ymd := curr_ymd
    traded_today := true

// === PLOTS ===
plot(carry_high, title="First 30m High", color=color.green, linewidth=2, display=display.none)
plot(carry_low,  title="First 30m Low",  color=color.red, linewidth=2, display=display.none)