Стратегия динамического тренда

Автор:Чао Чжан, Дата: 2024-01-29 16:38:22
Тэги:

img

Обзор

Эта стратегия включает в себя индикаторы импульса и отслеживание тренда для определения среднесрочного восходящего или нисходящего тренда цен на акции и занятия позиций на начальной стадии тренда. Стратегия сначала вычисляет 20-дневный индикатор импульса цены, а затем обрабатывает его в нормализованное значение импульса в диапазоне от 0 до 1. Между тем 20-дневная простая скользящая средняя рассчитывается как представитель среднесрочной тенденции. Когда нормализованный импульс больше 0,5, а цена выше среднесрочной линии тренда, идите в длинную. Когда нормализованный импульс меньше 0,5, а цена ниже среднесрочной линии тренда, идите в короткую.

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

Основным показателем этой стратегии является 20-дневная разница в импульсе цены. Разница в импульсе определяется как: (сегодня закрытие закрытие 20 дней назад) / закрытие 20 дней назад. Этот показатель отражает процентное увеличение или снижение цены за последние 20 дней. Чтобы решить вопрос о сильно различных диапазонах цен между акциями, растительная разница в импульсе нормализуется до шкалы от 0 до 1 следующим процессом: сначала найдите максимальные и минимальные значения разницы в импульсе за последние 100 дней, затем вычислите процентное положение текущей разницы в этом диапазоне, в результате чего получится нормализованный показатель импульса от 0 до 1. Нормализация может лучше улавливать величину движения цен.

Кроме того, 20-дневная простая скользящая средняя включается для определения направления среднесрочного тренда. Кользящие средние являются визуально интуитивными инструментами для анализа тренда.

Сочетая индикатор нормализованного импульса и среднесрочное суждение о тренде, эта стратегия направлена на захват значительных бычьих и медвежьих стадий в среднесрочном горизонте. Логика заключается в следующем: если нормализованный импульс больше 0,5, это означает, что цена ускоряется с восходящим трендом в последнее время. Между тем, если цена остается выше 20-дневного MA, то среднесрочный по-прежнему является восходящим трендом. При этом условии идти на длинный. Наоборот, если нормализованный импульс падает ниже 0,5, это сигнализирует об ускоряющемся снижающемся тренде в последнее время. Кроме того, при цене ниже 20-дневного MA среднесрочный период является медвежьим. Тогда мы должны пойти на короткий.

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

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

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

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

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

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

Кроме того, механизм стоп-лосса относительно прост и может не полностью удерживать риски.

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

Вот некоторые основные направления оптимизации для этой стратегии:

  1. Ввести больше индикаторов для перекрестного исследования, таких как MACD, KD, Bollinger Bands и т. д. Это может помочь проверить достоверность сигналов импульса и избежать ложных сигналов.

  2. Динамически регулируйте уровни стоп-лосса, например, с помощью моделей ценообразования ATR или опционов.

  3. Оптимизировать периоды параметров. Текущие 20-дневные параметры могут быть проверены на улучшения.

  4. Дифференцированный порог покупок и продажи разницы импульса. В настоящее время для обоих используется 0,5. Оптимальные уровни могут отличаться.

  5. Добавить фильтр объема торговли для предотвращения ложных прорывов с недостаточным объемом.

Заключение

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


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Momentum Strategy, rev.2", overlay=true)

//
// Data
//
src = input(close)
lookback = input(20)
cscheme=input(1, title="Bar color scheme", options=[1,2])

//
// Functions
//
momentum(ts, p) => (ts - ts[p]) / ts[p]

normalize(src, len) =>
    hi  = highest(src, len)
    lo  = lowest(src, len)
    res = (src - lo)/(hi - lo)

//
// Main
//
price = close
mid = sma(src, lookback)
mom = normalize(momentum(price, lookback),100)

//
// Bar Colors
//
clr1 = cscheme==1?black: red
clr2 = cscheme==1?white: green
barcolor(close < open ? clr1 : clr2)

//
// Strategy
//
if (mom > .5 and price > mid )
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (mom < .5 and price < mid )
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Больше