Ускорить одновременную отправку ордеров - страница 3

 
Sergey Likho #:

Разделяете задачу на несколько советников, которые работают параллельно на разных графиках.

В первом советнике -логика, в остальных -совершение торговых операций.

Когда нужно открыть 3 сделки, советник с логикой отправляет 3 сообщения торговым советником. (Это занимает 0.00001 секунду)

А каждый из торговых советников открывает нужную сделку. 


Можно воспользоваться библиотекой - https://www.mql5.com/ru/code/28835

Спасибо большое, подскажите, аналогичная функция и библиотека есть для МТ4?
Так как я ограничена только этой версией терминала

 
Ihor Herasko #:
Если советник один и нельзя сделать из него три, общающихся между собой, то можно устроить одновременную отправку трех ордеров путем запуска трех скриптов. Но для этого потребуется разрешение на использование DLL.
Если не сложно подскажите каким образом это сделать для МТ4?
 
Fast235 #:

сомневаюсь что дело в расчетах, сейчас, то что давно вызывало ошибку, не помню даже как она называется - "типа долго считается индикатор" сейчас все очень быстро, загрузка процессора - достаточно сложных на мой взгляд, заданных мною индикаторов процессов ,

около 0,7% может, а было много.

По сути у меня на компьютере с оперативной памятью 2 гб и процессором 2.4 мг открыт 1 терминал
в терминале открыта 1 пара и отслеживается 1 индикатор - стохастик
по сути нагрузки минимум, а запас мощности достаточный
 
Andrey Khatimlianskii #:
Если время исполнения 4 секунды, нет смысла оставаться с этим брокером. Да, бонусы и ламборджини того не стоят.

Исполнение 1 ордера не занимает 4 секунды. Это последующие примерно так занимают время.
У меня на данный момент советник отправляет 3 ордера. 1 исполняется быстро. А вот 2 и 3 примерно по 4 секунды.
Возможно, что это из-за периода поступления тиков.
Т.е. пришел тик - 1 ордер ушел, затем пауза в тиках и соотвественно советник простаивает. (возможно это так? я могу ошибаться)

 
Fast235 #:

участнице нужно запустить профилировщик, может там лишний цикл крутится,

ps сделали ли разработчики его теперь, более ясным для обычных пользователей, т.к. начальная версия работала только на них самих и крайне самых задр.-тов, но и там даже не все понял.

Во всем коде 1 цикл который проверяет последние закрытые ордера - был плюс или минус и все.
Код очень простой. Сама суть моего метода в математике - сумма делится на 3 ордера, поэтому желательно, что бы ордера открывались одновременно.
Грубо говоря пошел импульс на 1 паре я открываю ордера на зависимых парах. (примерно такая логика!)
 
Vladimir #:
Да, решение в MT4 есть. На сервер можно послать до 8 ордеров, обработка которых будет видеться со стороны терминала вовсе не как поочередная, а как параллельная. При посылке 9 запросов на 9-м будете стабильно получать отказ "Торговый поток занят". Но посылать их нужно каждый из своего советника. Свой советник должен ждать получения результата своего запроса к серверу, и общий результат может оказаться таким, например: из 8 отправленных запросов 6 выполнены, у двух отказ.
Как я поняла из ответов в данной ветке - после того как я послала 1 ордер, пока от сервера не придет ответ советник будет ожидать.
Каким образом можно отправить сразу 3?
 

Продолжая изучать варианты я нашла что это возможно реализовать с помощью GlobalVariable
Т.е. советник - сервер следит за появлением ситуации (условия) и при появлении условия - создает глобальную переменную
а советник - клиент отслеживает появление глобальной переменной и при ее наличие открыть ордер (каждый на своей паре)

ну и затем изменить значение глобальной переменной - после открытия всех ордеров

 
Natalya Smirnova #:
Как я поняла из ответов в данной ветке - после того как я послала 1 ордер, пока от сервера не придет ответ советник будет ожидать.
Каким образом можно отправить сразу 3?

Ответ содержится в https://www.mql5.com/ru/forum/392959#comment_28814427.

Ускорить одновременную отправку ордеров
Ускорить одновременную отправку ордеров
  • 2022.04.07
  • www.mql5.com
Столкнулась с проблемой, хотела узнать существует ли вообще решение...
 
Aleksandr Volotko #:

вот только про Андрея вспоминал, у него были готовые решения для таких задач

Да, у меня был ТрейдБустер для решения этой задачи.

Но я убрал его с витрины, потому что не готов поддерживать.

 
Natalya Smirnova #:

Исполнение 1 ордера не занимает 4 секунды. Это последующие примерно так занимают время.
У меня на данный момент советник отправляет 3 ордера. 1 исполняется быстро. А вот 2 и 3 примерно по 4 секунды.
Возможно, что это из-за периода поступления тиков.
Т.е. пришел тик - 1 ордер ушел, затем пауза в тиках и соотвественно советник простаивает. (возможно это так? я могу ошибаться)

Для начала, разберитесь, сколько исполняются ордера.
Если 4 секунды, то решение однозначное — менять брокера.

Если проблема в том, что советник ждет следующих тиков, то нужно переписать советника.

Пилить костыли для одновременной отправки нескольких торговых запросов можно, но я бы скорее перешел на МТ5. Это перспективнее.