Стратегия пересечения двойных скользящих средних - EMA9/20


Дата создания: 2024-03-08 15:22:50 Последнее изменение: 2024-03-08 15:22:50
Копировать: 0 Количество просмотров: 793
1
Подписаться
1617
Подписчики

Стратегия пересечения двойных скользящих средних - EMA9/20

Обзор стратегии

Двухлинейная скрещивающаяся стратегия - EMA9/20 - это количественная торговая стратегия, основанная на скрещивании двух индексов с подвижными средними ((EMA)). Эта стратегия использует 9-дневную и 20-дневную ЭМА в качестве торговых сигналов, создавая сигнал покупки или продажи при скрещивании двух равнолинейных линий. В то же время эта стратегия также использует скрещивание цены с 9-дневными ЭМА в качестве вспомогательного сигнала, а также подвижный стоп-лосс для управления торговыми рисками.

Стратегический принцип

Ключевым принципом стратегии является использование перекрестных движущихся средних индексов двух различных циклов для захвата рыночных тенденций. Когда краткосрочная средняя линия ((9-дневная ЭМА) пересекает долгосрочную среднюю ((20-дневная ЭМА), это указывает на то, что рынок может войти в восходящий тренд, и тогда стратегия создает сигнал покупки; наоборот, когда краткосрочная средняя линия пересекает долгосрочную среднюю линию, что указывает на то, что рынок может войти в нисходящий тренд, и тогда стратегия создает сигнал продажи.

В дополнение к сигналу пересечения равной линии, стратегия также вводит в качестве вспомогательного сигнала пересечение цены с краткосрочной средней линией ((9-дневная ЭМА)). Когда цена превышает 9-дневную ЭМА, также образуется сигнал покупки; когда цена превышает 9-дневную ЭМА, также образуется сигнал продажи. Таким образом, можно более своевременно улавливать изменения рыночных тенденций.

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

Стратегические преимущества

  1. Простая и понятная: стратегия основана на классическом принципе равнолинейного пересечения, логика ясна, легко понятна и реализуема.

  2. Следить за тенденциями: с помощью пересечения средних линий двух различных циклов стратегия может эффективно улавливать основные тенденции рынка.

  3. Своевременное остановка: внедрение механизма мобильного остановки позволяет своевременно ликвидировать позиции при обратном тренде, контролируя нисходящий риск.

  4. Гибкость параметров: параметры стратегии (например, средний цикл, стоп-пойнты и т. д.) могут быть оптимизированы и адаптированы для различных рынков и сортов, чтобы адаптироваться к различным рыночным условиям.

Стратегический риск

  1. Частые сделки: Поскольку в этой стратегии используются одновременно сигналы равнолинейного и ценового перекрестков, это может привести к более высокой частоте сделок, что увеличивает их стоимость.

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

  3. Чувствительный к параметрам: эффективность стратегии может быть чувствительна к выбору параметров, и разные параметры могут привести к разным результатам.

Направление оптимизации

  1. Фильтрация сигналов: на основе равнолинейного и ценового перекрестных сигналов, в качестве фильтрующих условий вводятся другие технические показатели (например, RSI, MACD и т. д.), чтобы уменьшить ошибочные сигналы.

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

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

  4. Многовидовая адаптация: расширение стратегии на несколько сортов и рынков, снижение общего риска и повышение устойчивости доходов за счет дифференцированного инвестирования и анализа релевантности.

Подвести итог

Двухлинейная скрещивающаяся стратегия - EMA9/20 - это простая, практическая, количественная торговая стратегия, использующая скрещивание и ценовое скрещивание двух разных циклических скрещивающихся средних для захвата рыночных тенденций, а также для управления рисками с помощью мобильного стоп-лоска. Логика этой стратегии ясна, ее легко понять и реализовать, она подходит для изучения и использования новичками. Однако, у этой стратегии есть некоторые ограничения, такие как плохая производительность в нестабильных рынках, более чувствительный выбор параметров параметров и т. д.

Исходный код стратегии
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title = "EMAs 9 / 20",
		 shorttitle = '9/20 EMAs', 
		 initial_capital = 1000,
		 overlay = true, 
		 default_qty_type = strategy.fixed,
		 commission_type = strategy.commission.cash_per_contract,
		 commission_value = 0.35,
		 default_qty_value = 1)


int trailOffset = 10
int trailPoints = 15


series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)

series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)

series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)

//Entry Exits

if nineCrossover20
    strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
    strategy.entry("Long 9CrossClose", strategy.long, 2)
    strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
    strategy.close("Long 9Cross20")
    
    

if nineCrossunder20
    strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
    strategy.entry("Short 9CrossClose", strategy.short, 2)
    strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
    strategy.close("Short 9Cross20")