Стратегия скользящего стоп-лосса Double ATR


Дата создания: 2024-01-31 17:10:32 Последнее изменение: 2024-01-31 17:10:32
Копировать: 3 Количество просмотров: 921
1
Подписаться
1617
Подписчики

Стратегия скользящего стоп-лосса Double ATR

Обзор

Двойная стратегия ATR-стоп-стоп является короткой линейной торговой стратегией, основанной на средней реальной волновой величине (ATR). Эта стратегия одновременно устанавливает две линии быстрого ATR и две линии медленного ATR, чтобы судить о входе и выходе на основе пересечения двух линий остановки.

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

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

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

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

Двойная стратегия ATR имеет следующие преимущества:

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

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

Однако эта стратегия также несет в себе некоторые риски:

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

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

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

Строки, по которым можно оптимизировать двойную стратегию остановки убытков с использованием ATR:

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

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun

//@version=4
strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true)

/////////notes////////////////////////////////////////
// This is based on the ATR trailing stop indicator //
// width addition of two levels of stops and        //
// different interpretation.                        //
// This is a fast-reacting system and is better     //
// suited for higher volatility markets             //
//////////////////////////////////////////////////////

SC = input(close, "Source", input.source)

// Fast Trail //
AP1 = input(5, "Fast ATR period", input.integer)  // ATR Period
AF1 = input(0.5, "Fast ATR multiplier", input.float)  // ATR Factor
SL1 = AF1 * atr(AP1)  // Stop Loss
Trail1 = 0.0
Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1)))

// Slow Trail //
AP2 = input(10, "Slow ATR perod", input.integer)  // ATR Period
AF2 = input(2, "Slow ATR multiplier", input.float)  // ATR Factor
SL2 = AF2 * atr(AP2)  // Stop Loss
Trail2 = 0.0
Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2)))

// Bar color for trade signal //
Green = Trail1 > Trail2 and close > Trail2 and low > Trail2
Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2
Red = Trail2 > Trail1 and close < Trail2 and high < Trail2
Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2

// Signals //
Bull = barssince(Green) < barssince(Red)
Bear = barssince(Red) < barssince(Green)

Buy = crossover(Trail1, Trail2)
Sell = crossunder(Trail1, Trail2)

TS1 = plot(Trail1, "Fast Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.green : color.red, transp=90)

plotcolor = input(true, "Paint color on chart", input.bool)

bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na)
barcolor(bcl)

if Buy
    strategy.entry("Buy", strategy.long, comment="Buy")
    
if Sell
    strategy.entry("Sell", strategy.short, comment="Sell")