Стратегия золотого креста скользящих средних
Обзор
Стратегия «Золотое пересечение скользящих средних» — это достаточно распространенная количественная торговая стратегия. Она использует две экспоненциальные скользящие средние (EMA) с разными параметрами. Когда краткосрочная EMA пересекает долгосрочную EMA снизу вверх, открывается длинная позиция; когда краткосрочная EMA пересекает долгосрочную EMA сверху вниз, позиция закрывается. Стратегия использует то, что краткосрочная EMA быстрее реагирует на изменение цены, а долгосрочная EMA лучше отражает тренд, формируя торговые сигналы на основе пересечения EMA.
Принцип стратегии
Стратегия сначала определяет две линии EMA: ema1 длиной 10 и ema2 длиной 21. Затем вычисляются значения этих двух скользящих средних. Когда ema1 пересекает ema2 снизу вверх, это указывает на начало прорыва цены вверх и является сигналом к покупке; когда ema1 пересекает ema2 сверху вниз, это указывает на пробой цены ниже скользящих средних и является сигналом к закрытию позиции.
Для фильтрации ложных прорывов в коде также задан порог threshold, формула расчета:
pine
threshold = ((ema1 - ema2)*100) / ((ema1 + ema2)/2)
Этот порог представляет собой процентное отношение расстояния между двумя скользящими средними к их среднему значению. Когда threshold больше 0,15% — сигнал к покупке, когда меньше -0,006 — сигнал к закрытию позиции.
Таким образом, торговые сигналы стратегии можно резюмировать следующим образом:
- Сигнал к покупке: ema1 пересекает ema2 снизу вверх и threshold >= 0,15%
- Сигнал к закрытию: ema1 пересекает ema2 сверху вниз и threshold <= -0,006%
Анализ преимуществ
Данная стратегия обладает следующими преимуществами:
- Использование EMA сглаживает ценовые данные, что способствует генерации торговых сигналов.
- Двойные EMA с разными параметрами позволяют достичь баланса между скоростью реакции и стабильностью.
- Добавление порога threshold позволяет отфильтровывать ложные прорывы, избегая ненужных сделок.
- Идея стратегии проста и понятна, легко реализуема, подходит для начинающих в количественной торговле.
- Параметры EMA и порог threshold можно гибко настраивать для оптимизации эффективности стратегии.
Анализ рисков
Стратегия также сопряжена с некоторыми рисками:
- EMA отстает от цены, что может привести к упущению возможностей краткосрочной торговли.
- Существует риск попадания в ловушку: при развороте тренда возможны значительные убытки.
- Неправильная настройка порога threshold может отсечь действительные сигналы или дать ложные сигналы.
- Неподходящие параметры EMA: краткосрочная и долгосрочная EMA могут не иметь явных различий, что приведет к ложным сигналам.
- Колебания рынка могут привести к пробитию стоп-лосса, поэтому следует устанавливать разумный стоп-лосс.
Направления оптимизации
Стратегию можно оптимизировать по следующим направлениям:
- Оптимизация параметров EMA: тестирование влияния различных периодов на эффективность стратегии.
- Оптимизация порога threshold: баланс между фильтрацией ложных сигналов и сохранением действительных.
- Добавление других технических индикаторов, таких как MACD, KDJ и др., для комплексного определения торговых сигналов.
- Внедрение механизма стоп-лосса: скользящий стоп-лосс или отложенный стоп-лосс для контроля убытков по каждой сделке.
- Рассмотреть возможность поэтапного входа в позицию для снижения риска единовременного входа.
- Тестирование различных периодов удержания позиции для поиска наиболее подходящего срока удержания.
Заключение
Стратегия «Золотое пересечение скользящих средних» имеет четкую и понятную общую идею, использует особенности EMA для определения торговых сигналов. У данной стратегии есть определенные преимущества, но также следует учитывать некоторые потенциальные риски. Путем оптимизации параметров, установки стоп-лосса, фильтрации сигналов и других методов можно добиться лучших результатов. Эта стратегия подходит для изучения и практики в качестве вводной стратегии количественной торговли.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
if high > ta.highest(high[1], 5)
strategy.entry("Enter Long", strategy.long)
else if low < ta.lowest(low[1], 5)
strategy.entry("Enter Short", strategy.short)//@version=3- 1
