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


Дата создания: 2023-09-20 11:35:30 Последнее изменение: 2023-09-20 11:35:30
Копировать: 1 Количество просмотров: 688
1
Подписаться
1617
Подписчики

Обзор

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

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

Рассчитывайте медленно и быстро две средние линии SMA, а также среднюю линию ценового канала. Цикл быстрой линии составляет 5, цикл медленной линии - 20.

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

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

Эта стратегия использует одновременно две средние линии SMA и ценовые каналы для определения направления тренда, чтобы избежать заблуждения ложными прорывами. И добавляет цвет сущности K-линии для определения фильтрации ложных сигналов.

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

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

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

Можно соответствующим образом скорректировать параметры цикла 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)