Estratégia de Resistência de Suporte de Backtest de Breakout de Momentum


Data de criação: 2024-02-22 16:07:14 última modificação: 2024-02-22 16:07:14
cópia: 0 Cliques: 619
1
focar em
1617
Seguidores

Estratégia de Resistência de Suporte de Backtest de Breakout de Momentum

Visão geral

Esta estratégia utiliza principalmente o preço máximo, o preço mínimo e o preço de fechamento do dia de negociação anterior como o nível de suporte e resistência do dia, fazendo mais quando se rompe o nível de resistência e fazendo um vazio quando se retesta o nível de suporte, pertence à estratégia de ruptura típica.

Princípio da estratégia

O código define primeiro uma função para calcular a resistência de suporte, calculateSupportResistance, que extrai o preço máximo, o preço mínimo e o preço de fechamento do dia de negociação anterior como resistência de suporte do dia.

A função é então chamada na lógica principal para obter os três bits de preço e o gráfico é exibido.

Na lógica de retracção, se o preço de fechamento for menor que o preço mínimo do dia anterior e o preço atual for maior que o preço mínimo constituirá uma quebra, faz-se mais; se o preço de fechamento for maior que o preço máximo do dia anterior e o preço atual for menor que o preço máximo constituirá uma quebra, faz-se menos.

Com este modelo de ruptura, é possível avaliar as tendências e gerar sinais de negociação.

Vantagens estratégicas

  1. O uso de dados do dia anterior de negociação para construir a resistência de suporte do dia, evitando o problema de otimização de parâmetros
  2. A resistência de suporte é baseada em dados reais de negociação de mercado e tem um valor de referência.
  3. Modelo de retorno simples, direto e fácil de entender
  4. Visualização de suportes e resistências para formar a percepção de preços
  5. Monitoramento em tempo real de brechas para capturar oportunidades em tempo real

Risco estratégico

  1. A resistência de suporte muda ao longo do tempo e não é possível determinar sua eficácia.
  2. A falta de previsão da direção da tendência e o risco de perder a reversão
  3. Susceptíveis a falsas intrusões, com risco de entrada prematura
  4. Não é possível determinar a continuidade da ruptura, existindo a possibilidade de parada prematura.
  5. A resistência do suporte individual pode falhar quando o mercado está em alta

Resposta:

  1. Combinação de mais fatores para avaliar a eficácia de uma ruptura
  2. Aumentar adequadamente o stop loss para garantir a captação da tendência
  3. Estabelecer posições em lotes para reduzir o impacto das flutuações das ações

Otimização de Estratégia

  1. Adicionar mais dados históricos para avaliar pontos de resistência, como preços de linhas de 5 e 10 dias
  2. Indicadores como o volume de transações são usados para avaliar a eficácia da ruptura.
  3. De acordo com a taxa de flutuação real, estabeleça um ponto de parada
  4. Optimizar a gestão de fundos e controlar as perdas individuais

Resumir

A estratégia em geral pertence a uma estratégia típica de ruptura, simples e intuitiva, com base nos dados do dia de negociação anterior, para construir a resistência de suporte do dia, retomando a ruptura com mais ações. A vantagem é que é fácil de entender a realização, pode ver diretamente a resistência de suporte; A desvantagem é a existência de falso risco de ruptura, não é possível determinar a continuidade da tendência.

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

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)