Стратегия отслеживания баланса длинных и коротких позиций MACD
Обзор
Данная стратегия представляет собой трендовый следящий подход, использующий индикатор MACD для определения направления (длинных и коротких позиций). Она вычисляет разность между быстрой и медленной скользящими средними, формируя основную линию MACD. Стратегия использует «золотое пересечение» основной линии и сигнальной линии для генерации сигнала на покупку и «мертвое пересечение» для сигнала на продажу, обеспечивая сбалансированное отслеживание длинных и коротких позиций.
Принцип стратегии
Код сначала устанавливает начальное и конечное время для бэктеста, чтобы проверить историческую производительность стратегии.
Затем следует расчет индикатора MACD, включая длины быстрой скользящей средней, медленной скользящей средней и сигнальной линии. Быстрая линия более чувствительна, медленная — более стабильна. Их разность образует основную линию MACD, которая затем сглаживается скользящей средней, формируя сигнальную линию. Когда разность пересекает нулевую линию снизу вверх, генерируется сигнал на покупку (длинная позиция); пересечение сверху вниз — сигнал на продажу (короткая позиция).
На основе сигналов на покупку и продажу записывается время последнего сигнала. Когда быстрая и медленная линии пересекаются в ортогональном смысле (имеется в виду пересечение), сигнал покупки/продажи подтверждается и фиксируется, после чего можно открывать позицию.
После входа в позицию непрерывно отслеживается максимальная и минимальная цена удерживаемой позиции. Устанавливается процент стоп-лосса; если убыток достигает этого процента, позиция закрывается.
Преимущества стратегии
- Индикатор MACD эффективно идентифицирует тренды и является одним из классических индикаторов технического анализа.
- Разность между быстрой и медленной скользящими средними позволяет заблаговременно улавливать импульс и направление изменения цены.
- Фильтрующий эффект скользящих средних помогает отсеять часть ложных сигналов.
- Стратегия включает механизм стоп-лосса для контроля рисков.
Риски стратегии
- Индикатор MACD склонен к генерации ложных сигналов, а возможности оптимизации самого индикатора ограничены.
- Неправильная установка уровня стоп-лосса может сделать его слишком чувствительным или консервативным, требуя отдельной оптимизации для каждого инструмента.
- Фиксированный размер позиции может привести к чрезмерному кредитному плечу; можно рассмотреть настройку риска в зависимости от размера капитала.
- Рациональность выбора временного окна бэктеста требует проверки, чтобы избежать переобучения.
Оптимизация стратегии
- Оптимизировать комбинации параметров быстрых и медленных скользящих средних для нахождения наилучших параметров, подгоняемых под различные инструменты.
- Добавить фильтры из других индикаторов, таких как формы свечей, полосы Боллинджера, RSI и т.д., для верификации сигналов.
- Оценивать эффективность различных уровней стоп-лосса на основе таких показателей, как просадка, коэффициент Шарпа и др.
- Оптимизировать стратегию стоп-лосса, например, использование трейлинг-стопа, отложенных ордеров и т.д.
- Попробовать задавать динамический размер позиции в зависимости от изменения капитала, волатильности и т.д.
Заключение
Стратегия баланса длинных и коротких позиций на основе MACD — это трендовый следящий подход, основанный на классическом техническом индикаторе. Она обладает чувствительностью к импульсу изменения цены и может хорошо адаптироваться к различным инструментам через оптимизацию параметров. Сочетание с дополнительными фильтрующими индикаторами, различными методами стоп-лосса и динамическим управлением размером позиции может повысить стабильность и прибыльность стратегии.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MACD BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)
/////////////// Component Code Start ///////////////- 1

