VmMatrix Double Zero
Обзор
VmMatrix Double Zero — порт советника MetaTrader 4 vMATRIXDoubleZero для StockSharp. Исходная система ищет пробои «двойного нуля»: предыдущий закрытый бар округляется до двух знаков после запятой, и сделка открывается, когда цена пересекает это округлённое значение. В портированной версии сохранена многоуровневая структура фильтров: настраиваемые сравнения отклонений нескольких баров, опциональные проверки объёма и диапазона, фильтр ускорения ATR и дополнительный индикатор силы свинга. Стратегия может требовать подтверждения направления от дневного CCI и поддерживает адаптивный расчёт тейк-профита на основе часовых ATR.
Торговля ограничена пользовательским временным окном, заданным в часах терминала. Для длинных и коротких сигналов есть отдельные переключатели. Стопы и цели управляются внутри стратегии, включая приближение оригинального трейлинг-стопа: при его активации тейк-профит автоматически отодвигается дальше, чтобы позиция могла сопровождаться по стопу.
Логика стратегии
Определение направления
- Округлённый пробой — базовый сигнал сравнивает закрытия двух последних завершённых свечей с предыдущим закрытием, округлённым до двух знаков. Для входа в лонг необходимо, чтобы
Close[2] < round(Close[1], 2)и одновременноClose[1] > round(Close[1], 2); для шорта условия зеркальные. - Матрица фильтров (опционально) — при активном фильтре используются шесть исторических баров, задаваемых параметрами
LongK1…LongK6(для покупок) илиShortK1…ShortK6(для продаж). Каждый бар оценивается через отклонениеClose - (High + Low) / 2. Требуется, чтобы первое отклонение превышало второе, третье — масштабированное четвёртое (LongQc/ShortQc), а пятое — второе масштабированное шестое (LongQg/ShortQg).
Дополнительные фильтры
- Торговая сессия — сигналы обрабатываются только тогда, когда час закрытия свечи попадает в диапазон
StartHour…EndHour. - Объём — если фильтр включён, объём предыдущей свечи должен превышать
MinimumVolume. - Сжатие диапазона — максимум и минимум последних
RangeBarsсвечей обязаны лежать в пределахRangeThresholdPipsпунктов. - Ускорение ATR — текущий ATR (период
AtrPeriodна рабочем таймфрейме) сравнивается со значениемAtrShiftбаров назад. Сигнал допускается только если ATR вырос, что повторяет поведение переключателя VSA в оригинале. - Вторичный фильтр свингов — при включении вычисляется взвешенная сумма разниц максимумов и минимумов с отступом
SecondaryPivot. Для лонга сумма должна быть положительной, для шорта — отрицательной. Весовые параметры (Xb2,Xs2,Yb2,Ys2) интерпретируются так же, как в советнике: значение 50 означает нейтральность. - Подтверждение дневным CCI — опциональный барьер, требующий положительного значения дневного CCI (
DailyCciPeriod) для покупок и отрицательного для продаж.
Управление позициями
- Размер входа — сделки открываются объёмом
OrderVolume, нормированным по шагу объёма инструмента. Если уже открыта противоположная позиция и активен флагCloseOnBiasFlip, стратегия сначала закрывает её (неттинг не позволяет держать разнонаправленные позиции одновременно). Иначе сигнал пропускается. - Изначальные уровни — стоп-лосс и тейк-профит задаются в пунктах через
LongStopLossPips/ShortStopLossPipsиLongTakeProfitPips/ShortTakeProfitPips. Значения автоматически переводятся в цену с учётом размера пункта. При необходимости к тейк-профиту добавляется динамический компонент. - Динамический тейк-профит — если включён
UseDynamicTakeProfit, к базовой дистанции прибавляется взвешенная сумма часовых ATR: изменение ATR(1), текущее ATR(1), ATR(25) и разница между хайями, разделённымиSwingPivotбарами. Все веса (WeightSn1…WeightSn4) отсчитываются от 50, как в оригинальной функцииTPb(). - Трейлинг-стоп — параметр
UseTrailingStopвключает ступенчатое сопровождение: стоп сдвигается, когда цена проходит примерно вдвое большее расстояние, чем текущий стоп. Одновременно тейк-профит умножается на 10, что имитирует приём автора советника и оставляет главную роль за трейлингом. - Защитные выходы — на каждой завершённой свече проверяется пробой стоп-лосса или тейк-профита. Позиция закрывается рыночным приказом. Если включён
CloseOnBiasFlip, противоположный сигнал также приводит к немедленному закрытию.
Параметры
Ниже приведены основные настройки стратегии:
| Группа | Параметр | Описание |
|---|---|---|
| General | StartHour / EndHour |
Часовой диапазон работы (по времени терминала). |
| General | OrderVolume |
Базовый объём сделки с учётом шага объёма инструмента. |
| General | UseTrailingStop |
Включает приблизительную реализацию трейлинг-стопа и растягивает тейк-профит. |
| General | CloseOnBiasFlip |
При включении закрывает противоположную позицию перед разворотом. |
| Long / Short | EnableLongs / EnableShorts |
Разрешение обработки лонговых или шортовых сигналов. |
| Long / Short | LongStopLossPips, LongTakeProfitPips, ShortStopLossPips, ShortTakeProfitPips |
Дистанции стопов и тейков в пунктах. |
| Filters | UseBiasFilter и параметры LongK1…LongK6, ShortK1…ShortK6, LongQc, LongQg, ShortQc, ShortQg |
Настройка матричных сравнений отклонений. |
| Filters | UseRangeFilter, RangeBars, RangeThresholdPips |
Ограничение сигналов при слишком широком диапазоне. |
| Filters | UseVolumeFilter, MinimumVolume |
Требование минимального объёма предыдущей свечи. |
| Filters | UseVsaFilter, AtrPeriod, AtrShift |
Проверка роста ATR относительно значения AtrShift баров назад. |
| Filters | UseSecondaryFilter, Xb2, Xs2, Yb2, Ys2, SecondaryPivot |
Дополнительный фильтр силы свинга по максимумам/минимумам. |
| Filters | UseDailyCciFilter, DailyCciPeriod |
Дневной CCI должен подтверждать направление сделки. |
| Take Profit | UseDynamicTakeProfit, WeightSn1…WeightSn4, SwingPivot |
Управление адаптивной надбавкой к тейк-профиту. |
| General | CandleType |
Основной таймфрейм, на котором строятся расчёты. |
Дополнительные замечания
- Размер пункта вычисляется по
Security.PriceStep. Для инструментов с тремя и пятью десятичными знаками автоматически применяется множитель 10, как в логике MQL (Digits/Point). - Стратегия подписывается на три потока данных: рабочие свечи, часовые (для ATR) и дневные (для CCI). Убедитесь, что источник данных поддерживает все необходимые таймфреймы.
- Порт работает в режиме неттинга, поэтому хеджирование одного инструмента в разных направлениях невозможно. Для быстрого разворота включайте
CloseOnBiasFlip. - Реализация трейлинг-стопа приблизительная: оригинал опирался на текущий спред. Здесь стоп подтягивается после движения примерно на двойное расстояние стопа, что даёт схожий эффект без необходимости знать фактический спред.