Стратегия следования за трендом, основанная на супертрендовых линиях


Дата создания: 2023-12-08 17:07:53 Последнее изменение: 2023-12-08 17:07:53
Копировать: 3 Количество просмотров: 606
1
Подписаться
1621
Подписчики

Стратегия следования за трендом, основанная на супертрендовых линиях

Обзор

Эта стратегия основана на среднем истинном диапазоне колебаний (Average True Range, ATR), которая используется для определения направления рыночных тенденций и дает торговый сигнал. Эта стратегия одновременно имеет двойную функцию определения тенденций и отслеживания тенденций и может использоваться в таких областях, как фондовые индексы, фьючерсы, иностранные валюты и цифровые валюты.

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

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

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

Стратегические преимущества

Основные преимущества этой стратегии заключаются в ее способности объединять определение и отслеживание тенденций. В частности, основные преимущества:

  1. Сверхтенденционная линия, построенная с использованием ATR, эффективно идентифицирует рыночные тенденции, фильтрует шум.
  2. Сверхтрендовые линии обладают определенной задержкой, которая помогает уменьшить ошибочный сигнал.
  3. Одновременно дает сигнал для определения тренда и для торговли.
  4. Параметризация может быть оптимизирована для более широкого рынка.
  5. Визуализация показателей, интуитивное определение текущего состояния тенденций.

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

Основные риски этой стратегии:

  1. Неправильная настройка параметров ATR может привести к тому, что линия сверхтенденции станет слишком чувствительной или отстанет.
  2. Невозможно полностью избежать воздействия шума, в отдельных случаях может возникнуть ошибочный сигнал.
  3. При резких колебаниях цены на криптовалюту снижают свою точность.
  4. Невозможно предсказать обратную точку, можно лишь отследить уже сложившуюся тенденцию.

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

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

В этой стратегии есть место для дальнейшей оптимизации:

  1. Автоматическая оптимизация параметров в сочетании с алгоритмами машинного обучения.
  2. Добавление индекса для оценки и проверки показателей, таких как скользящая средняя.
  3. Настройка стратегии стоп-лосс и оптимизация управления капиталом.
  4. Методы, такие как эмоциональные индикаторы, новостной анализ и т. д., позволяют прогнозировать потенциальное изменение тенденций.
  5. Для повышения точности суждений используйте технологии глубокого обучения для анализа большого количества исторических данных.

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

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

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

Исходный код стратегии
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend Strategy", overlay = true)

Periods = input(10, title="ATR Period")
src = input(hl2, title="Source")
Multiplier = input(3.0, title="ATR Multiplier", step=0.1)
changeATR = input(true, title="Change ATR Calculation Method?")
showsignals = input(true, title="Show Buy/Sell Signals?")
highlighting = input(true, title="Highlighter On/Off?")

atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2

up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)

longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white

fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)

alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")