Uma estratégia de negociação quantitativa que segue tendências, combinando um rompimento de alta histórica com um filtro de média móvel mensal

ATH SMA MA
Data de criação: 2024-12-13 10:25:18 última modificação: 2024-12-13 10:25:18
cópia: 0 Cliques: 336
1
focar em
1617
Seguidores

Uma estratégia de negociação quantitativa que segue tendências, combinando um rompimento de alta histórica com um filtro de média móvel mensal

Visão geral

A estratégia é uma estratégia de acompanhamento de tendências baseada em novas altas históricas e filtragem da linha média da linha lunar. Ela procura sinais de compra monitorando se os preços ultrapassaram os máximos históricos anteriores, enquanto usa a linha lunar de 8 ciclos de média móvel simples ((8 SMA) como condição de filtragem de venda para reduzir o risco de falsas rupturas.

Princípio da estratégia

A lógica central da estratégia inclui duas partes-chave:

  1. Sinais de compra: quando o preço de fechamento mais recente supera o máximo histórico do período anterior (sem incluir o máximo da linha K atual), o sistema gera um sinal de compra. Esta condição garante a entrada apenas em uma clara tendência ascendente.
  2. Sinais de venda: Quando o preço de fechamento da linha lunar cai abaixo da média móvel simples de 8 períodos, o sistema aciona um sinal de venda. Esta condição ajuda a parar o prejuízo em tempo hábil e evitar que a reversão da tendência cause maiores perdas. A estratégia também projetou um mecanismo de rastreamento do estado do sinal, evitando a repetição do sinal no mesmo estado, aumentando a estabilidade da estratégia.

Vantagens estratégicas

  1. Capacidade de captação de tendências: Captação de tendências de alta e alta com o julgamento de novos altos históricos.
  2. Controle de risco perfeito: Combinação de linha lunar e linha média como condição de filtragem, pode filtrar eficazmente as falsas brechas.
  3. Alta estabilidade do sinal: o estado do sinal é rastreado através da variável lastSignal, evitando a geração de sinais duplicados.
  4. Boa visualização: A estratégia fornece uma interface gráfica clara, incluindo a linha de alta histórica, a linha média e os sinais de compra e venda.
  5. Adaptabilidade: A estratégia pode ser aplicada em diferentes períodos de tempo e variedades.

Risco estratégico

  1. Risco de atraso: o sinal de ruptura de alta histórica tem um certo atraso, podendo perder o melhor momento de entrada.
  2. Risco de Falso Breakout: Apesar de haver um filtro de linha média, é possível que haja um falso breakout em um mercado em turbulência.
  3. Risco de retração: A estratégia pode sofrer uma maior retração no ponto de viragem da tendência.
  4. Risco de gestão de fundos: a estratégia não inclui um mecanismo de gestão de posições, necessitando de regras adicionais de gestão de fundos.

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

  1. Confirmação de volume de entrada: pode ser adicionado um indicador de volume de transação como condição de confirmação de ruptura, aumentando a confiabilidade do sinal.
  2. Melhorar o mecanismo de stop loss: pode-se projetar regras de stop loss mais flexíveis, como tracking stop loss ou stop loss de taxa de flutuação.
  3. Adição de gerenciamento de posição: Ajuste o tamanho da posição de acordo com a volatilidade do mercado e a intensidade da tendência.
  4. Filtragem de sinais de otimização: pode-se adicionar indicadores de força de tendência, como o ADX, para filtrar ainda mais os sinais de fraqueza.
  5. Aumentar o filtro de tempo: pode ser adicionado um filtro de ciclo de tempo, evitando transações em períodos de tempo inadequados.

Resumir

Trata-se de uma estratégia de acompanhamento de tendências concebida de forma racional e lógica. A utilização conjunta de novos picos históricos e da linha média lunar garante uma boa compreensão da tendência e um bom controle do risco. Embora haja um certo atraso e risco de falsas rupturas, o desempenho geral da estratégia pode ser melhorado ainda mais com a orientação de otimização recomendada.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Signal on Close Greater Than Previous All-Time High Strategy", overlay=true)

// Initialize the previous all-time high
var float prevAllTimeHigh = na

// Update the all-time high, excluding the current bar's high (use previous bar's high)
if (na(prevAllTimeHigh) or high[1] > prevAllTimeHigh)
    prevAllTimeHigh := high[1]

// Monthly closing price and 8 SMA on monthly time frame
monthlyClose = request.security(syminfo.tickerid, "M", close)
monthlySMA = ta.sma(monthlyClose, 8)

// Variables to track the last signal type
var int lastSignal = 0 // 0 = None, 1 = Buy, 2 = Sell

// Debugging output to check the all-time high and conditions
plot(prevAllTimeHigh, color=color.blue, linewidth=1, title="Previous All-Time High")
plot(monthlySMA, color=color.green, linewidth=1, title="8 SMA (Monthly)")

// Buy signal: when the latest close is greater than the previous all-time high
buySignal = close > prevAllTimeHigh and lastSignal != 1

// Sell signal: when the monthly close is below the 8 SMA
sellSignal = monthlyClose < monthlySMA and lastSignal != 2

// Update the last signal type after triggering a signal
if (buySignal)
    lastSignal := 1
if (sellSignal)
    lastSignal := 2

// Execute the strategy orders
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.close("Buy")

// Optional: Plot buy and sell signals on the chart for visual reference
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)