Тщательная стратегия перекрестного использования EMA

Автор:Чао Чжан, Дата: 2023-12-20 14:28:36
Тэги:

img

Обзор

Методика кроссовера EMA - это система торговли, основанная на кроссоверных сигналах между двумя экспоненциальными скользящими средними линиями (EMAs) с различными параметрами. Она использует короткосрочную быструю линию EMA и более длительную медленную линию EMA и генерирует торговые сигналы, когда они пересекаются. Длинный сигнал запускается, когда быстрая линия пересекает медленную линию, а сигнал закрытия позиции запускается, когда быстрая линия пересекает медленную линию.

Принципы стратегии

Основными показателями этой стратегии являются две линии EMA: быстрая линия и медленная линия. Параметр быстрой линии устанавливается по умолчанию на 13-периодическую линию для более быстрой реакции на изменения цен. Параметр медленной линии устанавливается на 48-периодическую линию для более медленных ответов. Когда краткосрочная тенденция быстро растет, быстрая линия будет расти впереди медленной линии. А когда цены падают, быстрая линия упадет быстрее, чем медленная линия. Поэтому быстрая линия, пересекающая поверх медленной линии, сигнализирует об восходящей тенденции, а быстрая линия, пересекающая ниже медленной линии, сигнализирует об обратном движении вниз.

Основываясь на этом принципе, стратегия длится, когда быстрая линия EMA пересекает линию медленной EMA, что указывает на восходящую тенденцию, так что вы можете покупать. Когда быстрая линия пересекает линию медленной, она закрывает позиции, показывая конец восходящего тренда и время для получения прибыли. Чтобы контролировать риски, стратегия также устанавливает начальную стоп-лосс на 8% ниже входной цены и последующую стоп-лосс на 120 пунктов от рыночной цены. Это позволяет системе выходить раньше и минимизировать потери при обратном тренде.

В реализации кодирования для определения сигналов EMA используются функции crossover и crossunder. Затем будут задействованы соответствующие команды entry и close для покупки или закрытия позиций.

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

Методическая стратегия перекрестного использования EMA имеет следующие основные преимущества:

  1. Сигналы просты и понятны, легко понять и реализовать.

  2. Фильтр MA может обнаружить изменения тренда при меньшем шуме рынка.

  3. Высококонфигурируемые параметры на быстрых/медленных линиях EMA, уровни остановки потерь и т.д.

  4. Стоп-лосс означает эффективное управление рисками.

  5. Относительно стабильная система при различных рыночных условиях.

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

В этой стратегии также есть некоторые риски:

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

  2. Слишком быстрая настройка параметров индикаторов MA может привести к увеличению количества ложных сигналов.

  3. Слабые ценовые тенденции могут привести к меньшему количеству перекресток EMA и, следовательно, не смогут зафиксировать движения.

  4. Отсутствие анализа общих тенденций на рынке означает идти против основного тренда.

Риски могут быть смягчены путем:

  1. Добавление фильтров вроде MACD и KD для подтверждения перекрестных сигналов.

  2. Корректировать параметры EMA на основе различных рынков, чтобы уменьшить ложные сигналы.

  3. Включить анализ общей тенденции на основе долгосрочных скользящих средних.

Руководство по оптимизации

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

  1. Добавление фильтров открытых позиций для предотвращения переоценки на рынках с ограниченным диапазоном.

  2. Установите уровни стоп-лосса и прибыли на основе высоких/низких уровней и зон поддержки/сопротивления для большей точности.

  3. Добавить модуль тренда для анализа долгосрочных тенденций в качестве фильтров для краткосрочных сигналов, избегая торговли против основных тенденций.

  4. Использовать машинное обучение для обучения и оптимизации идеальных параметров EMA, соответствующих практическим рынкам, чтобы уменьшить ложные сигналы.

Вышеперечисленные основные направления для улучшения этой базовой стратегии перекрестного использования EMA в будущем.

Заключение

Методическая стратегия кроссовера EMA - это фундаментальная система, основанная на быстром и медленном пересечении линий EMA для определения ценовых тенденций и включает в себя стоп-лосс для контроля рисков. Его сигналы просты и чисты, легко понятны для новичков, что делает его одной из типичных стартерских стратегий.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// *** USE AT YOUR OWN RISK ***
// 
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 13, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 48, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 120, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 20, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)



Больше