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