Tarea técnica
Необходимо модифицировать готовый бот-копир сделок. Добавить функции и оптимизировать (если это возможно).
Имеется копир MT4-MT4, MT5-MT5, MT4-MT5, MT5-MT4. Может копировать онлайн с пк на пк и локально.
1) Необходимо провести оптимизацию. Когда сервер, на котором установлен терминал трейдера загружается на 60-80%, то появляются задержки в копировании. При чем происходит это рандомно. То есть чаще копирует быстро, а может с задержкой в 10 сек. Если нагрузки не сервер большой нет, копирует быстро.
Я не знаю, можно это исправить или нет. Возможно, вы сможете в целом работу копира улучшить. Но если лучше в этом плане уже не сделать, то пойдет и так.
2) Краткое описание функции (Много текста т.к. расписал максимально подробно):
Добавить функцию «Smooth opening» true/false. После подключения нового инвестора к копированию не копировать ордера инструмента если на этот момент, на этом инструменте есть открытые ордера по определенному мэджику. Начать копировать только после закрытия всех ордеров по этому инструменту с этим мэджиком или при открытии ордеров с другим мэджиком.
Добавить функцию «Smooth close». Аналог «Smooth opening» только с обратным принципом. После активации данной функции перестать копировать ордера после закрытия всех сделок по мэджику на инструменте.
Нюансы:
-Данная настройка должна активироваться и работать на стороне трейдера.
-Сделки, которые не имеют мэджик, копировать по правилам функции «Open loss orders», которая уже встроена в копир. С этой функцией ранее открытые сделки открываются, если находятся в пределах заданного расстояния в пунктах в настройке «Indent price».
-Если «Smooth opening» false, то копирование должно происходить по логике функции «Open loss orders».
-При изменении настроек копира или инвестора, копир не должен забывать по каким парам и с какими мэджиками были открыты ордера при подключении инвестора.
Для чего нужны эти функции:
«Smooth opening» - необходима для плавного входа в торговлю. Если у трейдера уже есть открытые ордера, вероятно также имеется и сетка, которой советник выводит в плюс убыточную сделку. Инвестору, который только подключился к торговле, ничего разруливать не нужно, соответственно и сетка ордеров ему не нужна.
«Smooth close» - необходима для плавного выхода из торговли.
Пример работы функции «Smooth opening»:
На терминале трейдера работают 3 бота на парах EURUSD и AUDCAD.
По паре EURUSD 2 бота открыли по одной сделки, по AUDCAD нет ни одной сделки.
У бота «1» мэджик «1111», у бота 2 мэджик «2222» у бота 3 мэджик «3333».
К торговле подключается инвестор и сохраняет все мэджики откртых позиций по каждой отдельной паре, по которой открыты позиции. Ни одна из открытых сделок не копируются, т. к. они открыты до подключения инвестора. Открывается еще одна сделка с мэджиком «1111» и также не копируется, т. к. сделка с таким мэджиком была открыта до подключения инвестора. Точно также и не копируется новая сделка с мэджиком «2222». Далее открывается сделка с мэджиком «3333», и она сразу же копируется, т.к. не было открытых сделок с таким мэджиком до подключения инвестора. Открывается сделка с мэджиком «1111» по паре AUDCAD и копируется, т. к. при подключении инвестора не было открытых сделок с таким мэджиком по этой паре. Аналогично копируется и сделка с мэджиком «2222» по AUDCAD. Далее по паре EURUSD закрываются все сделки с мэджиком «1111». С этого момента бот должен забыть, что сделки с таким мэджиком по паре EURUSD копировать нельзя, следовательно все последующие сделки с этим мэджиком будут сразу же копироваться. Сделки с мэджиком «2222» не будут копироваться до тех пор, пока все не закроются все ордера с этим мэджиком по паре EURUSD. Сразу же после закрытия всех сделок с этим мэджиком их сразу же можно начать копировать.
Все аналогично должно работать и на всех остальных парах.
После того, как определенный мэджик позиций, открытых до подключения инвестора, будет удален из памяти копира, не должно быть дополнительных проверок перед копированием ордера, чтобы не замедлять копирование и не нагружать сервер.
Пример работы функции «Smooth close»:
На терминале трейдера работают 2 бота.
По паре EURUSD оба открыли по одной сделки.
У бота «1» мэджик «1111», у бота 2 мэджик «2222».
Включается функция «Smooth close». Новые сделки по другим парам или с другим мэджиком копироваться не будут. Сделки с мэджиками «1111», «2222» продолжают открываться, но только по паре EURUSD, т. к. были открыты до включения функции «Smooth close». Как только все сделки с мэджиком «1111» будут закрыты больше открыться они не смогут до отключения функции «Smooth close». Аналогично и с мэджиком «2222»
Все аналогично должно работать и на всех остальных парах.
После того, как все мэджики будут забыты, не должно быть дополнительных проверок перед копированием ордера, чтобы не замедлять копирование и не нагружать сервер.