Стратегия EMA по обратной покупке-продаже

Автор:Чао Чжан, Дата: 2023-11-28 16:54:14
Тэги:

img

Обзор

Это стратегия, основанная на линиях EMA. Она использует две линии EMA с разными периодами, 21 и 55. Когда более быстрая линия EMA пересекает более медленную линию EMA, генерируется сигнал покупки. Когда более быстрая EMA пересекает ниже более медленной, генерируется сигнал продажи.

Кроме того, стратегия включает обратную торговлю, ATR стоп-лосс и обратную выручку, чтобы повысить ее стабильность и рентабельность.

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

  1. Используйте линии EMA 21 и 55 периодов.

  2. Когда 21 EMA пересекает 55 EMA, это указывает на изменение краткосрочной тенденции в сторону повышения, генерируя сигнал покупки.

  3. Когда 21 EMA переходит ниже 55 EMA, это указывает на то, что краткосрочная тенденция меняется в сторону падения, генерируя сигнал продажи.

  4. Обратная торговля: покупать только тогда, когда цена ниже открытой цены, и продавать только тогда, когда цена выше открытой цены.

  5. ATR стоп-лосс: используйте N раз ATR для установки цены стоп-лосса. Это динамически регулирует стоп-лосс на основе волатильности рынка.

  6. Обратная прибыль: используйте цену входа минус N раз ATR в качестве целевой прибыли.

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

  1. Отслеживает средне- и долгосрочные тенденции с использованием двойной EMA.

  2. Обратная торговля подходит для краткосрочных ретроспективных сделок.

  3. ATR-стоп адаптируется к волатильности рынка.

  4. Возврат прибыли находится рядом с важными техническими уровнями с более высокой вероятностью.

  5. Простая и понятная логика, легко понимаемая и модифицируемая.

  6. Применяется для высоковолатильных рынков, таких как криптовалюты.

Риски и решения

  1. Двойная EMA может генерировать ложные сигналы.

  2. Обратные сделки склонны к стоп-лосс, могут немного ослабить стоп-лосс.

  3. Фальшивые побеги бывают часто.

  4. Высокий риск при получении прибыли.

Советы по оптимизации

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

  2. Добавьте больше EMA, как 120-периодный EMA, чтобы оценить тенденцию всесторонне.

  3. Установите различные скольжения для длинных и коротких для лучшей входной цены.

  4. Уменьшить стоп-лосс ATR для очень волатильной крипто-торговли.

  5. Оптимизировать механизмы ATR-множителя и остановки задержки для максимальной прибыли и минимального использования.

Заключение

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


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © TheHulkTrading

// Simple EMA strategy, based on ema55+ema21 and ATR(Average True Range) and it enters a deal from ema55 when the other entry conditions are met


//@version=4
strategy("Simple Ema_ATR Strategy HulkTrading", overlay=true)

atr_multiplier = input(2, minval=1, title="ATR Multiplier") // ATR Multiplier. Recommended values between 1..4


emaFast=ema(close,21)
emaSlow=ema(close,55)

//Basically long and short conditions

//If long: 
// 1) close must be less than open (because we are searching for a pullback)
// 2) emaFast(21) must be bigger than emaSlow(55) - for a trend detection
// 3) Difference between emaFast and emaSlow must be greater than ATR(14) - for excluding flat
longCond = close < open and emaFast > emaSlow and abs(emaSlow-emaFast) > atr(14)  

//For short conditions are opposite
shortCond = close > open and emaFast < emaSlow and abs(emaSlow-emaFast) > atr(14) 

//Stop levels and take profits, based on ATR multiplier

stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - atr_multiplier*atr(14)


//Entries and exits 
strategy.entry("Long", strategy.long, when=longCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Short", stop=stop_level_short, limit = take_level_short)



Больше