Стратегия EMA Ribbon генерирует торговые сигналы путем вычисления экспоненциальных скользящих средних (EMAs) различных периодов и определения перекрестных связей между ними. Эта стратегия строит ленту из 8 EMA с различными периодами и использует перекрестный связь между кратковременной EMA и долгосрочной EMA для определения тенденции рынка и генерации торговых сигналов.
Основа этой стратегии состоит из 8 EMA: 20-периодической, 25-периодической, 30-периодической, 35-периодической, 40-периодической, 45-периодической, 50-периодической и 55-периодической. Эти 8 EMA образуют ленту, складывающуюся снизу вверх. Когда короткопериодическая EMA пересекает длиннопериодическую EMA, генерируется сигнал покупки. Когда короткопериодическая EMA пересекает длиннопериодическую EMA, генерируется сигнал продажи.
Например, когда 20-периодическая EMA пересекает 55-периодическую EMA, запускается сигнал покупки; когда 20-периодическая EMA пересекает 55-периодическую EMA, запускается сигнал продажи. EMA могут очень хорошо указывать на рыночную тенденцию. Эта стратегия идентифицирует преобладающую тенденцию с использованием нескольких перекресток EMA и генерирует соответствующие торговые сигналы.
Стратегия EMA Ribbon имеет следующие преимущества:
Использование нескольких EMA различных периодов позволяет более точно определить изменения рыночной тенденции.
Создание ленты с несколькими EMA делает торговые сигналы более ясными.
При включении как долгосрочных, так и краткосрочных ЭМА учитываются как долгосрочная тенденция, так и краткосрочные коррекции.
Стратегия позволяет большое пространство для оптимизации параметров путем корректировки периодов EMA и других параметров.
Логика стратегии проста и легко понять и реализовать.
Стратегия EMA Ribbon также сопряжена с некоторыми рисками:
Он может генерировать ложные сигналы, когда общая тенденция рынка неясна.Должны использоваться дополнительные индикаторы для подтверждения сигнала.
Высокая частота торгов увеличивает затраты на транзакции и сдвиги.
Неправильное настройка параметров может привести к тому, что сигналы будут слишком чувствительными или отстающими.
Неожиданные ценовые разрывы от событий могут отменить сигналы.
Стратегия EMA Ribbon может быть оптимизирована в следующих аспектах:
Корректировать параметры периода EMA для поиска оптимальных комбинаций.
Добавление других технических показателей для фильтрации и подтверждения сигналов для повышения точности.
Включить показатели волатильности для сокращения частоты торговли в условиях низкой волатильности.
Установите стратегии стоп-лосса, чтобы ограничить потери по сделке.
Оптимизировать стратегии управления деньгами для улучшения факторов прибыли.
Проверьте надежность параметров на различных продуктах и контрактах.
Стратегия EMA Ribbon имеет четкую логику, идентифицирующую тренд с перекрестными EMA и генерирующую торговые сигналы. У нее есть большое пространство оптимизации для корректировки параметров, добавления фильтров сигналов и т. Д. В целом она довольно проста и практична, хороша для начинающих торговли. Но контроль частоты торговли и рисков остается важным.
/*backtest start: 2024-01-14 00:00:00 end: 2024-01-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA Ribbon [Krypt] with Buy/Sell Signals", shorttitle="EMA Ribbon", overlay=true) dropn(src, n) => na(src[n]) ? na : src length1 = input(20, title="MA-1 period", minval=1) length2 = input(25, title="MA-2 period", minval=1) length3 = input(30, title="MA-3 period", minval=1) length4 = input(35, title="MA-4 period", minval=1) length5 = input(40, title="MA-5 period", minval=1) length6 = input(45, title="MA-6 period", minval=1) length7 = input(50, title="MA-7 period", minval=1) length8 = input(55, title="MA-8 period", minval=1) source_input = input(close, title="Source") price = dropn(source_input, 1) ema1 = ema(price, length1) ema2 = ema(price, length2) ema3 = ema(price, length3) ema4 = ema(price, length4) ema5 = ema(price, length5) ema6 = ema(price, length6) ema7 = ema(price, length7) ema8 = ema(price, length8) plot(ema1, title="MA-1", color=#f5eb5d, transp=0, linewidth=2) plot(ema2, title="MA-2", color=#f5b771, transp=0, linewidth=2) plot(ema3, title="MA-3", color=#f5b056, transp=0, linewidth=2) plot(ema4, title="MA-4", color=#f57b4e, transp=0, linewidth=2) plot(ema5, title="MA-5", color=#f56d58, transp=0, linewidth=2) plot(ema6, title="MA-6", color=#f57d51, transp=0, linewidth=2) plot(ema7, title="MA-7", color=#f55151, transp=0, linewidth=2) plot(ema8, title="MA-8", color=#aa2707, transp=0, linewidth=2) // Buy and sell signals based on crossover and crossunder buySignal = crossover(ema1, ema8) sellSignal = crossunder(ema1, ema8) plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small) if buySignal strategy.entry("Enter Long", strategy.long) else if sellSignal strategy.entry("Enter Short", strategy.short)