Подключаемый модуль SR (StopReverse)
для советников Метатрейдер
Назначение: Обеспечение в торгующем советнике поддержки (сопровождения) открытых ордеров методом Стоп-Переворот (открытие ордера в противоположном направлении при достижении определенного уровня убытка). Модуль может быть подключен к любому советнику открывающему ордера на своем символе (на символе графика на котором он работает) и не использующий для маркировки ордеров различные магики. Обязательным условием возможности использования модуля является наличие у открываемых экспертом ордеров стоплосса.
Если советник открывает ордера на том же символе, на графике которого он работает, в советнике используется один магик, ордера имеют стоплосс - модуль может быть подключен к этому советнику и будет работать правильно.
При появлении рыночного ордера с заданным магиком, к нему, на уровне его стоплосс, выставляется отложенный стоп-ордер противоположного направления – для ордеров buy выставляется ордер sellstop, для ордеров sell – buystop. Стоплосс отложенного ордера выставляется на уровне цены открытия рыночного ордера (фиксированный коридор). При срабатывании стоплосс рыночного ордера срабатывает отложенный ордер, выставляется противоположный стопордер на уровне стоплосс рыночного ордера и т.д. (рис. 1).
Рис. 1. Пример работы модуля SR.
Модуль обеспечивает несколько вариантов прогрессии объема ордера: обычный Мартингейл (удвоение объема начального ордера), геометрическую прогрессию с заданным коэффициентом увеличения, арифметическую прогрессию начального лота, геометрическую прогрессию добавки к начальному лоту, арифметическую прогрессию добавки к начальному лоту, также, возможно для каждого ордера в последовательности ордеров, устанавливать независимый от других ордеров объем (количество ордеров не ограничено). Всего доступно семь вариантов прогрессии объема ордера. Аналогичная возможность обеспечена и с тейкпрофитами - можно использовать постоянные значения уровня и тейкпрофита или задавать свои значения для каждого ордера.
Подключение модуля. Для подключения модуля к советнику необходимо добавить в код советника всего четрые строчки кода: подключить файл, вызвать функцию инициализации из функции init() советника, вызвать функции деинициализации из функции deinit() советника и вызвать основную функцию из функции start() советника (рис. 3).

Рис. 2. Подключение модуля SR.
При вызове основной функции в нее передается два параметра: магик ордеров советника и магик устанавливаемый ордерам открываемым модулем.
После подключения модуля в окне свойств советника появляются параметры модуля (рис. 3).

Рис. 3. Параметры модуля SR в окне свойств советника.