Close Profit End Of Week Strategy автоматизирует работу скрипта MetaTrader Closeprofitendofweek.mq5. Стратегия следит за выбранным инструментом и по пятницам после настраиваемого контрольного времени закрывает каждую прибыльную позицию. Цель — зафиксировать плавающий результат перед выходными и снизить разрывный риск.
Поведение оригинального MQL-советника
Исходный эксперт работал в таймере: каждую итерацию он проверял, настала ли пятница и наступило ли заданное время окончания торгов. Если условия выполнялись, советник проходил по всем позициям по текущему символу и закрывал те из них, что имели положительный результат. Для криптовалютных инструментов логика отключалась, поскольку они торгуются без выходных.
Реализация в StockSharp
Перенос на C# сохраняет исходную защиту, используя высокоуровневый API StockSharp:
Подписывается на выбранный ряд свечей исключительно для получения регулярных отметок времени.
Обрабатывает только завершённые свечи и проверяет, что они относятся к пятнице и закрылись после контрольного времени.
Считывает из подключённого портфеля текущую позицию по торгуемому инструменту и оценивает её плавающую прибыль.
Формирует рыночную заявку в противоположную сторону для каждой открытой и прибыльной позиции.
Полностью отключает процедуру, если инструмент определён как крипто-актив.
Параметры
Имя
Описание
Значение по умолчанию
StartTradeTime
Начало окна мониторинга (оставлено ради соответствия входам MQL).
00:00
EndTradeTime
Время, после которого по пятницам необходимо закрыть прибыльные позиции.
20:00
CloseTradesAtEndTime
Включает или отключает автоматическое закрытие.
true
CandleType
Тип данных, используемый для контроля времени (по умолчанию минутные свечи).
TimeFrameCandle(1m)
Последовательность работы
При запуске стратегия проверяет, не относится ли выбранный инструмент к классу криптовалют. Для крипто-активов защита не активируется, повторяя логику исходного советника.
Создаётся подписка на свечи, чтобы получать сигналы после их завершения.
Каждая завершённая свеча проходит фильтр по дню недели и времени закрытия. Дальнейшие действия выполняются только по пятницам после заданного времени.
Стратегия анализирует подключённый портфель, находит позицию по нужному инструменту и считывает её плавающую прибыль.
Если прибыль положительна, отправляется рыночный ордер противоположного направления для полного закрытия позиции.
Перед отправкой ордера проверяется отсутствие уже активных заявок на закрытие, чтобы избежать дублирования.
Рекомендации по использованию
Запускайте стратегию на некриптовалютных инструментах вместе с тем портфелем, в котором удерживаются контролируемые позиции.
Стратегия не открывает новых сделок, она работает только как защитный модуль для уже существующих позиций.
Параметр StartTradeTime оставлен для совместимости и возможных расширений, но в текущей логике не используется.
При мультиинструментальной торговле запускайте отдельный экземпляр для каждого символа, чтобы сохранить фокус на одном активе, как в версии MetaTrader.
Ограничения
Расчёт прибыли опирается на оперативные данные портфеля брокера. Если PnL обновляется с задержкой, команды на закрытие могут прийти позже.
Закрываются только позиции по настроенному инструменту; остальные активы остаются нетронутыми.