Стратегия Blau TVI Timed Reversal
Краткое описание
- Перенос с MetaTrader 5 эксперта Exp_BlauTVI_Tm.mq5 из каталога
MQL/21014. - Полностью повторяет вычисление индикатора Blau Tick Volume Index с тремя последовательными этапами сглаживания.
- Формирует разворотные сигналы, когда сглаженный TVI меняет направление, и может ограничивать открытие сделок заданным торговым окном.
- Поддерживает защиту по фиксированному стоп-лоссу и тейк-профиту в пунктах цены.
Алгоритм Blau TVI
Оригинальный эксперт использует ресурс BlauTVI.ex5. В версии StockSharp выполняются следующие шаги:
- Оценка количества тиков вверх/вниз
UpTicks = (Volume + (Close - Open) / PriceStep) / 2DownTicks = Volume - UpTicks- Поскольку агрегированные свечи не содержат tick-volume, используется суммарный объём свечи как приближение.
- Сглаживание 1-го уровня — отдельные средние для
UpTicksиDownTicksс длинойLength1и выбранным типом MA (EMA,SMA,SMMA,WMA,JMA). - Сглаживание 2-го уровня — второе сглаживание тех же серий длиной
Length2. - Расчёт TVI —
TVI = 100 * (Up2 - Down2) / (Up2 + Down2). - Сглаживание 3-го уровня — финальная фильтрация TVI длиной
Length3.
Для эмуляции SignalBar хранится короткая история последних значений TVI, что соответствует вызову CopyBuffer с отступом в исходном коде.
Торговые правила
- Определение наклона
- Если значение TVI на свече
SignalBar + 1ниже, чем наSignalBar + 2, и при этом наиболее свежий TVI превышает предыдущий, фиксируется смена наклона вверх (бычий сигнал). - Если значение TVI на
SignalBar + 1выше, чем наSignalBar + 2, и последнее значение ниже предыдущего, это смена наклона вниз (медвежий сигнал).
- Если значение TVI на свече
- Управление позициями
- При
EnableBuyOpen = trueи бычьем сигнале стратегия открывает длинную позицию, предварительно закрывая существующий шорт (увеличивает объём заявки на величину обратной позиции). - При
EnableSellOpen = trueи медвежьем сигнале открывается шорт с аналогичным учётом длинной позиции. EnableBuyClose = true— закрытие лонга при смене наклона вниз;EnableSellClose = true— закрытие шорта при смене наклона вверх.
- При
- Временной фильтр
EnableTimeFilter = trueограничивает открытия диапазоном [StartHour:StartMinute,EndHour:EndMinute]. Если начало больше конца, окно трактуется как «через ночь».- Выход из позиции выполняется сразу после выхода текущего времени за пределы окна.
- Защитные ордера
StopLossPointsиTakeProfitPointsпереводятся в абсолютное расстояние умножением наPriceStepи передаются вStartProtection. Ноль отключает соответствующий барьер.
Параметры
| Параметр | Описание |
|---|---|
Volume |
Базовый объём сделки; при развороте добавляется величина текущей позиции противоположного знака. |
CandleType |
Тип/таймфрейм свечей для расчётов (по умолчанию H4). |
MaType |
Тип средних для всех этапов (EMA, SMA, SMMA, WMA, JMA). |
Length1, Length2, Length3 |
Длины трёх последовательных сглаживаний. |
SignalBar |
Сдвиг по истории TVI: 1 означает использование предыдущей завершённой свечи. |
EnableBuyOpen, EnableSellOpen |
Разрешение открывать лонги/шорты. |
EnableBuyClose, EnableSellClose |
Разрешение закрывать лонги/шорты при смене наклона. |
EnableTimeFilter |
Включение торгового окна. |
StartHour, StartMinute, EndHour, EndMinute |
Границы торговой сессии в локальном времени. |
StopLossPoints, TakeProfitPoints |
Фиксированные расстояния стоп-лосса и тейк-профита в пунктах цены. |
Особенности реализации
- Вместо tick-volume применяется объём свечи, что максимально приближает расчёт к оригиналу при ограничениях StockSharp.
- Для соблюдения требований репозитория хранится только небольшой список последних значений TVI.
StartProtectionактивируется только при известном шаге цены; иначе защита запускается без фиксированных целей.- Комментарии переведены на английский язык, отступы выполнены табуляцией в соответствии с
AGENTS.md.
Рекомендации по использованию
- Используйте значения по умолчанию (H4 + EMA), чтобы получить поведение, идентичное исходному советнику.
- Изменение
SignalBarна 0 позволяет реагировать на последнюю свечу сразу после закрытия, но приводит к расхождению с логикой MT5. - Для инструментов с разрывами в торговой сессии настройте временной фильтр, чтобы избежать сделок в периоды низкой ликвидности.
- Стратегия работает с фиксированным объёмом; если необходим динамический мани-менеджмент, подключайте его на уровне портфеля.