Эта стратегия основана на чередующихся операциях индикатора SAR в разные временные рамки. Стратегия рассчитывает индикатор SAR в 15-минутные, ежедневные, еженедельные и ежемесячные временные рамки и торгует в еженедельные временные рамки.
Индикатор параболического SAR (SAR) представляет собой параболический SAR, который оценивает направление тренда, рассчитывая взаимосвязь между текущей ценой и историческими ценами.
Эта стратегия рассчитывает значения SAR в 15-минутные, ежедневные, еженедельные и ежемесячные временные рамки соответственно.
SAR = Previous SAR + Acceleration Factor * (Highest Price - Previous SAR) # Uptrend
SAR = Previous SAR + Acceleration Factor * (Lowest Price - Previous SAR) # Downtrend
Первоначальный коэффициент ускорения установлен на уровне 0,02 и постепенно увеличивается до максимума 0,2 по мере продления тенденции.
Стратегия генерирует торговые сигналы в недельный временной промежуток. Она длится, когда еженедельный SAR пересекает верхнюю цену, при этом значение SAR является стоп-лосом. Она становится короткой, когда SAR пересекает нижнюю цену, при этом SAR является стоп-лосом.
Определяя тенденцию в более длительный период времени и устанавливая более точный уровень стоп-лосса, стратегия направлена на более эффективную прибыль.
Стратегия имеет четкую логику управления тенденциями на более высоких временных отрезках с использованием индикатора SAR для определения отклонений и установки стоп-лосса. Сигналы входа и управление рисками могут быть еще улучшены. С оптимизацией в таких областях, как входы, остановки и размещение позиций, она может стать более стабильной и прибыльной.
/*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")