仕事が完了した
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
指定
Сохранить имеющийся функционал и внести новый, а именно:
1)добавить выбор способа закрытия ордеров при остановке работы советника: 1 - закрывать все; 2 - закрывать по take profit.
1 - "Закрывать все" - по достижении времени окончания работы советника или паузы в работе советника советник полностью останавливает свою работу с закрытием всех ордеров как одиночных так и сетку не зависимо от того в прибыли они или нет.
2 - "Закрывать по take profit" - по достижении времени окончания работы советника или паузы в работе советника советник останавливает свою работу частично и выполняет функции необходимые для закрытия всех ордеров по take profit/stop loss/trailing stop/по сигналу закрытия ордеров ADX, в том числе наращивает сетку (открытие ордеров по сигналам индикаторов не происходит).
2) добавить уровни включения фильтрации на старшем timeframe по линии ADX. Фильтр должен иметь 3 режима?работает всегда, работает от уровней, выключен (эта функция есть).
Уровни фильтрации по линии ADX на старшем timeframe - нужно отслеживать значение линии ADX на старшем timeframe, выставлять 2 уровня или 1 на старшем timeframe, каждый имеет своё значение. Оба уровня включают и выключают фильтр.
Включение фильтра происходит при пробитии линией ADX 1-ого или 2-ого уровня снизу вверх и выключает фильтр при пробитии их же сверху вниз (это надо если тренд не сильный и далеко ADX не уйдёт).
Уровень 1 выделить, что бы было понятно какой уровень может включать и выключать фильтр, можно назвать стартовым.
Сделать отдельное закрытие ордера/сетки при пересечении уровней снизу вверх, если ордер/сетка противоположного направления фильтру. Функцию сделать отключаемой, сделать выбор закрытия: закрытие всех ордеров, только одиночных. "Закрытие всех ордеров" - закрывать ордера в прибыли или убытке как одиночных так сетки. "Только одиночных" - если развёрнута сетка её не закрывать.
Добавить функцию открытия ордеров на младшем timeframe (вся работа советника) по пробитию 1-ого уровня. Начинать отсчёт всех значений на младшем timeframe только после пробития 1-ого уровня на старшем timeframe. Сделать отключаемой.
3) Добавить новые пункты в меню.
Меню на английском языке.
Способ достижения поставленной цели и названия пунктов меню на выбор программисту.
Советника предоставлю.