Стратегия Trend Finder
Обзор
Trend Finder — это многофреймовая трендовая стратегия, перенесённая с исходного эксперт-советника TREND FINDER.mq4. Логика переписана с использованием высокоуровневого API StockSharp и сохраняет ключевую идею: сочетание линейно-взвешенных скользящих средних с подтверждением по старшим таймфреймам через индикаторы Momentum и MACD. Стратегия ищет прорывы после длительных экстремумов и присоединяется к движению только тогда, когда краткосрочная структура цены согласована с долгосрочным импульсом.
Рынок и индикаторы
- Базовый таймфрейм (
CandleType) — главный поток свечей для распознавания паттернов и выставления заявок. Линейно-взвешенные средние рассчитываются по типичной цене (High + Low + Close) / 3. - Таймфрейм импульса (
MomentumCandleType) — более крупные свечи, по которым вычисляется отклонение индикатора Momentum от уровня 100. Для допуска к сделке требуется, чтобы хотя бы одно из последних трёх значений превышало заданный порог. - Таймфрейм MACD (
MacdCandleType) — ещё более долгосрочные свечи, используемые для фильтрации тренда с помощью MACD. Для входа длинных позиций MACD должен быть выше сигнальной линии, для коротких — ниже.
Логика входа
- Определение пробоя — анализируются до 100 исторических свечей (без учёта трёх самых свежих) для поиска максимума или минимума. Модель для покупок требует, чтобы текущая свеча открылась выше найденного максимума, а хотя бы один из трёх предыдущих хайов оставался ниже этой отметки. Для продаж условия зеркальны.
- Согласованность скользящих — для длинных позиций быстрая LWMA должна находиться выше медленной, для коротких — ниже.
- Ценовая структура последних баров — для лонга минимум двух свечей назад обязан быть ниже максимума предыдущей свечи (
Low[2] < High[1]). Для шорта минимум предыдущей свечи должен быть ниже максимума двух свечей назад (Low[1] < High[2]). - Подтверждение импульса — модуль отклонения |Momentum − 100| на старшем таймфрейме в трёх последних значениях должен хотя бы один раз превысить порог для соответствующего направления.
- Подтверждение MACD — последнее рассчитанное значение MACD на выбранном таймфрейме должно быть выше (ниже) сигнальной линии для входа в лонг (шорт).
- Фильтрация по позиции — новые длинные сделки допускаются только при текущей позиции меньше или равно нулю, короткие — при позиции больше или равно нулю. Объём заявки равен
Volume + |Position|, что позволяет быстро разворачивать позицию.
Управление рисками
- Стоп-лосс (
StopLoss) — фиксированная дистанция от цены входа, выраженная в абсолютных единицах цены инструмента. - Тейк-профит (
TakeProfit) — фиксированная цель по прибыли; при достижении позиция закрывается полностью. - Трейлинг (
TrailingStop) — после входа отслеживает максимум (для лонга) или минимум (для шорта) и подтягивает защитный уровень на каждой завершённой свече. - Переход в безубыток (
BreakEvenTrigger,BreakEvenOffset) — после прохождения цены в прибыль на заданное расстояние стоп переносится в район входа с указанным смещением, что позволяет зафиксировать часть дохода при откате. - Автоматическое закрытие — вспомогательные методы закрывают всю позицию и сбрасывают внутренние переменные. Частичных фиксаций в реализации нет.
Параметры
| Параметр | Описание | Значение по умолчанию | ||
|---|---|---|---|---|
CandleType |
Базовый таймфрейм для сигналов и сделок. | Свечи 15 минут | ||
MomentumCandleType |
Старший таймфрейм для расчёта Momentum. | Свечи 1 часа | ||
MacdCandleType |
Таймфрейм для MACD (по умолчанию ≈30 дней). | Свечи 30 дней | ||
FastMaLength |
Длина быстрой LWMA. | 6 | ||
SlowMaLength |
Длина медленной LWMA. | 85 | ||
MomentumPeriod |
Количество свечей старшего таймфрейма в расчёте Momentum. | 14 | ||
MomentumThresholdBuy |
Минимальное | Momentum − 100 | для допуска лонгов. | 0.3 |
MomentumThresholdSell |
Минимальное | Momentum − 100 | для допуска шортов. | 0.3 |
MacdShortLength |
Быстрый EMA внутри MACD. | 12 | ||
MacdLongLength |
Медленный EMA внутри MACD. | 26 | ||
MacdSignalLength |
EMA сигнальной линии MACD. | 9 | ||
StopLoss |
Абсолютная дистанция стоп-лосса. | 0.0020 | ||
TakeProfit |
Абсолютная дистанция тейк-профита. | 0.0050 | ||
TrailingStop |
Дистанция трейлинг-стопа. | 0.0040 | ||
BreakEvenTrigger |
Движение цены, активирующее перенос в безубыток. | 0.0030 | ||
BreakEvenOffset |
Смещение после перехода в безубыток. | 0.0010 |
Важно: перед запуском задайте
Strategy.Volume, чтобы определить фактический размер заявки. Все расстояния заданы в единицах цены и требуют адаптации под шаг цены торгуемого инструмента.
Рекомендации по эксплуатации
- Назначьте стратегии целевой
Security, укажитеPortfolioиVolume. - Убедитесь, что источник данных предоставляет свечи всех трёх таймфреймов, иначе фильтры Momentum и MACD не активируются.
- Настройте параметры риска под волатильность инструмента: значения по умолчанию подходят не для всех рынков.
- При необходимости используйте автоматически создаваемую область графика для отображения цены, сделок и обеих скользящих средних.
- Следите за журналом заявок и сделок — стратегия работает через рыночные ордера
BuyMarketиSellMarket.
Отличия от оригинального советника
- Исключены функции закрытия по балансовым критериям, эквити-стопы и уведомления (почта, push), присутствовавшие в MQL-версии, чтобы сохранить фокус на ключевых торговых правилах и соответствовать высокоуровневому API StockSharp.
- Управление позицией сведено к одному чистому объёму; размер сделок контролируется параметром
Volume. - Денежные параметры, выраженные в валюте счёта, не перенесены. Вместо них реализованы ценовые стопы, тейк-профит, трейлинг и переход в безубыток.
Возможные улучшения
- Добавьте портфельные ограничения, если планируется торговля несколькими инструментами.
- Введите фильтры торговых сессий или волатильности, чтобы исключить малоликвидные периоды.
- Интегрируйте внешнюю отчётность или контроль кривой капитала, если требуется расширенная статистика.