Стратегия разворота по двум скользящим средним
Обзор
Данная стратегия основана на принципе «золотого креста» и «креста смерти» двух скользящих средних. Когда краткосрочная скользящая средняя пересекает долгосрочную снизу вверх, открывается длинная позиция; когда краткосрочная скользящая средняя пересекает долгосрочную сверху вниз, позиция закрывается. Стратегия проста и понятна, подходит для обучения новичков.
Принцип стратегии
Стратегия в основном использует два индикатора скользящих средних: sma(close, 14) и sma(close, 28).
Сначала определяются краткосрочная и долгосрочная скользящие средние:
pine
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Затем на основе «золотого креста» и «креста смерти» принимаются решения о входе и выходе:
pine
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Когда краткосрочная скользящая средняя пересекает долгосрочную снизу вверх, открывается длинная позиция:
pine
strategy.entry("Buy", strategy.long, when = longCondition)
Когда краткосрочная скользящая средняя пересекает долгосрочную сверху вниз, позиция закрывается:
pine
strategy.close_all(when = shortCondition)
Принцип стратегии прост и понятен, используется пересечение двух скользящих средних для принятия решений, что обеспечивает определённую способность следовать за трендом.
Анализ преимуществ
- Принцип стратегии прост и понятен, новички легко могут её использовать.
- Использование пересечения скользящих средних для определения тренда даёт определённую способность следовать за трендом.
- Возможность настройки периодов скользящих средних для оптимизации параметров стратегии.
- Возможность установки стоп-лосса для контроля убытков по одной сделке.
Анализ рисков
- Стратегия на двух скользящих средних чувствительна к рыночным колебаниям, может генерировать множество убыточных сделок.
- Скользящие средние обладают запаздыванием, можно упустить точки разворота цены.
- Открытие позиции вблизи точки пересечения скользящих средних чревато попаданием в ловушку.
- Требуется оптимизация параметров периодов скользящих средних; разные периоды могут давать разные результаты.
- Невозможно быстро остановить убытки при резком изменении тренда.
Направления оптимизации
Стратегию можно оптимизировать по следующим направлениям:
- Оптимизация параметров периодов скользящих средних для поиска наилучшего сочетания.
Можно тестировать различные периоды краткосрочных и долгосрочных скользящих средних, например, (5, 10), (10, 20), (20, 60) и т.д., для поиска оптимального сочетания.
- Добавление фильтров для избежания ложных сигналов.
Можно добавить фильтры, такие как объём торгов, спред и т.д., вблизи пересечения скользящих средних, чтобы избежать большого количества сделок на колеблющемся рынке.
- Добавление стратегии стоп-лосса.
Установка уровня стоп-лосса или использование скользящей средней в качестве линии стоп-лосса позволяет контролировать убыток по одной сделке.
- Комбинирование с другими индикаторами.
Можно добавить вспомогательные индикаторы, такие как MACD, KDJ и т.д., для комбинированной торговли, что повысит эффективность стратегии.
- Оптимизация точек входа.
Поиск лучших точек входа вблизи скользящих средних, вместо открытия позиции прямо на пересечении. Например, вход в точке расхождения скользящих средних.
Заключение
Стратегия на двух скользящих средних проста по концепции и легко осваивается новичками. Однако она чувствительна к рыночным колебаниям и несёт определённый риск убытков. Мы можем повысить её эффективность, оптимизируя параметры, добавляя фильтры, устанавливая стоп-лосс и комбинируя с другими индикаторами. На сильном тренде стратегия может показывать хорошие результаты. Однако в периоды рыночных колебаний рекомендуется использовать её с осторожностью или контролировать риск с помощью стоп-лосса.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25)
minGainPercent = input(0.6)- 1
