Стратегия Expert Alligator
Expert Alligator — это перенос встроенного эксперта MetaTrader 5 Expert_Alligator.mq5 на платформу StockSharp. В оригинале торговые решения строятся вокруг индикатора Аллигатор Билла Вильямса: три сглаженных скользящих средних (челюсть, зубы, губы) рассчитываются по медианной цене и сдвигаются на несколько баров вперёд. Эксперт отслеживает, как линии сходятся и расходятся, чтобы определить момент нового пересечения, и запрещает повторный вход, пока «рот аллигатора» снова не раскроется. Переписанная на C# стратегия повторяет эту схему, используя высокоуровневый API StockSharp и готовые индикаторы.
Логика торговли
Подготовка индикаторов
- Для каждой завершённой свечи рассчитывается медианная цена
(High + Low) / 2, которая подаётся на три индикатораSmoothedMovingAverageс периодами 13, 8 и 5. - Полученные значения сдвигаются вперёд на 8, 5 и 3 бара соответственно, а также сохраняются в фиксированных буферах, что позволяет воспроизвести обращения к индексам
-2,-1,0,1, присутствующим в MQL5.
- Для каждой завершённой свечи рассчитывается медианная цена
Условия входа
- Покупка выполняется, когда разницы «губы-зубы» и «зубы-челюсть» трижды подряд сокращаются, оставаясь положительными. Это соответствует пересечению зелёной линии сверху вниз и началу раскрытия аллигатора вверх.
- Продажа симметрична: разницы становятся всё более отрицательными, что означает пересечение губ снизу вверх и раскрытие «рта» вниз.
- После открытия позиции устанавливается флаг
crossed, блокирующий новые сделки до тех пор, пока расстояния между линиями не увеличатся минимум на величину параметра Cross Measure (в пунктах MetaTrader).
Условия выхода
- Закрытие лонга происходит, если последняя сдвинутая разница «губы-зубы» становится отрицательной, тогда как два более старых значения остаются неотрицательными (
-1,0,1в исходном коде). - Закрытие шорта выполняется при зеркальной смене знака.
- Закрытие лонга происходит, если последняя сдвинутая разница «губы-зубы» становится отрицательной, тогда как два более старых значения остаются неотрицательными (
Параметры
| Имя | Описание | Значение по умолчанию |
|---|---|---|
Order Volume |
Объём заявки для BuyMarket/SellMarket (в лотах или контрактах). |
0.1 |
Candle Type |
Тип свечей, используемый в расчётах. | 1 час |
Jaw Period |
Период сглаженного среднего для линии челюсти. | 13 |
Jaw Shift |
Сдвиг линии челюсти вперёд (в барах). | 8 |
Teeth Period |
Период сглаженного среднего для линии зубов. | 8 |
Teeth Shift |
Сдвиг линии зубов вперёд. | 5 |
Lips Period |
Период сглаженного среднего для линии губ. | 5 |
Lips Shift |
Сдвиг линии губ вперёд. | 3 |
Cross Measure |
Минимальная ширина раскрытия (в пунктах), необходимая перед следующим входом. | 5 |
Особенности реализации
- Все вычисления выполняются только на закрытых свечах (
CandleStates.Finished), что повторяет поведение MetaTrader. - История значений индикаторов хранится в массивах фиксированной длины, поэтому стратегия может безопасно получать как «прошлые», так и «будущие» значения, возникающие из-за сдвига линий Аллигатора вперёд.
- Значение
_Pointиз MQL5 аппроксимировано шагом цены инструмента (PriceStep). Если он неизвестен, используется10^-Decimalsлибо запасной вариант0.0001. - На диаграмме автоматически рисуются свечи и три линии Аллигатора, что помогает визуально сверить поведение порта и оригинального эксперта.
Использование
- Подключите стратегию к
Connector, обеспечивающему поток данных и формирование требуемых свечей (по умолчанию — часовой таймфрейм). - После подписки на данные вызовите
Start()для запуска. - При необходимости измените периоды, сдвиги или порог
Cross Measure, чтобы протестировать собственные настройки. - Контролируйте сделки и результат через стандартные инструменты StockSharp.
Исходный эксперт управляет рисками только фиксированным объёмом и геометрией линий Аллигатора, поэтому в переносе отсутствуют дополнительные блоки мани-менеджмента или трейлинг-стопов.