Estrategia de seguimiento de la reversión del impulso SAR

El autor:¿ Qué pasa?, Fecha: 2024-02-04 17:40:20
Las etiquetas:

img

Resumen general

Este artículo presenta una estrategia de seguimiento de reversión de impulso basada en el indicador Parabolic Stop and Reverse (SAR). Esta estrategia utiliza el indicador Parabolic SAR para identificar posibles inversiones de tendencia en el mercado de futuros Nifty para el comercio automatizado de seguimiento de tendencias.

La estrategia es principalmente adecuada para los operadores que prefieren un enfoque de negociación sistemático, proporcionando señales claras de entrada y salida.

Estrategia lógica

La estrategia utiliza el indicador SAR Parabólico para determinar la dirección de la tendencia del precio. En una tendencia alcista, el valor SAR está por debajo del precio y se mueve gradualmente hacia arriba a medida que ocurren nuevos máximos; en una tendencia bajista, el valor SAR está por encima del precio y se mueve gradualmente hacia abajo a medida que ocurren nuevos mínimos.

Cuando el valor SAR se cruza por encima o por debajo del precio, indica una posible inversión de tendencia y la estrategia tomará posiciones cortas o largas correspondientes para capturar la nueva dirección de la tendencia.

Específicamente, después de calcular inicialmente el valor SAR actual y el factor de aceleración, la estrategia sigue rastreando nuevos máximos / mínimos y ajusta el valor SAR en consecuencia.

Análisis de ventajas

  • Captura las reversiones del mercado utilizando el indicador clásico Parabolic SAR
  • Proporciona señales de entrada y salida sistemáticas claras
  • Ayuda a rastrear tendencias y capturar movimientos de precios adicionales
  • Sistema de negociación automatizado sin toma de decisiones manual

Análisis de riesgos

  • Las señales del indicador SAR pueden no ser fiables al 100%, pudiendo producirse señales falsas
  • Las reversiones fallidas pueden causar pérdidas de parada
  • Impacto de la consideración de las necesidades de expiración del contrato
  • Impacto de los costes de negociación en la rentabilidad de la estrategia

Direcciones de optimización

  • Optimizar los parámetros SAR (paso, valor inicial, valor máximo, etc.)
  • Combinar otros indicadores de reversión (RSI, MACD, etc.) para confirmar las reversiones
  • Añadir lógicas de condiciones (volumen, etc.) para filtrar señales falsas
  • Considere el uso de paradas de trailing en lugar de paradas fijas
  • Considere el ajuste automático del tamaño de la posición

Conclusión

La estrategia proporciona un sistema automatizado para capturar las reversiones de tendencia del mercado utilizando el indicador Parabolic SAR. Da señales claras de entrada y salida para las decisiones comerciales, ayudando a obtener ganancias del seguimiento de tendencias. Pero problemas como señales falsas, riesgos de stop loss también necesitan atención. Con la optimización continua, tiene el potencial de convertirse en un método de seguimiento de tendencias confiable.


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


Más.