Esta estratégia utiliza a operação de cruzamento entre o valor deslizante do SAR Parabólico e o candelabro para alcançar o rastreamento do impulso e a parada da perda para a negociação de balanço. A estratégia estabelecerá posições longas e curtas quando o preço estiver subindo e caindo.
O núcleo desta estratégia depende do indicador Parabolic SAR para determinar se o preço atual está em uma tendência ascendente ou descendente. Quando o indicador Parabolic SAR está abaixo do candelabro, isso significa que o preço está atualmente subindo. Neste caso, a estratégia verificará no fechamento de cada candelabro se o valor Parabolic SAR cruza acima do mínimo do candelabro. Caso contrário, isso significa que a tendência ascendente continua e a estratégia estabelecerá uma posição longa. Se o Parabolic SAR cruzar acima do mínimo, isso significa que a tendência ascendente reverte para baixo, e a estratégia fechará a posição longa para parar a perda.
Ao contrário, quando o SAR Parabólico está acima do candelabro, isso significa que o preço está caindo atualmente. Neste caso, a estratégia verificará no fechamento de cada candelabro se o SAR Parabólico cruza abaixo do máximo do candelabro. Caso contrário, ele estabelecerá uma posição curta. Se o SAR Parabólico cruzar o máximo, isso significa que a tendência de baixa se inverte para cima e a estratégia fechará a posição curta para parar a perda.
Através desta lógica, a estratégia pode estabelecer posições ao longo da tendência de preço e realizar o stop loss na primeira vez que a tendência se inverte, bloqueando os lucros.
Os métodos para melhorar a robustez incluem: a otimização dos pontos de stop loss para torná-los suficientemente rigorosos; a combinação de outros indicadores para confirmação; o ajuste de parâmetros para se adaptar a ambientes em mudança; a seleção de conjuntos de parâmetros ideais para diferentes produtos, etc.
Em geral, esta estratégia de balanço parabólico SAR é uma estratégia de negociação de curto prazo bastante eficaz. Ela aproveita o parabólico SAR para determinar a direção da tendência e as mudanças de momento, juntamente com os métodos de negociação de balanço, para estabelecer posições longas e curtas repetidamente durante tendências de alta e baixa. O mecanismo de stop loss rigoroso também dá a esta estratégia uma capacidade decente de controle de risco. Mas como uma estratégia de indicador único, a invalidez do parabólico SAR terá um impacto significativo. Então, esta é uma estratégia com alguma força e potencial, mas também tem alguns riscos.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Parabolic SAR Strategy", overlay=true) start = input(0.05) increment = input(0.075) maximum = input(1) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) if barstate.isconfirmed and time_cond if uptrend strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE") strategy.cancel("ParLE") else strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE") strategy.cancel("ParSE") plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)