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.
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.
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)