В этой статье представлена стратегия отслеживания обратного движения на основе индикатора Parabolic Stop and Reverse (SAR). Эта стратегия использует индикатор Parabolic SAR для выявления потенциальных обратных тенденций на рынке Nifty Futures для автоматизированной торговли отслеживанием тренда.
Стратегия в основном подходит для трейдеров, которые предпочитают систематический подход к торговле, обеспечивающий четкие сигналы входа и выхода.
Стратегия использует параболический индикатор SAR для определения направления тренда цены. В восходящем тренде значение SAR находится ниже цены и постепенно поднимается по мере появления новых максимумов; в нисходящем тренде значение SAR находится выше цены и постепенно снижается по мере появления новых минимумов.
Когда значение SAR пересекается выше или ниже цены, это указывает на потенциальное изменение тренда, и стратегия будет занимать соответствующие короткие или длинные позиции для захвата нового направления тренда.
В частности, после первоначального расчета текущего значения SAR и коэффициента ускорения стратегия продолжает отслеживать новые максимумы / минимумы и соответствующим образом корректирует значение SAR. На подтвержденной панели, если в восходящем тренде, она занимает короткую позицию ниже значения SAR; если в нисходящем тренде, она занимает длинную позицию выше значения SAR.
Стратегия предоставляет автоматизированную систему для захвата отмены тренда рынка с использованием индикатора Parabolic SAR. Она дает четкие сигналы входа и выхода для принятия торговых решений, помогая извлечь выгоду из отслеживания тренда. Но такие вопросы, как ложные сигналы, риски остановки потери, также нуждаются в внимании. При постоянной оптимизации она имеет потенциал стать надежным методом отслеживания тренда.
/*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)