
EMA-крестная стратегия заключается в том, что она отслеживает пересечение средней линии EMA в двух различных периодах, чтобы определить тенденцию цены и, таким образом, создать сигнал покупки и продажи. Она создает сигнал покупки, когда она пересекает длинную EMA в коротком периоде EMA, и сигнал продажи, когда она пересекает длинную EMA в коротком периоде EMA.
Эта стратегия основана на принципе золотой форки и мертвой форки средней линии EMA. Средняя линия EMA может сглаживать шум фильтрации данных о ценах и определять ценовую тенденцию по пересечениям средней линии EMA. Когда цена короткого периода находится выше цены длинного периода (EMA 20 циклов), это создает сигнал к покупке.
В то же время, эта стратегия в сочетании с индикатором SuperTrend фильтрует ложные сигналы, вызванные пересечением EMA. СуперТренд-индикатор, который рассчитывается на основе ATR, может более точно определять истинную тенденцию.
В частности, критерии этой стратегии следующие:
Сигнал покупки создается, когда 20 EMA пересекает 50 EMA, и цена прорывает SuperTrend;
Продажа происходит, когда 20 EMA пересекает 50 EMA, и цена переходит под Тренд SuperTrend.
С помощью перекрестных ЭМА можно оценить большие тенденции, а в сочетании с фильтрацией колебаний индикатора SuperTrend можно повысить точность стратегических торговых сигналов.
EMA имеет следующие преимущества:
Операция проста и легко реализуема. Нужно только вычислить пересечение двух средних линий EMA.
В качестве движущегося среднего значения, EMA может отфильтровывать часть шума.
В сочетании с показателями SuperTrend можно дополнительно отфильтровывать шум и уменьшать ложные сигналы.
Можно адаптироваться к различным рыночным условиям путем корректировки параметров цикла EMA.
Настройка длинных и коротких позиций с возможностью использования различных способов торговли.
Реализуется в разные периоды времени и для разных типов трейдеров.
С другой стороны, существуют риски, связанные с перекрестной стратегией EMA:
При резких колебаниях на рынке EMA может задерживаться и не отражать изменения цены.
Средняя линия EMA имеет отсталость и может создавать ошибочный сигнал.
Неправильная настройка параметров короткого и длительного периодов ЭМА может привести к созданию ошибочных сигналов.
Определенная слепота существует, когда невозможно определить реальную тенденцию рынка, полагаясь только на равномерное скрещивание.
Необходимо выбрать подходящую стратегию по сдерживанию убытков и контролировать риски.
Следующие шаги помогут снизить риск:
Оптимизируйте параметры цикла EMA и выберите подходящий средне-медленный цикл.
Сокращение срока хранения и своевременное прекращение убытков.
В сочетании с другими показателями, такими как скользящая средняя, форма K-линии и т. д.
Соответственно, необходимо изменить частоту транзакций, чтобы уменьшить их количество.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация циклических параметров средней линии EMA, адаптация к различным циклическим и рыночным условиям. Можно ввести механизм оптимизации адаптивных параметров.
Попробуйте различные среднелинейные индикаторы, такие как SMA, KWMA и т.д.
Вместе с другими показателями для комбинированной торговли, формируются многофакторные модели, такие как MACD, RSI и т. Д. Внедряются алгоритмы машинного обучения для параметрической оптимизации и весовой настройки.
Добавление стратегий сдерживания убытков, таких как отслеживание убытков, процент убытков и т. д., чтобы контролировать риск.
Внедрение фильтрации объема сделок в сочетании с показателями объема сделок, чтобы избежать ложных сигналов.
Оптимизация стратегии exits, установление правил выхода из игры. EXIT signals, такие как сочетание K-линейной формы, прорыв и т. д.
Подтверждение тенденции в более высоких временных циклах, вход в более низкие временные циклы, осуществление отслеживания тенденции.
EMA кросс стратегия является простой и практичной стратегии для отслеживания тенденции. Она позволяет идентифицировать среднесрочные тенденции цены, чтобы получить сигнал о покупке и продаже. В сочетании с индикатором SuperTrend может эффективно отфильтровывать шум, уменьшить ошибочные сделки.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alokbothra
//@version=5
strategy("Ema Crossover", overlay=true, initial_capital = 1000)
start = timestamp(2021,1,1,0,0)
end = timestamp(2023,10,30,0,0)
plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2)
plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 )
//supertrend 1
Periods = input(title='ATR Period', defval=11)
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = close - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn =close+ Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
changeCond = trend != trend[1]
longonly = input.bool(defval = true, title = 'Long Only')
shortonly = input.bool(defval = true, title = 'Short Only')
longCondition = (ta.ema(close, 20) >= ta.ema(close, 50))
shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50))
long = (trend == 1)
short = (trend == -1)
sell= short
cover= long
if time >= start and time < end
if longonly
if ((longCondition) and (long))
strategy.entry ("Long Entry", strategy.long, comment ="Long Entry")
if strategy.position_size > 0
strategy.close("Long Entry", when = sell, comment = "Long Exit")
if shortonly
if ((shortCondition) and (short))
strategy.entry("Short Entry", strategy.short, comment = "Short Entry")
if strategy.position_size < 0
strategy.close("Short Entry", when = cover, comment = "Short Exit")