Стратегия мгновенной линии тренда Эллса
Обзор
Стратегия мгновенной линии тренда Элерса была предложена Джоном Элерсом в его книге «Контрольный анализ акций и фьючерсов». Эта стратегия использует технические индикаторы для определения мгновенного тренда акций или фьючерсов и открывает позиции при развороте тренда.
Принцип стратегии
Основой стратегии является расчет мгновенной линии тренда (IT). Формула расчета IT:
it := (a-((a*a)/4.0))*src+0.5*a*a*src[1]-(a-0.75*a*a)*src[2]+2*(1-a )*it[1]-(1-a )*(1-a )*it[2]
где src — цена, a — коэффициент сглаживания, значение по умолчанию 0.07. Эта формула представляет собой фильтр второго порядка, который сглаживает цену и генерирует тренд.
Другой ключевой индикатор — линия запаздывания (lag), рассчитываемая по формуле:
lag = 2.0 * it - nz(it[2])
Эта линия отстает от IT на один период. Когда цена пересекает линию запаздывания снизу вверх, это сигнализирует о развороте тренда, и открывается длинная позиция; когда цена пересекает линию запаздывания сверху вниз, это сигнализирует о развороте тренда, и открывается короткая позиция.
Кроме того, стратегия включает стоп-лоссы для контроля рисков.
Анализ преимуществ
Стратегия обладает следующими преимуществами:
- Использование линии IT для идентификации тренда позволяет эффективно фильтровать рыночный шум и повышать качество сигналов.
- Применение фильтра второго порядка обеспечивает широкие возможности оптимизации параметров и высокую настраиваемость.
- Комбинация с линией запаздывания для генерации торговых сигналов позволяет избежать частого открытия и закрытия позиций внутри тренда.
- Настройка стоп-лоссов для контроля рисков позволяет задать процент стоп-лосса.
- Четкая структура кода облегчает понимание и модификацию.
Анализ рисков
Стратегия также содержит некоторые риски:
- Неправильная настройка параметров IT и линии запаздывания может привести к ложным сигналам.
- Неправильная настройка стоп-лосса может привести к преждевременному выходу из позиции или чрезмерному размеру стопа.
- Высокая частота сделок может увеличить влияние торговых издержек на прибыль.
- Длительное удержание концентрированных позиций может усилить эффект мультипликации и повлиять на доходность.
Эти риски можно снизить следующими методами:
- Применение алгоритмов машинного обучения для оптимизации параметров.
- Настройка адаптивных точек стоп-лосса.
- Соответствующая корректировка размера открываемых позиций для снижения частоты сделок.
- Установка стоп-лосса по времени удержания позиции.
Направления оптимизации
Стратегию можно оптимизировать по следующим направлениям:
- Тестирование влияния различных параметров фильтра на результаты для поиска оптимальных параметров.
- Попытка комбинировать с другими индикаторами для фильтрации торговых сигналов и повышения их качества.
- Оптимизация логики открытия позиций, увеличение размера позиции на этапе ускорения тренда.
- Настройка адаптивной стратегии стоп-лосса, корректировка точки стоп-лосса в зависимости от волатильности рынка.
- Проведение анализа временных рядов для оценки влияния времени и периода торговли на результаты.
Заключение
В целом, стратегия мгновенной линии тренда Элерса использует технические индикаторы для определения реального тренда акций/фьючерсов и открывает позиции при развороте тренда. Она обладает такими преимуществами, как эффективная фильтрация шума, высокая настраиваемость параметров, четкая логика генерации сигналов и встроенный контроль рисков. Путем дальнейшей оптимизации выбора параметров, фильтрации сигналов, размера позиций и настройки стоп-лосса эта стратегия может показать лучшие результаты. Четкая структура кода также облегчает ее понимание и модификацию. В целом, это эффективная система отслеживания, которую стоит протестировать и улучшить.
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ehlers Instantaneous Trendline Strategy", shorttitle = "Ehlers Instantaneous Trendline Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, backtest_fill_limits_assumption = 1)
src = input(hl2, title="Source")
a = input(0.07, title="Alpha", step=0.01) - 1

