Estratégia de negociação avançada de intervalo de ruptura de vários períodos

HTF SMA PIN BAR RSI EMA VOL
Data de criação: 2025-02-18 18:08:09 última modificação: 2025-02-18 18:08:09
cópia: 0 Cliques: 530
1
focar em
1617
Seguidores

Estratégia de negociação avançada de intervalo de ruptura de vários períodos

Visão geral

Trata-se de uma estratégia de negociação de múltiplos períodos de tempo baseada na teoria dos intervalos de gráfico. A estratégia identifica oportunidades de negociação potenciais principalmente através da análise dos padrões de gráfico e dos intervalos de preço em períodos de tempo mais elevados. A estratégia integra filtros de volume de transação e mecanismos de stop loss dinâmicos para capturar oportunidades de tendência por meio de rupturas nos altos e baixos anteriores.

Princípio da estratégia

O núcleo da estratégia é o monitoramento de um período de tempo mais longo (default 4 horas) em que o preço ultrapassa o intervalo anterior.

  1. A estratégia continua a rastrear e armazenar dados dos pontos altos e baixos das duas linhas K de alta duração anteriores
  2. Quando o preço de fechamento de uma linha K atual está abaixo da alta anterior e a linha K atual é alta, um sinal de curto prazo é formado
  3. Quando o preço de fechamento de um K-line atual é mais alto do que o preço de fechamento de um K-line anterior e a inovação do K-line atual é baixa, um sinal de multissignal é formado.
  4. O preço de entrada é definido como o ponto alto ou baixo da linha K.
  5. A meta de lucro foi estabelecida para os pontos altos e baixos correspondentes do período anterior.
  6. Distância de parada ajustada dinamicamente de acordo com o tamanho do intervalo

Vantagens estratégicas

  1. Análise de períodos múltiplos de tempo fornece um sinal mais confiável
  2. Paradas dinâmicas de perda, adaptadas à volatilidade do mercado
  3. Mecanismos de filtragem de volume de transação opcionais aumentam a confirmação de transações
  4. Interface visual clara, incluindo marcas de preço de disparo, preço de alvo e ponto de parada
  5. A lógica da estratégia é simples, clara, fácil de entender e executar.
  6. Aplicável a várias variedades de transações e ambientes de mercado

Risco estratégico

  1. Falso sinal de ruptura frequente pode ocorrer em mercados com turbulência intermitente
  2. Um grande multiplicador de stop loss pode levar a perdas excessivas em uma única transação.
  3. Dependendo de dados históricos de preços, pode reagir com atraso em um ambiente de mercado em rápida mudança
  4. Não se considera o impacto dos fatores fundamentais
  5. Pode ser difícil de executar de forma eficaz em mercados com pouca liquidez

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

  1. Introdução de filtros de tendência, como a média móvel ou o indicador ADX
  2. Adicionar mais critérios de avaliação do cenário de mercado
  3. Otimização da estratégia de stop loss, considerando a introdução de stop loss móvel
  4. Adicionar o módulo de gestão de volume
  5. Considere adicionar mais análises de colaboração de períodos de tempo
  6. Introdução de indicadores de volatilidade para otimizar o julgamento de intervalos

Resumir

Trata-se de uma estratégia de negociação de múltiplos períodos de tempo, com estrutura e lógica claras. Busca de oportunidades de tendências potenciais através da análise do comportamento dos preços em períodos de tempo mais elevados, enquanto integra mecanismos de gerenciamento e filtragem de risco. O principal benefício da estratégia reside na sua adaptabilidade e escalabilidade, que pode ser adaptada a diferentes ambientes de mercado por meio de simples ajustes de parâmetros.

Código-fonte da estratégia
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Candle Range Theory Strategy", overlay=true)

// Input parameters
var string HTF = input.timeframe("240", "Higher Timeframe (Minutes)")  // 4H default
var float stopLossMultiplier = input.float(1.5, "Stop Loss Multiplier", minval=0.5)
var bool useVolFilter = input.bool(false, "Use Volume Filter")
var float volThreshold = input.float(1.5, "Volume Threshold Multiplier", minval=1.0)

// Function to get higher timeframe data
getHtfData(src) =>
    request.security(syminfo.tickerid, HTF, src)

// Calculate volume condition once per bar
var bool volCondition = true
if useVolFilter
    float vol = getHtfData(volume)
    float avgVol = ta.sma(vol, 20)
    volCondition := vol > avgVol * volThreshold

// Get HTF candle data
htf_open = getHtfData(open)
htf_high = getHtfData(high)
htf_low = getHtfData(low)
htf_close = getHtfData(close)

// Store previous candle data
var float h1 = na  // High of Candle 1
var float l1 = na  // Low of Candle 1
var float h2 = na  // High of Candle 2
var float l2 = na  // Low of Candle 2
var float prevClose = na

// Track setup conditions
var string setupType = na
var float triggerLevel = na
var float targetLevel = na
var float stopLevel = na

// Update candle data - fixed time function usage
var bool isNewBar = false
isNewBar := ta.change(request.security(syminfo.tickerid, HTF, time)) != 0

if isNewBar
    h1 := h2
    l1 := l2
    h2 := htf_high[1]
    l2 := htf_low[1]
    prevClose := htf_close[1]

    // Identify setup conditions
    if not na(h1) and not na(h2) and not na(prevClose)
        if (h2 > h1 and prevClose < h1)  // Short setup
            setupType := "short"
            triggerLevel := l2
            targetLevel := l1
            stopLevel := h2 + (h2 - l1) * stopLossMultiplier
        else if (l2 < l1 and prevClose > l1)  // Long setup
            setupType := "long"
            triggerLevel := h2
            targetLevel := h1
            stopLevel := l2 - (h1 - l2) * stopLossMultiplier
        else
            setupType := na
            triggerLevel := na
            targetLevel := na
            stopLevel := na

// Entry conditions using pre-calculated volume condition - fixed line breaks
bool longCondition = setupType == "long" and high > triggerLevel and not na(triggerLevel) and volCondition
bool shortCondition = setupType == "short" and low < triggerLevel and not na(triggerLevel) and volCondition

// Execute trades
if longCondition
    strategy.entry("Long", strategy.long, comment="Long Entry")
    strategy.exit("Long Exit", "Long", limit=targetLevel, stop=stopLevel)

if shortCondition
    strategy.entry("Short", strategy.short, comment="Short Entry")
    strategy.exit("Short Exit", "Short", limit=targetLevel, stop=stopLevel)

// Plot signals - fixed plotshape parameters
plotshape(series=longCondition, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(series=shortCondition, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown)

plot(triggerLevel, "Trigger Level", color=color.yellow, style=plot.style_circles)
plot(targetLevel, "Target Level", color=color.blue, style=plot.style_circles)
plot(stopLevel, "Stop Level", color=color.red, style=plot.style_circles)