Стратегия Udy Ivan Madumere
Общее описание
Советник Udy Ivan Madumere открывает только одну позицию в сутки, дожидаясь появления свечи с заданным часом открытия. Порт на StockSharp полностью повторяет это поведение: подписывается на нужную серию свечей, сравнивает исторические цены открытия и мгновенно реагирует после закрытия целевой свечи. Логика открытия/закрытия, контроль объёма и временные ограничения совпадают с MetaTrader 4.
Основные особенности:
- Анализирует лишь завершённые свечи и проверяет сигнал ровно в час
TradeHour. - Использует разницу между
Open[FirstLookback]иOpen[SecondLookback], чтобы выбрать короткое или длинное направление. - Реализует «лестницу» автоматического подбора лота как в оригинале (включается параметром
UseAutoVolume). - Применяет раздельные стоп-лоссы и тейк-профиты для длинных и коротких позиций, а также трейлинг-стоп только для шортов.
- Принудительно закрывает сделку по истечении
MaxHoldingHours, даже если защитные уровни не сработали.
Последовательность работы
- Подписаться на свечи типа
CandleTypeи игнорировать незавершённые бары, чтобы не реагировать преждевременно. - Копить историю цен открытия и вычислять разности
Open[FirstLookback] - Open[SecondLookback](сигнал на продажу) иOpen[SecondLookback] - Open[FirstLookback](сигнал на покупку). - Когда очередная свеча открылась в
TradeHour:- если медвежья разница превышает
ShortDeltaPoints * PriceStep, отправить рыночную продажу; - иначе, если бычья разница больше
LongDeltaPoints * PriceStep, отправить рыночную покупку.
- если медвежья разница превышает
- В сутки допускается только одна сделка. Флаг
canTradeсбрасывается после того, как часTradeHourпройден, и на следующую сессию снова разрешает вход. - При открытии позиции пересчитать базовый лот:
- при
UseAutoVolume = trueвыбирается значение из классической таблицы порогов по балансу; - если текущий баланс меньше последнего сохранённого значения, объём умножается на
BigLotMultiplier, повторяя «усиленный» лот из MetaTrader.
- при
- Пока позиция активна, на каждой свече проверяются:
- тейк-профит и стоп-лосс относительно зафиксированной цены входа;
- трейлинг-стоп для шортов — переносит защиту ближе по мере обновления минимума на величину
TrailingStopPoints; - ограничение по времени — закрытие по рынку после
MaxHoldingHoursчасов.
Параметры
| Название | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
CandleType |
DataType |
H1 |
Свечи, которые анализирует стратегия. |
TradeHour |
int |
18 |
Час (0–23), в который выполняется проверка сигнала. |
FirstLookback |
int |
6 |
Количество свечей назад для первого значения Open. |
SecondLookback |
int |
2 |
Количество свечей назад для второго значения Open. |
LongDeltaPoints |
decimal |
6 |
Минимальный бычий сдвиг (в поинтах MetaTrader) для открытия покупки. |
ShortDeltaPoints |
decimal |
21 |
Минимальный медвежий сдвиг (в поинтах) для открытия продажи. |
TakeProfitLongPoints |
decimal |
39 |
Тейк-профит для длинных позиций в поинтах. |
StopLossLongPoints |
decimal |
147 |
Стоп-лосс для длинных позиций в поинтах. |
TakeProfitShortPoints |
decimal |
200 |
Тейк-профит для коротких позиций в поинтах. |
StopLossShortPoints |
decimal |
267 |
Стоп-лосс для коротких позиций в поинтах. |
TrailingStopPoints |
decimal |
30 |
Трейлинг-стоп (поинты) только для шортов. |
BaseVolume |
decimal |
0.01 |
Базовый лот до коррекции money-management. |
UseAutoVolume |
bool |
true |
Включить автоматический подбор лота по балансу. |
BigLotMultiplier |
decimal |
1 |
Множитель «усиленного» лота при просадке баланса. |
MaxHoldingHours |
int |
504 |
Максимальное время удержания позиции в часах (0 — отключено). |
Технические детали реализации
- Разности поинтов переводятся в реальные цены через
PriceStep, поэтому стратегия корректно работает на инструментах с любым размером шага. - Для экономии памяти буфер цен открытия ограничен
max(FirstLookback, SecondLookback) + 1элементами. - Трейлинг-стоп отслеживает наилучшую цену сделки и обновляет защиту только при улучшении результата.
- Баланс берётся из
Portfolio.CurrentValue(если недоступен, изBeginValue), что делает поведение одинаковым в тестах и на боевых счетах. - Все комментарии в коде даны на английском языке, как требует инструкция, чтобы облегчить аудит и дальнейшие модификации.
Рекомендации по использованию
- Убедитесь, что
CandleTypeсовпадает с таймфреймом исходного советника (по умолчанию — часовые свечи). - При торговле инструментами с микро-лотами скорректируйте
BaseVolumeи при необходимости значения лестницы автолота под спецификацию брокера. - Визуализируйте сделки через встроенные помощники (
DrawCandles,DrawOwnTrades), чтобы контролировать единичные входы в запланированный час.