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

Автор:Чао Чжан, Дата: 2024-01-18 16:04:51
Тэги:

img

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

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

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

Эта стратегия использует индикатор SMA для определения направления ценового тренда и устанавливает позиции стоп-лосса с помощью индикатора ATR для отслеживания тренда.

III. Принцип стратегии

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

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

2. Прекратить установку потерь

Использовать значение индикатора ATR, умноженное на множитель установленного стоп-потери, как позицию стоп-потери.

3. Прекратите обновление потерь

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

4. Выходные сигналы

Активизируйте стоп-лосс, когда цена достигнет линии стоп-лосса.

IV. Преимущества стратегии

1. Сильная способность отслеживать тенденции

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

2. Хорошее управление потреблением

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

3. Простая установка параметров

Только 3 параметра позволяют легко настраивать и оптимизировать.

V. Риски стратегии

1. Риск того, что стоп-лосс будет слишком свободным

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

2. Риски ложного вырыва

Ложные прорывы цены могут привести к отсутствию направления тренда.

3. Риски оптимизации параметров

Чрезмерная зависимость от оптимизации параметров может привести к приспособлению кривой.

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

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")


Больше