Стратегия отслеживания изменения импульса SAR

Автор:Чао Чжан, Дата: 2024-02-04 17:40:20
Тэги:

img

Обзор

В этой статье представлена стратегия отслеживания обратного движения на основе индикатора Parabolic Stop and Reverse (SAR). Эта стратегия использует индикатор Parabolic SAR для выявления потенциальных обратных тенденций на рынке Nifty Futures для автоматизированной торговли отслеживанием тренда.

Стратегия в основном подходит для трейдеров, которые предпочитают систематический подход к торговле, обеспечивающий четкие сигналы входа и выхода.

Логика стратегии

Стратегия использует параболический индикатор SAR для определения направления тренда цены. В восходящем тренде значение SAR находится ниже цены и постепенно поднимается по мере появления новых максимумов; в нисходящем тренде значение SAR находится выше цены и постепенно снижается по мере появления новых минимумов.

Когда значение SAR пересекается выше или ниже цены, это указывает на потенциальное изменение тренда, и стратегия будет занимать соответствующие короткие или длинные позиции для захвата нового направления тренда.

В частности, после первоначального расчета текущего значения SAR и коэффициента ускорения стратегия продолжает отслеживать новые максимумы / минимумы и соответствующим образом корректирует значение SAR. На подтвержденной панели, если в восходящем тренде, она занимает короткую позицию ниже значения SAR; если в нисходящем тренде, она занимает длинную позицию выше значения SAR.

Анализ преимуществ

  • Захватывает изменения на рынке с использованием классического индикатора Parabolic SAR
  • Предоставляет четкие систематические сигналы входа и выхода
  • Помогает отслеживать тенденции и фиксировать дополнительное движение цен
  • Автоматизированная система торговли без ручного принятия решений

Анализ рисков

  • Сигналы SAR-индикаторов могут быть не на 100% надежными, могут возникать ложные сигналы
  • Неудачные отмены могут привести к остановке потерь
  • Влияние рассмотрения потребностей по истечении срока действия контракта
  • Влияние затрат на торговлю на прибыльность стратегии

Руководство по оптимизации

  • Оптимизировать параметры SAR (этап, начальное значение, максимальное значение и т.д.)
  • Комбинировать другие индикаторы реверсии (RSI, MACD и т.д.) для подтверждения реверсии
  • Добавить логику условий (объем и т. д.) для фильтрации ложных сигналов
  • Подумайте об использовании отслеживающих остановок вместо фиксированных
  • Подумайте об автоматическом регулировании размеров позиций

Заключение

Стратегия предоставляет автоматизированную систему для захвата отмены тренда рынка с использованием индикатора 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)


Больше