Esta estrategia utiliza la operación de cruce entre el valor deslizante de Parabolic SAR y el candelabro para lograr el seguimiento de impulso y detener la pérdida para el comercio de swing. La estrategia establecerá posiciones largas y cortas cuando el precio esté subiendo y bajando. Cerrará estas posiciones para detener la pérdida cuando el precio se invierta.
El núcleo de esta estrategia se basa en el indicador Parabolic SAR para determinar si el precio actual está en una tendencia al alza o a la baja. Cuando el indicador Parabolic SAR está por debajo del candelero, significa que el precio está en aumento. En este caso, la estrategia comprobará al cierre de cada candelero si el valor Parabolic SAR cruza por encima del mínimo del candelero. Si no, significa que la tendencia al alza continúa y la estrategia establecerá una posición larga. Si el Parabolic SAR cruza por encima del mínimo, significa que la tendencia al alza se invierte hacia abajo, y la estrategia cerrará la posición larga para detener la pérdida.
Por el contrario, cuando el SAR parabólico está por encima del candelero, significa que el precio está cayendo actualmente. En este caso, la estrategia comprobará al cierre de cada candelero si el SAR parabólico cruza por debajo del máximo del candelero. Si no, establecerá una posición corta. Si el SAR parabólico cruza el máximo, significa que la tendencia a la baja se invierte al alza, y la estrategia cerrará la posición corta para detener la pérdida.
A través de esta lógica, la estrategia puede establecer posiciones a lo largo de la tendencia del precio y realizar el stop loss en la primera vez que la tendencia se invierte, bloqueando las ganancias.
Los métodos para mejorar la robustez incluyen: optimizar los puntos de stop loss para que sean lo suficientemente estrictos; combinar otros indicadores para confirmar; ajustar los parámetros para adaptarse a los entornos cambiantes; seleccionar conjuntos óptimos de parámetros para diferentes productos, etc.
En general, esta estrategia de swing parabólico SAR es una estrategia de trading a corto plazo bastante efectiva. Se aprovecha para determinar la dirección de la tendencia y los cambios de impulso, junto con los métodos de swing trading, para establecer posiciones largas y cortas repetidamente durante las tendencias alcistas y bajistas. El estricto mecanismo de stop loss también le da a esta estrategia una capacidad decente de control de riesgos. Pero como estrategia de un solo indicador, la invalidez de Parabolic SAR tendrá un impacto significativo. Por lo tanto, esta es una estrategia con cierta fuerza y potencial, pero también tiene algunos riesgos.
/*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)