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


Дата создания: 2024-02-04 17:40:20 Последнее изменение: 2024-02-04 17:40:20
Копировать: 0 Количество просмотров: 620
1
Подписаться
1617
Подписчики

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

Обзор

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

Эта стратегия предназначена в основном для трейдеров, предпочитающих систематизированный метод торговли. Она обеспечивает четкие сигналы входа и выхода на рынок. Захватывая рыночные тенденции, эта стратегия помогает достичь финансовых целей трейдеров.

Стратегический принцип

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

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

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

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

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

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

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

Направление оптимизации стратегии

  • Оптимизация параметров показателя SAR (продолжительность шага, начальное значение, максимальное значение и т. д.)
  • В сочетании с другими индикаторами обратного сигнала (например, RSI, MACD и т. Д.)
  • Условное увеличение логики (например, объем сделок) фильтрация ошибочных сигналов
  • Рассмотреть возможность перехода от фиксированной к отслеживаемой стоп-стратегии
  • Рассмотреть возможность автоматической корректировки размеров позиций

Подвести итог

Эта стратегия предоставляет торговую систему, использующую автоматизацию параболического 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)