Эта стратегия, называемая динамической двойной экспоненциальной скользящей серединой, является количественной торговой стратегией, основанной на двойной экспоненциальной скользящей середине (DEMA). Эта стратегия производит сигнал покупки и продажи на основе значения TSI и его сигнальной линии.
Основным показателем стратегии является индекс истинной силы (TSI).
TSI = 100 * (PC1 / PC2)
PC1 и PC2 представляют собой двойные скользящие средние индексы изменения цены и двойные скользящие средние индексы абсолютных значений изменения цены. Двойные скользящие средние индексы рассчитываются путем применения к изменению цены скользящего среднего индекса на некоторое время, а затем к полученному скользящему среднему индексу скользящего среднего индекса на некоторое более короткое время.
После вычисления значения TSI, стратегия также вычисляет сигнальную линию значения TSI. Сигнальная линия определяется как показательная скользящая средняя за определенный период значения TSI. При фактической торговле стратегия определяет рыночные тенденции и генерирует торговый сигнал, наблюдая отношение значения TSI к сигнальной линии.
Другая особенность этой стратегии заключается в том, что размер сделки динамически корректируется. В коде стратегии в качестве входных параметров устанавливается начальный капитал и риск-порог. Эти параметры, в сочетании с ценой акций в то время, динамически рассчитывают количество сделок или риск-порог на каждый раз.
Динамическая стратегия движущихся средних двойных индексов имеет ряд преимуществ:
Он использует индикатор ТСИ, который применяет двойную гладкость индекса, что позволяет ему быть менее чувствительным к рыночному шуму и производить более точные сигналы.
Он основан на проверенном принципе, что перекрестные индикаторы и их сигнальные линии генерируют торговые сигналы. Это устраняет многие ложные сигналы.
Стратегия корректирует размер позиции в зависимости от динамики рискового бюджета. Это помогает предотвратить чрезмерную торговлю и эмоциональные операции.
Он применяется в повседневных и еженедельных временных рамках, подходит для торговли на колебаниях и торговли на позиции.
Благодаря своей простой логике ввода/вывода, она легко реализуется в роботах и других торговых системах.
Не так много параметров, которые нужно настроить, что делает оптимизацию системы простой.
Эти преимущества в совокупности делают его мощной и многофункциональной торговой стратегией для биржевых трейдеров. Осторожная гладкая обработка и размещение позиций помогают предотвратить ложные сигналы и большие потери.
Несмотря на много преимуществ, динамическая стратегия движущихся средних двойных индексов имеет некоторые риски, как и большинство стратегий акций:
Поскольку ТСИ и сигнальные линии основаны на исторических данных о ценах, всегда существует риск ошибочного сигнала, особенно в условиях высокой волатильности рынка.
Если рынок колеблется вокруг нулевой линии индикатора TSI, то может произойти обратная коррекция, которая может привести к убыткам.
Если тенденция сохранится, TSI может преждевременно изменить тренд и потерять прибыль.
Из-за действия рычагов может возникнуть убыток, превышающий установленные пределы риска.
Однако эти риски могут быть смягчены с помощью применения таких аспектов, как размер позиции, остановка и другие методы управления рисками. Кроме того, параметры и фильтры могут быть дополнительно оптимизированы для максимальной эффективности в различных рыночных условиях.
Некоторые идеи для оптимизации этой стратегии включают в себя:
Тестирование различных комбинаций двойных сглаживающих параметров в поисках комбинаций, которые могут создавать более точные торговые сигналы. Можно настроить параметры длинного и короткого цикла для оптимизации.
Добавление фильтров, основанных на волатильности, объеме торгов или других показателях, чтобы уменьшить ненужные торговые сигналы. Это может снизить частоту торговли и повысить прибыльность каждой сделки.
Добавление логики стоп-потерей. Например, стоп-потери при пересечении нулевой оси значений ТСИ. Это позволяет уменьшить ненужные потери.
Оценка эффективности различных видов торговли, таких как индексы, товары и т. д., в рамках стратегии. Выбор наиболее эффективных видов торговли.
Выборная фильтрация торговых сортов. Например, оценка ликвидности сортов, показателей волатильности, выбор сортов с высоким рейтингом параметров для торговли.
Использование методов машинного обучения Как проводить прогрессивный анализ Выбор оптимального параметрового сочетания. Это может уменьшить предвзятость, вызванную искусственным выбором, и получить более оптимальные параметры.
В зависимости от различных рыночных условий используются множественные наборы параметров и динамически переключаются. Например, более активные комбинации параметров могут использоваться в бычьем рынке, а в медвежьем - более консервативные.
Испытание и оптимизация всех вышеперечисленных аспектов позволит еще больше повысить стабильность и доходность стратегии.
В целом, эта стратегия, основанная на двойной индексной гладкости ТСИ, создает относительно стабильную и надежную стратегию торговли акциями. Динамическая корректировка размеров позиций позволяет эффективно контролировать общий уровень риска.
Конечно, как и большинство стратегий количественного трейдинга, эта стратегия имеет определенные ограничения, главным образом, она подвержена воздействию сильных колебаний рынка. Кроме того, выбор параметров и условия фильтрации также нуждаются в дальнейшем тестировании и оптимизации для повышения адаптивности и прибыльности на сложных изменчивых рынках.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © shankardey7310
//@version=5
strategy("TSI STOCKS", shorttitle="TSI", overlay=true)
initialCapital = input(10000, title="Initial Capital")
riskPercent = input(1, title="Risk Percentage") / 100
longLength = input(12, title="Long Length")
shortLength = input(9, title="Short Length")
signalLength = input(12, title="Signal Length")
price = close
pc = ta.change(price)
double_smooth(src, long, short) =>
first_smooth = ta.ema(src, long)
ta.ema(first_smooth, short)
double_smoothed_pc = double_smooth(pc, longLength, shortLength)
double_smoothed_abs_pc = double_smooth(math.abs(pc), longLength, shortLength)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi_signal = ta.ema(tsi_value, signalLength)
riskAmount = (initialCapital * riskPercent) / close
if (tsi_value > tsi_signal and tsi_value[1] <= tsi_signal[1])
strategy.entry("Long", strategy.long)
if (tsi_value < tsi_signal and tsi_value[1] >= tsi_signal[1])
strategy.close("Long")
plot(tsi_value, title="True Strength Index", color=#2962FF)
plot(tsi_signal, title="Signal", color=#E91E63)
hline(0, title="Zero", color=#787B86)