Эта стратегия основана на индикаторах импульса прямоугольного канала и двойной скользящей средней, которая реализует относительно полную систему торговли акциями. Стратегия сначала использует быструю EMA и медленную EMA для построения двойных движущихся средних торговых сигналов. Затем, в сочетании с индикатором прямоугольного канала, она дополнительно проверяет торговые сигналы для достижения более точного входа. Кроме того, стратегия также использует индикатор SAR для оказания помощи в оценке направления тренда.
Вычислить скользящие средние скорости быстрой EMA с периодом 5 дней и медленной EMA с периодом 50 дней.
Преобразовать EMA в TEMA (Triple Exponential Moving Average) с использованием взвешенного метода расчета TEMA
Когда быстрая TEMA пересекается над медленной TEMA, генерируется сигнал покупки; когда быстрая TEMA пересекается ниже медленной TEMA, генерируется сигнал продажи.
Вычислить ширину ценового канала, чтобы сформировать области канала. Торговые сигналы рассматриваются только тогда, когда цены проходят через канал. Это может отфильтровать ложные сигналы и проверить реальное начало тренда.
Индикатор SAR определяет направление общего тренда, в сочетании с двойными движущимися средними торговыми сигналами, может избежать ненужных обратных операций.
Сочетание двойного перекрестка скользящей средней и прорыва канала может эффективно идентифицировать начало тренда, фильтровать шум и сделать сигналы покупки и продажи более точными и надежными.
Кривая TEMA более чувствительна, чем кривая EMA и может быстрее улавливать изменения цен.
Сочетание нескольких показателей может сформировать механизм проверки между показателями, чтобы избежать ограничений одного показателя и сделать стратегию более всеобъемлющей и надежной.
Параметры стратегии гибкие, циклы EMA, ширины каналов и т. д. могут быть скорректированы и оптимизированы в соответствии с рыночными условиями для повышения адаптивности.
Существует вероятность резких колебаний цен на акции в краткосрочной перспективе, что может легко спровоцировать стоп-лосс.
Неожиданные события могут вызвать ценовые разрывы, которые не могут торговаться по ожидаемым ценам.
Двойные пересечения скользящих средних не могут полностью избежать ложных сигналов, все еще существует определенный уровень ошибочного суждения.
Неправильное настройка параметров может привести к чрезмерной частоте или задержке торговых сигналов.
Для проверки можно объединить больше показателей, таких как KD и MACD, чтобы сделать стратегию более всеобъемлющей и надежной.
Динамические циклы могут быть установлены для корректировки параметров EMA и Channel в зависимости от степени волатильности рынка, что делает стратегию более гибкой.
Модели машинного обучения могут быть созданы для обучения большого количества исторических данных для автоматической оптимизации настроек параметров и сокращения ручного вмешательства.
Анализ текста и суждение о настроении новостей могут быть объединены, чтобы избежать ненужной торговли при выпуске важных новостей.
Эта стратегия формирует торговые сигналы с помощью быстрого медленного перекрестка скользящей средней TEMA, а затем проверяет их с помощью ценового канала и индикатора SAR, который может эффективно идентифицировать начало тенденций цен на акции и совершать операции по покупке и продаже на разумных позициях. Комбинация нескольких индикаторов для проверки друг друга может улучшить надежность сигналов и является относительно надежной и эффективной стратегией торговли акциями.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TEMA_System_SAR", overlay=true) //Collect inputs parameters fastEmaPeriod = input(5, minval=1, title="Fast TEMA Period") slowEmaPeriod = input(50, minval=1, title="Slow TEMA Periods") // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 4, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2010, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2000) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 09, 15) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 15, 30) // backtest finish window window() => true fastEma = ema(close, fastEmaPeriod) slowEma = ema(close, slowEmaPeriod) //convert EMA into TEMA ema1 = ema(close, fastEmaPeriod) ema2 = ema(ema1, fastEmaPeriod) ema3 = ema(ema2, fastEmaPeriod) fastTEMA = 3 * (ema1 - ema2) + ema3 // convert EMA into TEMA ema4 = ema(close, fastEmaPeriod) ema5 = ema(ema1, fastEmaPeriod) ema6 = ema(ema2, fastEmaPeriod) slowTEMA = 3 * (ema4 - ema5) + ema6 buy = close > fastTEMA sell = close < fastTEMA plot(fastTEMA, title = 'fast TEMA', linewidth=2, color=white) plot(slowTEMA, title = 'slow TEMA', linewidth=2, color=yellow) strategy.entry("long",strategy.long, when = window() and buy) strategy.entry("short", strategy.short, when = window() and sell)