Двойная тенденция SMA в соответствии со стратегией

Автор:Чао Чжан, Дата: 2023-09-20 11:35:30
Тэги:

Обзор

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

Логика стратегии

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

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

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

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

Настраиваемые параметры позволяют гибко настраивать длинные/короткие условия.

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

Сверхзависимость от линий SMA может генерировать чрезмерные ложные сигналы во время диапазонов.

Настройка периодов SMA или включение других технических индикаторов могут фильтровать сигналы. Индикаторы объема также могут обеспечить дополнительное понимание. Размер позиций также может быть оптимизирован на основе рыночных условий.

Руководство по оптимизации

  1. Испытывайте различные комбинации быстрой и медленной SMA, чтобы найти оптимальные параметры.

  2. Добавление громкости и других показателей для проверки сигнала.

  3. Включить другие технические показатели для формирования стратегии ансамбля.

  4. Установите динамическое размещение позиций для оптимизации управления капиталом.

  5. Применение машинного обучения для прогнозирования ценовых тенденций и точек перемен.

  6. Оптимизируйте стратегии стоп-лосса для ограничения потерь.

Резюме

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


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Больше