Индикатор отклонения тренда K-линия в сочетании со стратегией скользящей средней волны


Дата создания: 2023-11-06 14:46:40 Последнее изменение: 2023-11-06 14:46:40
Копировать: 0 Количество просмотров: 677
1
Подписаться
1617
Подписчики

Индикатор отклонения тренда K-линия в сочетании со стратегией скользящей средней волны

Обзор

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

Принципы

Стратегия состоит из следующих шагов:

  1. Изменения в цене pct
  2. Двойная HMA-глазировка pct дает double_smoothed_pc
  3. Вычислить двойной HMA абсолютного значения pct, получив double_smoothed_abs_pc
  4. Вычислить значение ТСИ:*(double_smoothed_pc / double_smoothed_abs_pc))
  5. Обработка значения ТСИ в виде HMA для получения tsihmaline
  6. Сравнение отношений между значениями TSI и TSI Moving Average, когда значения TSI выше Moving Average, как тенденция к росту, когда значения TSI ниже Moving Average, как тенденция к снижению
  7. При повышении тренда, если цены также растут, то создается сигнал к покупке
  8. Если цена снижается во время падения, это создает сигнал продажи.

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

Преимущества

  1. Двойная гладкая обработка HMA, эффективно отфильтровывает кратковременный шум и блокирует основные тенденции
  2. TSI в сочетании с его движущейся средней позволяет определить направление общей тенденции
  3. В сочетании с направлением цены на K-линии, предотвращение ложных прорывов, повышение надежности сигнала
  4. Параметры регулируемы, можно скорректировать параметры сглаживания в соответствии с рынком, чтобы адаптироваться к различным циклам
  5. График интуитивно понятен, зеленый - это тенденция к росту, красный - к снижению.

Риск

  1. При землетрясениях появляются многочисленные ошибочные сигналы
  2. При повороте тренда скользящая средняя отстает и может пропустить лучшую точку входа.
  3. Необходимость регулярной корректировки параметров в соответствии с изменениями рынка
  4. Данная стратегия основана только на отдельных показателях ТСИ и может быть оптимизирована в сочетании с другими показателями

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

  1. Фильтры могут быть добавлены, чтобы предотвратить ошибочные сигналы от колебаний.
  2. Другие показатели могут быть добавлены, чтобы подтвердить переломный момент в тренде.
  3. Параметры могут быть автоматически оптимизированы с помощью методов машинного обучения и т. Д.
  4. Можно ввести стратегию стоп-лосса, чтобы контролировать одиночные потери

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TSIHULLBOT", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=7)
price = input(title="Source",type=input.source,defval=open)
lineupper = input(title="Upper Line", type=input.integer, defval=250)
linelower = input(title="Lower Line", type=input.integer, defval=-250)
double_smooth(price, long, short) =>
    fist_smooth = hma(price, long)
    hma(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = (100 * (double_smoothed_pc / double_smoothed_abs_pc))*5
tsihmaline=(hma(tsi_value,signal))*5
clr = tsihmaline < tsi_value ? color.red : color.lime
clr2 = tsi_value < tsi_value[1] ? color.red : color.lime
i1=plot(lineupper+3, color=color.black, linewidth=3)
i2=plot(linelower+3, color=color.black, linewidth=3)
i3=plot(lineupper, color=clr)
i4=plot(linelower, color=clr)
trendv=tsihmaline/5.6
plot(trendv, linewidth=7,  color=color.black)
plot(trendv, linewidth=4,  color=color.yellow)
j1=plot(tsi_value, linewidth=5, color=color.black)
j2=plot(tsi_value[1], linewidth=5, color=color.black)
j3=plot(tsi_value, color=clr2)
j4=plot(tsi_value[1], color=clr2)
fill(i3,i4,color=clr,transp=90)
fill(j3,j4,color=clr2,transp=15)
longCondition = tsihmaline>tsihmaline[1] and price>price[1]
if (longCondition)
    strategy.entry("Buy ⤴️", strategy.long)
shortCondition = tsihmaline<tsihmaline[1] and price<price[1]
if (shortCondition)
    strategy.entry("Sell ⤵️", strategy.short)