Very Blondie System
Обзор
Very Blondie System — это краткосрочная сеточная стратегия возврата к среднему, изначально реализованная в советнике MetaTrader 4 «VBS - Very Blondie System». Логика остаётся прежней: после сильного отклонения цены от ближайших экстремумов диапазона за последние PeriodX баров система сразу входит по рынку и выставляет четыре лимитных ордера Мартингейла, чтобы добирать позицию, если движение продолжится.
Данные и индикаторы
- Основные данные: одна серия свечей, задаваемая параметром
CandleType(в MT4 советник использовал таймфрейм графика). - Индикаторы:
HighestиLowestдлинойPeriodLength, отслеживающие скользящие максимумы и минимумы для определения пробоя. - Лента Level1: лучшие Bid/Ask используются для выставления рыночных и лимитных ордеров с теми же отступами, что и в MT4.
Логика входа
- На каждом завершённом баре вычисляется максимум и минимум за последние
PeriodLengthсвечей. - Получаем текущие значения bid/ask (при отсутствии котировки берётся цена закрытия свечи).
- Покупка: если
highest - bid > LimitPoints * PointValue, отправляется рыночная покупка базовым объёмом и четыре лимитные заявки ниже ask. Каждая заявка сдвигается наGridPoints * PointValueдальше и удваивает объём предыдущей (1×, 2×, 4×, 8×, 16×). - Продажа: если
bid - lowest > LimitPoints * PointValue, отправляется рыночная продажа и четыре sell-limit выше bid на тех же дистанциях и с теми же множителями объёма. - Одновременно может существовать только одна «корзина». Новые сигналы игнорируются, пока не будут закрыты все позиции и сняты отложенные ордера предыдущей серии.
Управление позицией
- Денежный профит: исходный параметр
AmountсуммировалOrderProfit + OrderSwapпо всем сделкам. Порт использует эквивалент — совокупную позицию:(close - entryPrice) * position * conversionFactor >= ProfitTarget. При достижении порога вся позиция закрывается по рынку, лимитные заявки удаляются. - Lockdown / перевод в безубыток: при
LockDownPoints > 0MT4 переносил стоп каждого ордера наentry price ± Point, когда сделка уходила в плюс наLockDownPointsпунктов. В StockSharp отслеживается суммарная позиция: как только цена проходитLockDownPoints * PointValue, фиксируется уровень безубыткаentryPrice ± PointValue. Если последующая свеча касается этого уровня (минимум для лонга, максимум для шорта), вся корзина закрывается по рынку и все лимитки снимаются. - Принудительное закрытие: остановка стратегии или срабатывание профита/безубытка всегда приводит к снятию четырёх лимитных заявок, что повторяет функцию
CloseAll()из MT4.
Управление капиталом
- Базовый объём: полностью повторяет формулу MT4
MathRound(AccountBalance()/100) / 1000. Берётся текущая стоимость портфеля (или стартовая, если сделок не было), округляется от нуля и переводится в лоты. Объём приводится кSecurity.VolumeStep, учитываетMinVolume/MaxVolumeи при отсутствии данных портфеля откатывается к параметруVolume(или1). - Сетка Мартингейла: каждый дополнительный лимитный ордер удваивает базовый объём, всего четыре уровня (1×, 2×, 4×, 8×, 16×). Все объёмы нормализуются тем же методом, чтобы избежать дробных лотов.
- Параметр PointValue: в MT4
Pointможет отличаться отSecurity.PriceStep(особенно для 5‑значных котировок). По умолчаниюPointValueвычисляется автоматически изPriceStep/Step, но при необходимости его можно задать вручную для точного соответствия оригиналу.
Параметры
| Имя | Описание | Значение по умолчанию |
|---|---|---|
PeriodLength |
Длина окна для расчёта максимумов/минимумов | 60 |
LimitPoints |
Минимальное расстояние (в пунктах MT4) от текущей цены до экстремума диапазона для запуска корзины | 1000 |
GridPoints |
Шаг (в пунктах MT4) между лимитными ордерами сетки | 1500 |
ProfitTarget |
Целевой плавающий профит в валюте счёта | 40 |
LockDownPoints |
Прибыль (в пунктах MT4), после которой активируется защита безубытка | 0 |
PointValue |
Изменение цены, соответствующее одному пункту MT4 (0 = авто) |
0 |
CandleType |
Свечная серия, управляющая стратегией | TimeFrameCandle, 1 minute |
Особенности порта
- Плавающая прибыль рассчитывается по совокупной позиции, а не по сумме
OrderProfit + OrderSwap, что эквивалентно оригиналу при однонаправленных сделках (как и задумывалось в MT4). - Перенос стоп-лосса реализован как рыночный выход на уровне безубытка; никаких отдельных
OrderModifyне отправляется — логика остаётся внутри стратегии. - Цены лимитных ордеров нормализуются через
Security.ShrinkPrice. Если у инструмента нетPriceStep, необходимо задатьPointValueвручную, чтобы сетка совпадала с MT4. - Используются только высокоуровневые вызовы (
SubscribeCandles,SubscribeLevel1,BuyLimit,SellLimitи т. д.), как того требуют инструкции по конвертации.