O recurso está a ser carregado... Carregamento...

Estratégia de negociação unidirecional de ruptura diária do intervalo

Autora:ChaoZhang, Data: 2024-12-11 15:23:37
Tags:OHLCADXATRMARSIBB

img

Resumo

Esta é uma estratégia de negociação de ruptura de faixa baseada nos pontos altos e baixos do dia anterior. A estratégia busca oportunidades de negociação identificando rupturas de preço ou quebras além dos pontos altos ou baixos do dia anterior, executando apenas uma negociação por direção de ruptura ou quebra. A estratégia emprega configurações fixas de take-profit e stop-loss de 50 pontos e redefine as bandeiras de negociação no início de cada dia de negociação para garantir uma negociação ordenada. O núcleo desta estratégia é capturar movimentos de ruptura de preço de direção única dentro do dia, controlando o risco através de uma gestão de negociação rigorosa.

Princípios de estratégia

A lógica central da estratégia inclui os seguintes aspectos:

  1. Geração de sinal de negociação: O sistema determina a direção da negociação verificando se o preço de fechamento atual quebra o máximo ou o mínimo do dia anterior.
  2. Controle de Frequência de Negociação: A estratégia usa flags para garantir apenas uma negociação por direção por dia.
  3. Gerenciamento de riscos: Cada transação tem um take-profit e stop-loss fixos de 50 pontos, proporcionando uma gestão de risco simétrica que controla efetivamente o risco de uma única transação.
  4. Mecanismo de reinicialização diária: o sistema reinicia as bandeiras de negociação no início de cada dia de negociação, preparando-se para novas oportunidades de negociação.

Vantagens da estratégia

  1. Lógica de negociação clara: A estratégia é baseada em uma teoria simples de quebra de preço com regras de negociação claras que são fáceis de entender e executar.
  2. Controlo rigoroso do risco: Controla efetivamente o risco para cada negociação através de pontos fixos de take-profit e stop-loss e limites de negociação unidirecionais.
  3. Previne o excesso de negociação: permitir apenas um comércio por direção por dia ajuda a evitar perdas de negociação frequente em mercados agitados.
  4. Alta automação: a estratégia pode ser totalmente automatizada sem intervenção humana.
  5. Alta adaptabilidade: a estratégia pode ser aplicada a diferentes ambientes de mercado, tendo um desempenho particularmente bom em mercados em tendência.

Análise de riscos

  1. Risco de Falsa Breakout: os mercados podem apresentar falsas breakouts que levam a perdas comerciais.
  2. Risco de mercado agitado: rompimentos e falhas frequentes em mercados variados podem levar a paradas consecutivas. Pode ser melhorado adicionando condições de filtragem.
  3. Risco de stop-loss fixo: os pontos de stop-loss fixos podem não corresponder a todas as condições de mercado e poderem desencadear-se demasiado cedo em mercados altamente voláteis.
  4. Risco de deslizamento: durante a intensa volatilidade do mercado, os pontos de stop-loss reais podem desviar dos níveis esperados devido ao deslizamento.

Orientações de otimização

  1. Estabelecimento dinâmico de stop-loss: ajustar os pontos de take-profit e stop-loss de forma dinâmica com base na volatilidade do mercado (por exemplo, o indicador ATR).
  2. Adicionar filtros de tendência: Incorporar indicadores de tendência (como médias móveis ou ADX) para filtrar sinais comerciais.
  3. Otimizar a confirmação de ruptura: adicionar confirmação de volume ou outros indicadores técnicos para melhorar a confiabilidade da ruptura.
  4. Filtragem por tempo: adicionar condições de filtragem por tempo para evitar a negociação durante períodos altamente voláteis.
  5. Optimização da gestão de posições: ajustar dinamicamente as posições com base na volatilidade do mercado e na tolerância ao risco da conta.

Conclusão

Esta estratégia é um sistema de negociação clássico baseado em breakouts diários, adequado para rastrear tendências de mercado de uma única direção através de uma gestão estrita do comércio e controle de riscos.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)

// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0

// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50

// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])

// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false

// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
    breakout_traded := false
    breakdown_traded := false

// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded

// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded

// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
    breakout_traded := true  // Set breakout flag

// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
    breakdown_traded := true  // Set breakdown flag

// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")


Relacionados

Mais.