Индикаторы импульса и стратегии следования за трендом


Дата создания: 2024-01-29 16:38:22 Последнее изменение: 2024-01-29 16:38:22
Копировать: 3 Количество просмотров: 580
1
Подписаться
1617
Подписчики

Индикаторы импульса и стратегии следования за трендом

Обзор

Эта стратегия объединяет динамику и трендовый отслеживание, чтобы идентифицировать сильные тенденции к росту или падению цен на акции в среднесрочной перспективе, и вступает в игру на начальном этапе тренда. Внутренняя стратегия сначала рассчитывает 20-дневный индикатор движения цен, а затем обрабатывает стандартизированные количественные значения, полученные в диапазоне от 0 до 1.

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

Центральным показателем стратегии является 20-дневная динамическая разница в цене. Динамическая разница определяется как: ((Цена закрытия сегодня - цена закрытия 20 дней назад) / цена закрытия 20 дней назад. Этот показатель отражает падение цены за 20 дней.

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

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

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

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

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

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

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

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

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

Направление оптимизации

Стратегия включает в себя следующие основные направления оптимизации:

  1. Добавить больше показателей для комплексного суждения. Например, MACD, KD, Брин-пояса и т. Д. Это может проверить эффективность сигналов динамики, чтобы избежать ошибочных сигналов.

  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)