Индекс отклонения от тренда со стратегией скользящей средней

Автор:Чао Чжан, Дата: 2023-11-06 14:46:40
Тэги:

img

Обзор

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

Принципы

Основными этапами этой стратегии являются:

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

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

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

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

Риски

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

Улучшение

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

Заключение

Эта стратегия использует TSI для определения направления тренда в сочетании с ценовыми свечами для генерации торговых сигналов, которые могут эффективно улавливать тренд, покупая в восходящем тренде и продавая в нисходящем тренде.


/*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)

Больше