Estratégia de avanço de micro-retração baseada em momentum quantitativo

ATR SMA OCA VOLUME
Data de criação: 2025-02-19 16:32:46 última modificação: 2025-02-19 17:25:25
cópia: 0 Cliques: 335
2
focar em
319
Seguidores

Estratégia de avanço de micro-retração baseada em momentum quantitativo Estratégia de avanço de micro-retração baseada em momentum quantitativo

Visão geral

A estratégia é um sistema de negociação baseado na dinâmica dos preços e no volume das transações, que se concentra em identificar pequenas oportunidades de retração após fortes aumentos. A estratégia é executada monitorando retrações de curto prazo após a linha verde de alta significativa, entrando em negociação quando um sinal de reversão de preço é exibido. O sistema usa condições de filtragem múltiplas, incluindo volume de transação, taxa de flutuação do ATR e restrições de amplitude de retração, para aumentar a precisão das negociações.

Princípio da estratégia

A lógica central da estratégia baseia-se no princípio da continuidade da dinâmica do mercado e inclui principalmente os seguintes elementos-chave:

  1. Aumento forte identificado pelo volume de transações e o ATR, exigindo volume de transações 1,5 vezes superior à média e superior a 200.000
  2. Monitorização do processo de reajuste após a adição, limitando o número máximo de vermelhos consecutivos a 3
  3. Se você definir um retorno máximo de 50%, desista da transação.
  4. A reação de um retorno de equilíbrio, quando o preço ultrapassa o ponto mais alto do período anterior, desencadeia um sinal de multiplicação.
  5. Portfólio de ordens OCO para gerenciamento de posições, incluindo objetivos de stop loss e profit
  6. O Stop Loss está definido abaixo do ponto de regressão e o objetivo de lucro é o dobro do risco.

Vantagens estratégicas

  1. Combinação de dupla confirmação de movimentos de preços e volume de transação, aumentando a confiabilidade do sinal
  2. Filtragem de condições de retorno rígidas para evitar armadilhas de brecha falsa
  3. O uso de indicadores técnicos objetivos reduz a influência do julgamento subjetivo
  4. Mecanismos claros de controle de risco, configuração de risco-benefício fixa
  5. Alta automatização do sistema, adequado para o comércio em massa de várias variedades
  6. Boa escalabilidade, fácil de adicionar novas condições de filtragem

Risco estratégico

  1. Pode frequentemente desencadear sinais falsos em situações de alta volatilidade do mercado
  2. O retorno das ações de alta força pode ultrapassar o limite de antecipação
  3. Condições de volume de transação que requerem ajustes dinâmicos em diferentes cenários de mercado
  4. A posição de stop loss está mais próxima e pode ser tocada pelo ruído do mercado.
  5. A meta de lucro pode ser muito radical e difícil de alcançar
  6. Uma amostra maior é necessária para verificar a estabilidade da estratégia.

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

  1. Introdução de filtros de tendência, como um sistema de equilíbrio ou indicadores de tendência, para garantir a negociação na direção da tendência dominante
  2. Ajustamento dinâmico de depreciação de volume de transação para adaptar-se a diferentes ciclos de mercado
  3. Optimizar a configuração de posição de stop loss e considerar o uso de múltiplos de ATR
  4. Adição de filtros de tempo para evitar oscilações de abertura e fechamento do mercado
  5. Introdução de confirmação de múltiplos ciclos de tempo para aumentar a confiabilidade do sinal
  6. Desenvolver um sistema de parâmetros adaptáveis para ajustar os parâmetros de estratégia de acordo com a situação do mercado

Resumir

Trata-se de uma estratégia de rastreamento de tendências razoavelmente concebida, capaz de capturar oportunidades de negociação de qualidade no mercado por meio de uma seleção rigorosa de condições e gerenciamento de risco. A chave para o sucesso da estratégia está na otimização dos parâmetros e no ajuste adaptativo ao ambiente de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=6
strategy(title="Micropullback Detector w/ Stop Buy & Exits", shorttitle="MicroPB Det+Exits", overlay=true)

// USER INPUTS
volLookback = input.int(20, "Volume SMA Period", minval=1)
volMultiplier = input.float(1.5, "Volume Multiplier for High Volume", minval=1.0)
largeCandleATR = input.float(0.5, "Fraction of ATR to define 'Large Candle'", minval=0.1)
maxRedPullback = input.int(3, "Max Consecutive Red Candles in Pullback")
maxRetracementPc = input.float(50, "Max Retracement % for pullback", minval=1.0, maxval=100.0)

// CALCULATIONS
fastAtr = ta.atr(14)
avgVolume = ta.sma(volume, volLookback)
isLargeGreenCandle = (close > open) and ((close - open) > fastAtr * largeCandleATR) and (volume > avgVolume * volMultiplier) and (volume > 200000)

// HELPER FLAGS
isGreen = close >= open
isRed   = close < open

// STATE VARIABLES
var int   state = 0
var float waveStartPrice   = na
var float waveHighestPrice = na
var float largestGreenVol  = na
var int   consecutiveRedPulls = 0
var bool  triggerSignal    = false
var float wavePullbackLow  = na

if barstate.isnew
    triggerSignal:=false
    if state==0
        wavePullbackLow:=na
        if isLargeGreenCandle
            state:=1
            waveStartPrice:=open
            waveHighestPrice:=high
            largestGreenVol:=volume
            consecutiveRedPulls:=0
    else if state==1
        if isGreen
            waveHighestPrice:=math.max(waveHighestPrice,high)
            if volume>largestGreenVol
                largestGreenVol:=volume
        else
            state:=2
            consecutiveRedPulls:=1
            wavePullbackLow:=low
    else if state==2
        if isRed
            if volume>largestGreenVol
                state:=0
            consecutiveRedPulls+=1
            if consecutiveRedPulls>=maxRedPullback+1
                state:=0
            retracementLevel=waveStartPrice+(maxRetracementPc/100.0)*(waveHighestPrice-waveStartPrice)
            wavePullbackLow:=math.min(wavePullbackLow,low)
            if close<retracementLevel
                state:=0
        else
            consecutiveRedPulls:=0
            if high>high[1]
                triggerSignal:=true
                state:=3
    else if state==3
        state:=0

// Plot shapes for signals (last 1440 bars ~ 1 day at 1-min TF)
plotshape(isLargeGreenCandle, title="Large Green Candle", style=shape.diamond, location=location.belowbar, color=color.new(color.blue, 0), offset=0, size=size.small, show_last=1440)
plotshape(triggerSignal, title="MicroPB Entry", style=shape.arrowdown, location=location.abovebar, color=color.new(color.green, 0), offset=0, size=size.large, show_last=1440)

// ENTRY & EXITS
if triggerSignal
    // Stop Buy above the previous bar's high
    entryPrice = high[1]
    strategy.order("MicroPullback Long", strategy.long, limit=entryPrice, oca_name="MicroPullback")

    // Stoploss slightly below pullback low
    stopPrice = wavePullbackLow - 2*syminfo.mintick

    // Risk & take-profit calculations
    risk = entryPrice - stopPrice
    tpPrice = entryPrice + 2 * risk

    // Exit: stop or TP
    strategy.exit("SL+TP", "MicroPullback Long", stop=stopPrice, limit=tpPrice, qty_percent=100)

// ALERT
alertcondition(triggerSignal, title="MicroPullback LONG", message="Micropullback Long Signal Detected!")