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

Histórico de avanço com tendência de filtragem de média móvel mensal Seguindo estratégia

Autora:ChaoZhang, Data: 2024-12-13 10:25:18
Tags:ATHSMAMA

img

Resumo

Esta estratégia é um sistema de seguimento de tendências baseado no filtro de alta ruptura histórica e média móvel mensal. Ela gera sinais de compra monitorando as quebras de preços acima dos máximos históricos anteriores, enquanto usa a média móvel simples (8 SMA) de 8 períodos em um período de tempo mensal como um filtro de venda para reduzir os riscos de falsa ruptura.

Princípios de estratégia

A lógica central consiste em dois componentes principais:

  1. Signais de compra: gerados quando o último preço de fechamento ultrapassa o nível histórico mais alto anterior (excluindo o nível mais alto da barra atual).
  2. SIGNAL DE VENDA: Ativado quando o preço de fechamento mensal cai abaixo da média móvel simples de 8 períodos. A estratégia inclui também um mecanismo de acompanhamento do estado do sinal para evitar sinais repetidos no mesmo estado, melhorando a estabilidade da estratégia.

Vantagens da estratégia

  1. Captura de tendências fortes: capta efetivamente fortes tendências ascendentes através da detecção de altas rupturas históricas.
  2. Controlo de Risco Robusto: Incorpora a média móvel mensal como filtro para filtrar efetivamente falsas rupturas.
  3. Alta estabilidade do sinal: utiliza a variável lastSignal para rastrear os estados do sinal, evitando a repetição do sinal.
  4. Boa visualização: fornece uma interface gráfica clara, incluindo linhas altas históricas, médias móveis e marcadores de compra / venda.
  5. Alta adaptabilidade: pode ser aplicada a diferentes prazos e instrumentos.

Riscos estratégicos

  1. Risco de atraso: os sinais históricos de alta fuga são inerentemente um pouco atrasados, potencialmente faltando pontos de entrada ideais.
  2. Risco de Falsa Breakout: Apesar da filtragem da média móvel mensal, podem ainda ocorrer Falsa Breakouts em mercados variados.
  3. Risco de retração: a estratégia pode sofrer retrações significativas em pontos de inversão da tendência.
  4. Risco de gestão de posições: a estratégia não possui mecanismos de dimensionamento das posições, exigindo regras adicionais de gestão de fundos.

Orientações para a otimização da estratégia

  1. Confirmação de volume: adicionar indicadores de volume como condições de confirmação de ruptura para melhorar a confiabilidade do sinal.
  2. Estabelecer regras mais flexíveis de stop-loss, tais como trailing stops ou stops baseados na volatilidade.
  3. Gerenciamento de posições: ajuste dinâmico das posições com base na volatilidade do mercado e na força da tendência.
  4. Filtragem de sinais: adicionar indicadores de força da tendência como ADX para filtrar ainda mais sinais fracos.
  5. Filtragem por tempo: Adicione filtros de período de tempo para evitar negociações durante períodos de tempo inadequados.

Resumo

Esta é uma estratégia de otimização bem concebida que segue uma lógica clara. Através da combinação de altas breakouts históricas e médias móveis mensais, ela consegue capturar uma tendência eficaz e controlar riscos razoáveis. Embora existam riscos inerentes de atraso e falsos breakouts, as direções de otimização sugeridas oferecem potencial para melhoria do desempenho. A estratégia é particularmente adequada para mercados com tendências claras e pode servir como uma importante ferramenta de referência para investimentos de médio a longo prazo.


/*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)


Relacionados

Mais.