Стратегия следования за трендом, основанная на ATR и стоп-лоссах коррекции Фибоначчи


Дата создания: 2024-02-28 17:09:12 Последнее изменение: 2024-02-28 17:09:12
Копировать: 0 Количество просмотров: 993
1
Подписаться
1617
Подписчики

Стратегия следования за трендом, основанная на ATR и стоп-лоссах коррекции Фибоначчи

Обзор

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

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

  1. Вычислить ATR и ATR-стоп. ATR-стоп получается умножением ATR на один фактор (например, 3,5).
  2. Расчет трех линий фибоначевого отступления в качестве целевого стоп-линий. Локализация линий фибоначевого отступления является соотношением фибоначевых отступлений ATR от стоп-линий к новым высоким/новым низким точкам (например, 61,8%, 78,6%, 88,6%).
  3. Когда цена прорывает ATR, она отступает от остановки, создавая сигнал покупки/продажи, чтобы отследить тренд.
  4. Целью остановки является три линии отступления Фибоначчи.

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

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

Стратегический риск

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

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

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

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

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

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

//@version=5
strategy("ATR TrailStop with Fib Targets", overlay=true)

// Input parameters
atrPeriod = input(5, title="ATR Period")
ATRFactor = input(3.5, title="ATR Factor")
Fib1Level = input(61.8, title="Fib1 Level")
Fib2Level = input(78.6, title="Fib2 Level")
Fib3Level = input(88.6, title="Fib3 Level")

// ATR Calculation
atrValue = ta.atr(atrPeriod)

// ATR TrailStop Calculation
loss = ATRFactor * atrValue
trendUp = close[1] > close[2] ? (close - loss > close[1] ? close - loss : close[1]) : close - loss
trendDown = close[1] < close[2] ? (close + loss < close[1] ? close + loss : close[1]) : close + loss
trend = close > close[2] ? 1 : close < close[2] ? -1 : 0
trailStop = trend == 1 ? trendUp : trendDown

// Fibonacci Levels Calculation
ex = trend > trend[1] ? high : trend < trend[1] ? low : na
fib1 = ex + (trailStop - ex) * Fib1Level / 100
fib2 = ex + (trailStop - ex) * Fib2Level / 100
fib3 = ex + (trailStop - ex) * Fib3Level / 100

// Plotting
plot(trailStop, title="TrailStop", color=color.red)
plot(fib1, title="Fib1", color=color.white)
plot(fib2, title="Fib2", color=color.white)
plot(fib3, title="Fib3", color=color.white)

// Buy and Sell Signals
longCondition = close > trailStop and close[1] <= trailStop
shortCondition = close < trailStop and close[1] >= trailStop

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)