Стратегия следования за трендом на основе SMA и ATR


Дата создания: 2024-01-18 16:04:51 Последнее изменение: 2024-01-18 16:04:51
Копировать: 0 Количество просмотров: 637
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе SMA и ATR

Название стратегии

Эта стратегия называетсяСтратегия следования за трендом на основе SMA и ATR

Обзор стратегии

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

Третье: принципы стратегии.

1. Входящий сигнал

(1) Делайте больше, когда цена закрытия повышается и выше SMA (2) Произойти дисконт, когда цена закрытия падает и ниже SMA

2. Параметры остановки

Умножьте значение показателя ATR на установленный стоп-мобиль в качестве стоп-позиции.

3. Остановка обновления

После закрытия каждой K-линии проверяется стоп-позиция и обновляется на стоп-значение, которое ближе к текущей цене.

4. Сигнал выхода

После того, как цена коснулась линии остановки, она активно прекратила убытки.

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

1. Умение отслеживать тенденции

Динамическая стоп-стратегия с использованием ATR позволяет автоматически отслеживать тренды.

2. Способность отступать

Строгие правила стоп-лосса помогают контролировать максимальный вывод из одной сделки.

3. Устройство параметров простое

Всего 3 параметра для удобства адаптации и оптимизации.

Пятое: стратегические риски.

1. Возможность чрезмерной снисходительности при остановке

Если стоп-множитель настроен слишком высоко, это может привести к тому, что стоп-позиции станут слишком расслабленными, что приведет к увеличению отказов.

2. Риски, связанные с ложным взломом

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

3. Параметры оптимизации риска

Избыточная зависимость от оптимизации параметров может привести к оптимизации кривой. Стабильность параметров следует тщательно оценивать.

Шестое: оптимизация стратегии

1. Оптимизация алгоритмов устранения убытков

Другие типы стоп-алгоритмов могут быть протестированы, такие как движущийся стоп, пропорциональный стоп и т. д.

2. Увеличение фильтрующих сигналов

Дополнительные показатели могут быть добавлены к фильтру фальшивого прорыва. Например, увеличение условий загрузки и т. д.

3. Оценка стабильности параметров

Приспособленность параметров к различным породам и периодам оценивается с помощью исторической ретроспекции.

VII. Заключение

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

Исходный код стратегии
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 17:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="SMA with ATR", overlay=true)

smaLen = input.int(100, title="SMA Length")

atrLen     = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)


smaValue  = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset


lowerCloses = close < close[1] and 
     close[1] < close[2] and
     close[2] < close[3]

enterLong = close > smaValue and 
     lowerCloses


longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
    close - stopValue
else
    math.max(close - stopValue, longStop[1])


higherCloses = close > close[1] and 
     close[1] > close[2] and
     close[2] > close[3]

enterShort = close < smaValue and 
     higherCloses


shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
    close + stopValue
else
    math.min(close + stopValue, shortStop[1])


plot(smaValue, color=#4169e1, linewidth=2, title="SMA")

plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
     style=plot.style_linebr, title="Long stop", linewidth=2)

plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
     style=plot.style_linebr, title="Short stop", linewidth=2)


if enterLong
    strategy.entry("EL", strategy.long)

if enterShort
    strategy.entry("ES", strategy.short)


if strategy.position_size > 0
    strategy.exit("SL Long", from_entry="EL", stop=longStop)

if strategy.position_size < 0
    strategy.exit("SL Short", from_entry="ES", stop=shortStop)


if enterLong
    strategy.cancel("Exit Short")

if enterShort
    strategy.cancel("Exit Long")