Estratégia de rastreamento da inversão do momento SAR

Autora:ChaoZhang, Data: 2024-02-04 17:40:20
Tags:

img

Resumo

Este artigo apresenta uma estratégia de rastreamento de reversão de impulso baseada no indicador Parabolic Stop and Reverse (SAR). Esta estratégia utiliza o indicador Parabolic SAR para identificar potenciais inversões de tendência no mercado de futuros Nifty para negociação automatizada de rastreamento de tendência.

A estratégia é principalmente adequada para os traders que preferem uma abordagem de negociação sistemática, fornecendo sinais claros de entrada e saída.

Estratégia lógica

A estratégia usa o indicador parabólico SAR para determinar a direção da tendência do preço. Em uma tendência de alta, o valor SAR está abaixo do preço e aumenta gradualmente à medida que novas altas ocorrem; Em uma tendência de baixa, o valor SAR está acima do preço e diminui gradualmente à medida que novas baixas ocorrem.

Quando o valor SAR cruza acima ou abaixo do preço, indica uma potencial inversão de tendência e a estratégia assumirá posições curtas ou longas correspondentes para capturar a nova direção da tendência.

Especificamente, depois de calcular inicialmente o valor SAR atual e o fator de aceleração, a estratégia mantém o rastreamento de novos altos/baixos e ajusta o valor SAR em conformidade.

Análise das vantagens

  • Captura as reversões do mercado utilizando o indicador parabólico SAR clássico
  • Fornece sinais de entrada e saída sistemáticos claros
  • Ajuda a rastrear tendências e a capturar movimentos de preços adicionais
  • Sistema de negociação automatizado sem tomada de decisão manual

Análise de riscos

  • Os sinais do indicador SAR podem não ser fiáveis a 100%, podendo ocorrer sinais falsos
  • Reversões fracassadas podem causar stop loss
  • Impacto da consideração das necessidades de expiração do contrato
  • Impacto dos custos de negociação na rentabilidade da estratégia

Orientações de otimização

  • Otimizar os parâmetros SAR (passo, valor inicial, valor máximo, etc.)
  • Combinar outros indicadores de reversão (RSI, MACD, etc.) para confirmar reversões
  • Adicionar lógica de condição (volume etc.) para filtrar sinais falsos
  • Considere a utilização de paradas de atraso em vez de paradas fixas
  • Considere o dimensionamento de posição de ajuste automático

Conclusão

A estratégia fornece um sistema automatizado para capturar reversões de tendência do mercado usando o indicador Parabolic SAR. Ele fornece sinais claros de entrada e saída para decisões de negociação, ajudando a lucrar com o rastreamento de tendências. Mas questões como sinais falsos, riscos de stop loss também precisam de atenção. Com otimização contínua, ele tem o potencial de se tornar um método confiável de rastreamento de tendências.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Positional Parabolic SAR Strategy", overlay=true)
initial = input(0.02)
step = input(0.02)
cap = input(0.2)
var bool isUptrend = na
var float Extremum = na
var float SARValue = na
var float Accelerator = initial
var float futureSAR = na

if bar_index > 0
    isNewTrendBar = false
    SARValue := futureSAR
    if bar_index == 1
        float pastSAR = na
        float pastExtremum = na
        previousLow = low[1]
        previousHigh = high[1]
        currentClose = close
        pastClose = close[1]
        if currentClose > pastClose
            isUptrend := true
            Extremum := high
            pastSAR := previousLow
            pastExtremum := high
        else
            isUptrend := false
            Extremum := low
            pastSAR := previousHigh
            pastExtremum := low
        isNewTrendBar := true
        SARValue := pastSAR + initial * (pastExtremum - pastSAR)
    if isUptrend
        if SARValue > low
            isNewTrendBar := true
            isUptrend := false
            SARValue := math.max(Extremum, high)
            Extremum := low
            Accelerator := initial
    else
        if SARValue < high
            isNewTrendBar := true
            isUptrend := true
            SARValue := math.min(Extremum, low)
            Extremum := high
            Accelerator := initial
    if not isNewTrendBar
        if isUptrend
            if high > Extremum
                Extremum := high
                Accelerator := math.min(Accelerator + step, cap)
        else
            if low < Extremum
                Extremum := low
                Accelerator := math.min(Accelerator + step, cap)
    if isUptrend
        SARValue := math.min(SARValue, low[1])
        if bar_index > 1
            SARValue := math.min(SARValue, low[2])
    else
        SARValue := math.max(SARValue, high[1])
        if bar_index > 1
            SARValue := math.max(SARValue, high[2])
    futureSAR := SARValue + Accelerator * (Extremum - SARValue)
    if barstate.isconfirmed
        if isUptrend
            strategy.entry("ShortEntry", strategy.short, stop=futureSAR, comment="ShortEntry")
            strategy.cancel("LongEntry")
        else
            strategy.entry("LongEntry", strategy.long, stop=futureSAR, comment="LongEntry")
            strategy.cancel("ShortEntry")
plot(SARValue, style=plot.style_cross, linewidth=3, color=color.white)
plot(futureSAR, style=plot.style_cross, linewidth=3, color=color.red)


Mais.