Esta estrategia se basa en las operaciones alternas del indicador SAR a través de diferentes marcos de tiempo. La estrategia calcula el indicador SAR en marcos de tiempo de 15 minutos, diarios, semanales y mensuales, y opera en el marco de tiempo semanal.
El indicador SAR parabólico (SAR) representa el SAR parabólico, que juzga la dirección de la tendencia calculando la relación entre el precio actual y los precios históricos.
Esta estrategia calcula los valores SAR en intervalos de tiempo de 15 minutos, diarios, semanales y mensuales, respectivamente.
SAR = Previous SAR + Acceleration Factor * (Highest Price - Previous SAR) # Uptrend
SAR = Previous SAR + Acceleration Factor * (Lowest Price - Previous SAR) # Downtrend
El factor de aceleración inicial está fijado en 0,02, y aumentará gradualmente hasta un máximo de 0,2 a medida que la tendencia se extienda.
La estrategia genera señales comerciales en el marco de tiempo semanal. Va largo cuando el SAR semanal cruza por encima del precio más alto, con el valor SAR como el stop loss. Va corto cuando el SAR cruza por debajo del precio más bajo, con el SAR como el stop loss.
Al determinar la tendencia en un marco de tiempo más largo y establecer un nivel de stop loss más preciso, la estrategia tiene como objetivo obtener ganancias de manera más eficiente.
La estrategia tiene una lógica clara de conducir tendencias en marcos de tiempo más altos utilizando el indicador SAR para localizar reversiones y establecer stop loss. Las señales de entrada y la gestión de riesgos podrían mejorarse aún más. Con optimizaciones en áreas como entradas, paradas y dimensionamiento de posición, puede volverse más estable y rentable.
/*backtest start: 2023-01-09 00:00:00 end: 2024-01-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy ("SAR alternating timeframe", overlay=true) //resolution res1=input("15", title="Resolution") res2=input("D", title="Resolution") res3=input("W", title="Resolution") res4=input("M", title="Resolution") //output functions out = sar(0.02,0.02,0.2) // request.security SAR1 = request.security(syminfo.tickerid, res1, out) SAR2 = request.security(syminfo.tickerid, res2, out) SAR3 = request.security(syminfo.tickerid, res3, out) SAR4 = request.security(syminfo.tickerid, res4, out) //Plots //plot(SAR1 , title="SAR 15", color = red, linewidth = 2) //plot(SAR2 , title="SAR D", color = green, linewidth = 3) plot(SAR3 , title="SAR W", color =blue, linewidth = 4) //plot(SAR4 , title="SAR W", color =purple, linewidth = 5)) ///////////////////////////////////////////////////////////////////// //trade if (SAR3 >= high) strategy.entry("ParLE", strategy.long, stop=SAR3, comment="ParLE") else strategy.cancel("ParLE") if (SAR3 <= low) strategy.entry("ParSE", strategy.short, stop=SAR3, comment="ParSE") else strategy.cancel("ParSE")