Работа завершена
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Техническое задание
Необходимо доработать советник в части контроля ранее открытых ордеров, после перезагрузки терминала и сделать замок.
Советник работает в паре с индикатором Elder_Impulse_System, данные которого используются для открытия ордеров (файлы прилагаются).
В советнике организовано несколько циклов:
1. Открытие ордеров с использованием параметров «Количество сигнальных свечей (раб тф)», «Количество сигнальных свечей (контр тф)», рабочий таймфрейм, контрольный таймфрейм, объем позиции, максимальный спред, уровень маржи (проценты)
2. Закрытие ордеров по достижению значений параметров TP (Прибыль, валюта) и SL (Убыток, валюта)
3. Установка безубытка в виде стоп-лосса на сервере брокера, при достижении профита в размере **% от суммы TP (Прибыль, валюта)
4. Открытие хедж-одрера на основе параметра «Множитель объема при просадке, коэфф», «Просадка, проценты» и установка на нем безубытка, при достижении профита в размере **% от суммы TP (Прибыль, валюта)
5. Установка таймаута после закрытия ордеров, используется параметр «Таймаут, минуты»
Краткий обзор работы советника:
Советник одновременно обрабатывает два таймфрейма и ждет, когда наступит событие удовлетворяющее условиям параметров «Количество сигнальных свечей (раб тф)» и «Количество сигнальных свечей (контр тф)», после чего происходит открытие ордера с соблюдением контрольных процедур (контролируются значения из параметров «максимальный спред» и «уровень маржи (проценты)»)
Если профит по ордеру достигает **% от суммы указанной в параметре «Прибыль, валюта», то выставляется безубыток в виде стоп-лосса на сервере брокера на цену открытия ордера.
Если просадка ордера достигает отрицательного значения равного **% (параметр «Просадка, проценты») от суммы SL (Убыток, валюта), то открывается хедж-ордер в противоположную сторону в объёме на основе параметра «Множитель объема при просадке, коэфф» от открытого ордера, т.е. если первоначальный ордер был 0.1, а множитель был установлен в размере 2, то хедж-ордер открывается в объёме 0.2
Функция таймаута активируется при достижении значений профита (Прибыль, валюта) или просадки (Убыток, валюта), а также безубытка (стоп-лосс на сервере брокера), т.е. после закрытия ордера.
Что не устраивает (нужно доработать):
1. После перезагрузки терминала, советник перестает контролировать ранее открытые ордера и начинает открывать все по-новому, т.е. нужен контроль ранее открытых ордеров
2. Не происходит схлопывания (закрытия ордеров) ордеров при ХЕДЖИРОВАНИИ. Необходимо реализовать следующие варианты закрытия ордеров:
2.1. При достижении значений профита и просадки, при которых ордера выходят на нуль
Пример: Открыли ордер 0.1 в BUY, (Прибыль, валюта) – 10, (Убыток, валюта) – 60
Ордер ушёл в просадку на $30, что составляет 50% от значения параметра «Убыток, валюта», далее происходит открытие ХЕДЖ-ОРДЕРА 0.2 в SELL.
Цена продолжает движение вниз, просадка ордера BUY достигла $60, и профит ХЕДЖ-ОРДЕРА SELL достиг $60, в этот момент советник должен сложить значения просадки и профита, если полученное значение равно или больше нуля, то должна быть команда на закрытие ордеров BUY и SELL по рынку.
2.2. При изменении направления цены после открытия ХЕДЖ-ОРДЕРА
Пример: Открыли ордер 0.1 в BUY, (Прибыль, валюта) – 10, (Убыток, валюта) – 60
Ордер ушёл в просадку на $30, что составляет 50% от значения параметра «Убыток, валюта», далее происходит открытие ХЕДЖ-ОРДЕРА 0.2 в SELL.
В этот момент происходит изменение направления цены, при этом у ХЕДЖ-ОРДЕРА SELL НЕ установился безубыток на точку входа в рынок, т.е. его профит не достиг нужного значения, при котором выставляется стоп-лосс на сервере брокера на цену входа в рынок.
Цена продолжает движение вверх и ордер BUY закрывается при достижении значения параметра (Прибыль, валюта) – $10, в этот момент советник должен подать команду на закрытие ХЕДЖ-ОРДЕРА SELL с убытком по рыночной цене.