Стратегия Virtual Robot
Общее описание
Virtual Robot переносит сеточный алгоритм исходного эксперта MetaTrader. Стратегия ведёт две независимые виртуальные сетки (для покупок и продаж) на выбранном таймфрейме свечей. Реальные рыночные заявки отправляются только после того, как количество виртуальных уровней достигнет заданного порога. Таким образом сохраняется логика MT4, где виртуальные уровни управляют реальными позициями.
Логика торговли
- Формирование виртуальной сетки. После закрытия каждой свечи:
- если свеча закрылась выше открытия, добавляется новый виртуальный уровень покупок при условии, что расстояние до предыдущего уровня превышает
PipStepPips; - если свеча закрылась ниже открытия, аналогичное правило применяется для виртуальной сетки продаж;
- первые
VirtualStepperвиртуальных ордеров открываются базовым объёмом, последующие умножаются наMultiplier.
- если свеча закрылась выше открытия, добавляется новый виртуальный уровень покупок при условии, что расстояние до предыдущего уровня превышает
- Переход к реальным ордерам. Как только на стороне накапливается не менее
StartingRealOrdersвиртуальных уровней (или существующая корзина ушла в минус минимум на один шаг), открывается реальный рыночный ордер. Объём рассчитывается по схеме мартингейлаMultiplier * (просадка / PipStepPips). - Ведение корзины. Стратегия хранит:
- цену и объём последнего выполненного ордера по каждой стороне;
- взвешенную среднюю цену корзины (виртуальную либо реальную — зависит от
RealAverageThreshold).
- Выход по прибыли. Корзина закрывается, когда выполняется одно из условий:
- цена прошла
MinTakeProfitPipsот первого виртуального уровня; - цена вернулась к взвешенной виртуальной средней ±
AverageTakeProfitPipsдля многоуровневой сетки; - достигнут индивидуальный или усреднённый тейк-профит, рассчитанный из
TakeProfitPips/AverageTakeProfitPips.
- цена прошла
- Выход по стопу. Мягкий стоп вычисляется от цены последнего реального ордера и
StopLossPips. При пересечении уровня корзина закрывается. - Контроль объёмов. Все объёмы нормализуются по метаданным инструмента (
VolumeStep,MinVolume,MaxVolume) и ограничиваются параметромMaxVolume.
Параметры
| Параметр | Описание |
|---|---|
CandleType |
Таймфрейм свечей, на основании которых строится виртуальная сетка (по умолчанию 60 минут). |
StopLossPips |
Дистанция стоп-лосса в пунктах от последнего ордера. |
TakeProfitPips |
Тейк-профит для одиночной позиции. |
MinTakeProfitPips |
Минимальная прибыль для закрытия первой виртуальной ступени. |
AverageTakeProfitPips |
Цель прибыли для усреднённой корзины. |
BaseVolume |
Базовый лот для первых ордеров сетки. |
MaxVolume |
Максимально допустимый лот. |
Multiplier |
Множитель объёма при усреднении. |
RealStepper |
Количество реальных ордеров до включения множителя. |
VirtualStepper |
Число виртуальных ордеров базовым объёмом до масштабирования. |
PipStepPips |
Минимальная просадка (в пунктах) между соседними уровнями сетки. |
MaxTrades |
Лимит реальных ордеров на сторону. |
StartingRealOrders |
Число виртуальных уровней, необходимое для открытия первого реального ордера. |
RealAverageThreshold |
После скольких реальных ордеров используется фактическая средняя цена. |
VisualMode |
Параметр сохранён для совместимости (в StockSharp не используется). |
Особенности реализации
- В StockSharp используется неттинг, поэтому одновременные независимые длинные и короткие корзины, как в хеджинговом MT4, невозможны. Если обе виртуальные сетки активируются, последняя инициатива развернёт суммарную позицию.
- Графические объекты из оригинала не строятся — виртуальные уровни хранятся только в памяти стратегии.
- Стоимость пункта вычисляется из
Security.PriceStepс корректировкой ×10 для трёх- и пятизнаковых валютных инструментов, что повторяет логику MT4. - Защитные стопы и тейки реализованы программно: стратегия отслеживает цену в обработчике свечей и закрывает позицию рыночными приказами.
Рекомендации по использованию
- Проверьте заполненность метаданных инструмента (
PriceStep,VolumeStep,MinVolume,MaxVolume), иначе расчёт пунктов и объёмов может отличаться от брокерских правил. - Тестируйте стратегию на исторических данных или на малых объёмах, чтобы убедиться в корректности расстояний сетки и коэффициента усреднения.
- Подбирайте
StartingRealOrdersиRealStepperв зависимости от допустимой просадки и агрессивности сетки.