Эта стратегия - это стратегия, основанная на последовательности трендов, основанная на многочасовых экспоненциальных скользящих средних значениях (EMAs) и фильтре EMA на 200 периодов. Основная идея заключается в использовании EMA на разных временных отрезках для определения направления тренда рынка и установления длинных позиций, когда тенденция растет, а цена выше 200-часовой EMA. Это гарантирует, что сделки вводятся только во время сильных восходящих тенденций, направленные на улавливание устойчивых восходящих движений при управлении рисками с определенными механизмами остановки потерь и получения прибыли.
Стратегия использует три временных рамы: 5-минутный, 15-минутный и 30-минутный, рассчитывая быстрые и медленные EMA для каждого из них. Сравнивая быстрые и медленные EMA для каждого временного рама, можно определить направление тренда. Сигналы тренда из трех временных рамок затем суммируются для получения комбинированного сигнала тренда. Когда комбинированный сигнал тренда равен 3 (что указывает на восходящий тренд во всех временных рамах) и текущая цена закрытия выше 200-периодного EMA на 5-минутном временном раме, стратегия входит в длинную позицию. Позиция закрывается, когда комбинированный сигнал тренда падает ниже 3 или цена падает ниже 5-минутного 200-периодного EMA.
Эта стратегия определяет направление тренда путем сравнения EMA на нескольких временных отрезках, используя 200-периодную EMA в качестве фильтра тренда. Она устанавливает длинные позиции, когда тенденция явно повышается, а цена выше долгосрочной скользящей средней, с целью захвата сильных восходящих тенденций. Строгие условия входа и выхода и фиксированные уровни стоп-лосса и прибыли помогают управлять рисками. Однако стратегия может медленно реагировать на поворотные моменты тренда и имеет ограничения в решении внезапной волатильности рынка из-за фиксированных уровней стоп-лосса и прибыли. В будущем адаптируемость и надежность стратегии могут быть улучшены путем введения большего количества временных рамок, оптимизации уровней стоп-лосса и берущей прибыли, включения дополнительных торговых сигналов, оптимизации параметров и т. д. Это позволит стратегии лучше использовать рыночные возможности при одновременном контроле рисков.
/*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")