Estratégia de rompimento e reversão de vela matinal

OHLC MA ATR RSI
Data de criação: 2024-07-31 14:16:42 última modificação: 2024-07-31 14:16:42
cópia: 5 Cliques: 591
1
focar em
1617
Seguidores

Estratégia de rompimento e reversão de vela matinal

Visão geral

Esta estratégia é uma estratégia de negociação diária baseada no padrão do diagrama da manhã, que utiliza principalmente os altos e baixos da linha do diagrama das 11:00 para determinar o movimento do mercado. A ideia central da estratégia é fazer mais quando o preço quebra o pico da manhã e fechar quando o preço quebra o pico, e definir as condições de parada correspondentes. Esta abordagem combina a ideia de acompanhamento de tendências e inversão de preços, com o objetivo de capturar o movimento de curto prazo após a ruptura de um nível de preço importante no dia.

Princípio da estratégia

A estratégia funciona da seguinte forma:

  1. Determine o preço-chave: a estratégia identifica primeiro o ponto mais alto e o ponto mais baixo das 11h da madrugada e usa esses dois preços como nível-chave de referência.

  2. Sinal de entrada:

    • Fazer um sinal de mais: quando o preço de fechamento de duas linhas K consecutivas quebrar a alta da manhã, acionar um sinal de mais.
    • Sinal de curto prazo: quando o preço de fechamento de duas linhas K consecutivas cai abaixo da baixa da manhã, o sinal de curto prazo é acionado.
  3. Parar de perder:

    • A paragem de múltiplos cabeçotes: o ponto mais baixo da coluna da manhã.
    • A paragem de cabeça vazia: o ponto mais alto da coluna da manhã.
  4. Mecanismos de saída:

    • Tocar o Stop Loss: Quando o preço toca o correspondente nível de Stop Loss, o posicionamento é automaticamente liquidado.
    • Tempo de saída: todas as posições são automaticamente liquidadas às 15:15 para controlar o risco do dia a dia.
  5. Limitação do tempo de negociação: a estratégia é não abrir novas negociações depois das 15:15 para evitar a volatilidade anormal antes do fechamento.

Vantagens estratégicas

  1. Regras de negociação claras: estratégias baseadas em brechas de preço claras e lógica de reversão, fáceis de entender e executar.

  2. Controle de Risco: Controle efetivo do risco de cada transação por meio da definição de um ponto de parada fixo.

  3. Adaptação ao mercado: a estratégia pode se adaptar a diferentes condições de flutuação do mercado com base nos intervalos de preços formados pela manhã.

  4. Execução automática: A estratégia pode ser programada para realizar transações totalmente automatizadas, reduzindo a intervenção humana e o impacto emocional.

  5. Negociação intra-dia: evita o risco de posicionamento durante a noite, eliminando as posições antes do fechamento do dia.

  6. Flexibilidade: A estratégia pode ser optimizada para diferentes mercados e variedades de negociação.

Risco estratégico

  1. Risco de Falso Breakout: O mercado pode ter Falso Breakout, o que leva a frequentes saídas de Stop Loss.

  2. Limitação da amplitude de oscilação: em períodos de baixa oscilação, a estratégia pode ser difícil de desencadear sinais de negociação ou gerar lucros efetivos.

  3. Um único período de tempo: dependendo apenas da linha das 11h, pode-se ignorar informações importantes sobre o mercado em outros períodos de tempo.

  4. Falta de acompanhamento de tendências: a estratégia pode não ter condições de parada e não ter uma visão completa das grandes tendências.

  5. Stop loss fixo: em mercados altamente voláteis, o stop loss fixo pode ser muito próximo, levando a uma saída prematura de uma situação favorável.

  6. Custos de transação: a frequência de entradas e saídas pode levar a custos de transação mais elevados, afetando o lucro geral.

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

  1. Introdução de análise de múltiplos períodos de tempo: a combinação de períodos de tempo mais longos com a determinação de tendências aumenta a precisão das transações.

  2. Paradas dinâmicas: usando métodos como o indicador ATR, configure paradas dinâmicas para se adaptar a diferentes estados de flutuação do mercado.

  3. Adição de um mecanismo de parada: configuração de um parâmetro de parada baseado na relação de risco/benefício, melhorando a relação de perdas e perdas da estratégia.

  4. Análise de volume: adiciona análise de volume de transação para aumentar a confiabilidade do sinal de ruptura.

  5. Filtragem do estado do mercado: introdução de indicadores de volatilidade como o ATR, reduzindo a frequência de negociação em períodos de baixa volatilidade.

  6. Optimizar o tempo de entrada: Considere usar indicadores como o RSI para negociar de forma inversa em áreas de sobrecompra e sobrevenda.

  7. Adição de elementos de rastreamento de tendências: Considere o uso de stop loss móvel para rastrear a tendência em fortes breakouts.

  8. Retrospecção e otimização de parâmetros: retrospecção de diferentes combinações de parâmetros para encontrar a melhor configuração de parâmetros.

Resumir

A estratégia de breakout e reversão de breakout da manhã é um sistema de negociação diária baseado em breakouts de preços-chave. Ela usa o ponto alto e baixo da breakout das 11:00 da manhã como uma referência importante para capturar tendências de curto prazo por meio de breakouts de preços.

Código-fonte da estratégia
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)

// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15

// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
    morningHigh := high
    morningLow := low
    morningCandleFound := true

// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)

// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false

if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
    // Check for Buy Call condition
    if (close[1] > morningHigh and close > morningHigh)
        if (not inTrade or tradeDirection != 1)
            strategy.entry("Buy Call", strategy.long, stop=morningLow)
            buyCallCondition := true
            inTrade := true
            tradeDirection := 1
            label.new(bar_index, high, "Buy Call", color=color.green)
            alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
    else if (close[1] <= morningHigh)
        buyCallCondition := false

    // Check for Buy Put condition
    if (close[1] < morningLow and close < morningLow)
        if (not inTrade or tradeDirection != -1)
            strategy.entry("Buy Put", strategy.short, stop=morningHigh)
            buyPutCondition := true
            inTrade := true
            tradeDirection := -1
            label.new(bar_index, low, "Buy Put", color=color.red)
            alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
    else if (close[1] >= morningLow)
        buyPutCondition := false

    // Exit conditions
    if (inTrade)
        if (tradeDirection == 1 and low <= morningLow)
            strategy.close("Buy Call")
            label.new(bar_index, low, "Exit Call", color=color.red)
            alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
            buyCallCondition := false
            inTrade := false
            tradeDirection := 0
        if (tradeDirection == -1 and high >= morningHigh)
            strategy.close("Buy Put")
            label.new(bar_index, high, "Exit Put", color=color.green)
            alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
            buyPutCondition := false
            inTrade := false
            tradeDirection := 0

// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
    strategy.close_all()
    inTrade := false
    tradeDirection := 0
    noNewTrades := true
    alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)

// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
    noNewTrades := false