Стратегия следования за трендом на основе нескольких таймфреймов с фильтром 200EMA — только длинные позиции

EMA
Дата создания: 2024-05-23 18:07:50 Последнее изменение: 2024-05-23 18:07:50
Копировать: 3 Количество просмотров: 443
1
Подписаться
1237
Подписчики

Стратегия следования за трендом на основе нескольких таймфреймов с фильтром 200EMA — только длинные позиции

Обзор

Эта стратегия является стратегией отслеживания тенденций, основанной на многократных временных промежутках, на перемещающихся средних показателях (EMA) и фильтрах 200-дневных EMA. Основная идея заключается в том, чтобы использовать EMA разных временных промежутков для определения направления тенденции рынка и создавать позиции, когда цена находится выше 200-дневных EMA. Таким образом, можно гарантировать, что торговля будет осуществляться только в условиях сильной восходящей тенденции, чтобы уловить продолжающуюся восходящую ситуацию, а также использовать механизмы остановки и убытков для контроля риска.

Стратегия использует три временные рамки: 5 минут, 15 минут и 30 минут, чтобы рассчитать быстрые и медленные ЭМА. Сравнивая быстрые и медленные ЭМА в каждом временном периоде, можно определить направление тренда в данном временном периоде.

Стратегический принцип

  1. Быстрая EMA (по умолчанию 9) и медленная EMA (по умолчанию 21) рассчитываются в 5-минутных, 15-минутных и 30-минутных временных рамках соответственно.
  2. 200-минутное EMA рассчитывается на 5-минутный временной рамок и используется в качестве фильтра.
  3. Для каждого временного фрейма сравните размеры быстрых и медленных ЭМА, быстрые - вверх, а медленные - вниз.
  4. Сложив вместе трендовые сигналы трех временных рамок, мы получим промежуток в[-3, 3] с обобщенным сигналом тренда.
  5. Открыть позицию, когда объединенный трендовый сигнал равен 3 (сильный рост) и текущая цена закрытия находится выше 5-минутного 200-минутного EMA.
  6. Прямая позиция, когда объединенный сигнал тренда меньше 3 (услабление тенденции к росту) или цена падает ниже 5-минутного 200-минутной ЭМА.
  7. При открытии позиции стоп-лост устанавливается на 1% ниже цены открытия позиции, а стоп-стоп - на 3% выше цены открытия позиции.

Анализ преимуществ

  1. Используя трендовые сигналы с нескольких временных рамок, можно более полно судить о тенденциях рынка и уменьшить количество ложных сигналов.
  2. 200-кратный фильтр EMA позволяет гарантировать, что торги будут проводиться только в сильных тенденциях к повышению, что повышает вероятность успеха.
  3. Строгие условия открытия позиций и стоп-стоп помогают контролировать риск и повышать риск-прибыль.
  4. Параметры настраиваются под различные рынки и стили торговли.

Анализ рисков

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

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

  1. Внедрение новых временных рамок или оптимизация существующих временных рамок для повышения точности и своевременности определения тенденций.
  2. Оптимизация стоп-стопов и стоп-позиций, например, введение стопов с отслеживанием потерь или динамических стопов для адаптации к различным рыночным условиям.
  3. Помимо сигналов тренда, ввод других сигналов, таких как объем торгов, динамика и т. Д., Формирует многофакторные условия для открытия позиции, повышает устойчивость стратегии.
  4. Оптимизация параметров, чтобы найти оптимальное сочетание параметров для текущего рынка.
  5. Рассмотреть возможность включения в механизм “деловой” и расширить его применение.

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

Стратегия определяет направление тренда, сравнивая ЭМА на несколько временных рамок, используя 200-летнюю ЭМА в качестве фильтра на тренд, и устанавливает многополюсные позиции, чтобы ухватиться за сильную волатильность, когда тренд явно вверх, а цена находится выше долгосрочной средней линии. Строгие условия открытия позиции и фиксированные стоп-стоп помогают контролировать риск. В будущем можно будет повысить адаптивность и устойчивость стратегий путем введения большего количества временных рамок, оптимизации стоп-лосс, добавления большего количества торговых сигналов, оптимизации параметров и т. Д., Что позволит лучше использовать рыночные возможности и контролировать риски.

Исходный код стратегии
/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
fast_length = input.int(9, title="Fast EMA Length", minval=1)
slow_length = input.int(21, title="Slow EMA Length", minval=1)
filter_length_200 = input.int(200, title="200 EMA Length", minval=1)
stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100
take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

// Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes
ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

// Calculate 200 EMA for the 5-minute timeframe
ema_200_5min = ta.ema(close, filter_length_200)

// Determine the trend for each timeframe
trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1
trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1
trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1

// Combine trend signals
combined_trend = trend_5min + trend_15min + trend_30min

// Define entry and exit conditions with 200 EMA filter
enter_long = combined_trend == 3 and close > ema_200_5min
exit_long = combined_trend < 3 or close < ema_200_5min

// Plot EMAs for the 5-minute timeframe
plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min")
plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min")
plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min")

// Strategy execution
if (enter_long)
    strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc))
if (exit_long)
    strategy.close("Long")