HBS System — это конверсия советника MetaTrader 4 «HBS system.mq4» (ForTrader.ru) на высокоуровневый API StockSharp. Оригинальная система использует экспоненциальную скользящую среднюю и набор стоп-ордеров, которые привязываются к округлённым ценовым уровням. В направлении тренда выставляются два стоп-ордера: первый фиксирует прибыль у ближайшего округлённого уровня, второй нацелен на дальнейший пробой. Оба ордера имеют общий защитный стоп и общую схему трейлинг-стопа.
Перенос на StockSharp сохраняет многозвенную структуру входов и управляет рисками через стандартные методы BuyStop, SellStop, BuyLimit и SellLimit. Все комментарии и пояснения в коде приведены на английском языке, как требуют правила репозитория.
Логика торговли
Фильтр тренда. Экспоненциальная скользящая средняя рассчитывается по медианной цене завершённых свечей ((High + Low) / 2). Обрабатываются только завершённые свечи — это повторяет вызовы iMA(..., shift=1) из MT4.
Округление уровней. Цена закрытия предыдущей свечи округляется вверх и вниз с помощью настраиваемого множителя (по умолчанию 100, то есть две цифры после запятой). Такое поведение имитирует MathCeil/MathFloor из оригинала.
Построение входа. Если предыдущая свеча открылась и закрылась выше EMA, выставляются два отложенных ордера Buy Stop:
Первичный ордер размещается на уровне округление − entryOffset, а take-profit совпадает с округлённым уровнем.
Второй ордер использует тот же вход, но take-profit смещается на secondaryTakeProfitPoints пунктов дальше.
Оба ордера разделяют единый stop-loss (entry − stopLossPoints).
Для коротких позиций логика зеркальна: используются Sell Stop, stop-loss выше входа и take-profit ниже округлённого уровня. Противоположные отложенные ордера отменяются, чтобы избежать конфликтов.
Управление позицией. При срабатывании отложенного ордера создаётся отдельный лимитный ордер take-profit и обновляется общий стоп. Трейлинг-стоп подтягивает защитный ордер только после движения цены на заданное число пунктов.
Очистка состояний. Выполненные и отменённые ордера удаляются из внутренних коллекций. При возврате позиции в ноль все защитные ордера снимаются, и стратегия полностью перезагружается.
Параметры
Параметр
Описание
Значение по умолчанию
EMA Period
Период EMA, определяющий тренд.
200
Buy Stop-Loss (points)
Расстояние в пунктах между входом в лонг и защитным стопом.
50
Buy Trailing (points)
Дистанция трейлинг-стопа для длинных позиций.
10
Sell Stop-Loss (points)
Расстояние в пунктах между входом в шорт и защитным стопом.
50
Sell Trailing (points)
Дистанция трейлинг-стопа для коротких позиций.
10
Order Volume
Объём каждого отложенного ордера. Максимальная экспозиция равна удвоенному объёму.
0.1
Entry Offset (points)
Смещение (в пунктах) от округлённого уровня до цены стоп-ордера.
15
Second Take-Profit (points)
Дополнительное смещение для удалённого take-profit.
15
Rounding Factor
Множитель, определяющий точность округления цены.
100
Candle Type
Тип свечных данных (по умолчанию часовой таймфрейм).
TimeFrame(1h)
Практические замечания
Убедитесь, что у инструмента задан PriceStep или Decimals. При отсутствии данных используется запасное значение 0.0001.
Каждый отложенный ордер закрывается своим take-profit, поэтому выход происходит в две ступени.
Трейлинг активируется только после продвижения цены на заданную дистанцию (TrailingStop{Buy/Sell}Points).
Если инструмент требует другого формата округления, измените параметр RoundingFactor.
Стратегия не содержит встроенного манименеджмента — задавайте OrderVolume с учётом собственных рисков.
Особенности конверсии
Структура кода соответствует требованиям репозитория: табуляция, пространство имён StockSharp.Samples.Strategies, английские комментарии.
Используются высокоуровневые подписки на свечи и стандартные методы управления ордерами и защитой позиции.
Логика двухступенчатых take-profit и общего стопа полностью повторяет оригинальный алгоритм.