Стратегия перекрестного отслеживания EMA

Автор:Чао Чжан, Дата: 2023-10-25 17:44:35
Тэги:

img

Обзор

Стратегия кроссовера EMA генерирует сигналы покупки и продажи путем отслеживания кроссовера между двумя линиями EMA разных периодов. Когда более короткий период EMA пересекает более длинный период EMA, генерируется сигнал покупки. Когда более короткий период EMA пересекает ниже более длинного периода EMA, генерируется сигнал продажи. Эта стратегия также включает в себя индикатор SuperTrend для фильтрации ложных прорывов.

Логика стратегии

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

Кроме того, эта стратегия использует индикатор SuperTrend для фильтрации ложных сигналов, генерируемых перекрестками EMA. Индикатор SuperTrend рассчитывается на основе ATR для выявления верхних и нижних полос, которые лучше определяют реальный тренд. Когда цена превышает верхнюю полосу SuperTrend, генерируется сигнал покупки. Когда цена превышает нижнюю полосу SuperTrend, генерируется сигнал продажи. Сигналы перекрестка EMA действительны только при подтверждении сигналами SuperTrend. Это помогает устранить ложные сигналы, вызванные колебаниями цен.

В частности, логика входа в стратегию определяется следующим образом:

  1. Когда 20EMA пересекает 50EMA, и цена прорывается над верхней полосой SuperTrend, генерируется сигнал покупки.

  2. Когда 20EMA пересекает ниже 50EMA, и цена прорывается ниже нижней полосы SuperTrend, генерируется сигнал продажи.

Использование кроссоверов EMA для определения основного направления тренда в сочетании с фильтром SuperTrend может улучшить точность торговых сигналов.

Преимущества

Кроссоверная стратегия EMA имеет следующие преимущества:

  1. Простая в реализации, требуется только вычислить два перекрестка.

  2. EMA как скользящая средняя может отфильтровать шум.

  3. Сочетание с SuperTrend еще больше уменьшает ложные сигналы, вызванные колебаниями цен.

  4. Периоды EMA могут быть скорректированы для различных рыночных условий.

  5. Настраиваемый для длинных или коротких направлений торгов. Применимый к различным подходам торговли.

  6. Может быть реализован в разные временные рамки для различных торговых стилей.

Риски

Существуют также некоторые риски, связанные со стратегией перекрестного использования EMA:

  1. Сигналы EMA могут отставать во время экстремальных колебаний цен, не отражая своевременные изменения цен.

  2. Линии EMA имеют эффект задержки, что может привести к неправильным сигналам.

  3. Неправильные настройки периодов EMA могут привести к чрезмерным ложным сигналам.

  4. Кроссовер сам по себе не может определить фактическую тенденцию, по-прежнему значительно отстает.

  5. Правильное управление рисками, такое как стоп-лосс, необходимо для контроля рисков.

Некоторые способы снижения риска:

  1. Оптимизируйте периоды EMA, чтобы лучше соответствовать быстрым и медленным линиям.

  2. Сократить период хранения и применить своевременный стоп-лосс.

  3. Объедините с другими показателями, такими как скользящие средние, свечи для всестороннего суждения.

  4. Настройка частоты торгов на меньшее количество сделок.

Усовершенствования

Эта стратегия может быть усилена и оптимизирована в следующих аспектах:

  1. Оптимизировать периоды EMA для различных циклов и рыночных условий.

  2. Испытайте различные показатели скользящей средней, такие как SMA, KWMA.

  3. Использование алгоритмов машинного обучения для оптимизации параметров и весов.

  4. Добавьте методы стоп-лосса, такие как стоп-лосс, процент стоп-лосса для контроля рисков.

  5. Введите фильтры громкости, работающие с индикаторами громкости, чтобы избежать ложных сигналов.

  6. Оптимизируйте выход, устанавливая правила выхода, в сочетании с графическими шаблонами, прорывами и т. д.

  7. Подтвердить тенденцию на более высоком временном отрезке, ввести сделки на более низком временном отрезке, чтобы следовать тенденциям.

Заключение

Стратегия кроссовера EMA - это простая и практичная система следования трендам. Она может идентифицировать среднесрочные тенденции и генерировать сигналы времени. Сочетание с фильтром SuperTrend может эффективно уменьшить ложные сделки. Но риски, такие как отставание и неправильные сигналы, все еще существуют. Стратегия может быть улучшена с помощью оптимизации параметров, остановки потерь, сочетания индикаторов и т. Д. Стратегия кроссовера EMA проста в использовании, подходит для отслеживания тенденций среднесрочной и долгосрочной перспективы и эффективна для начинающих трейдеров.


/*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")


Больше