Паралельная модификация ордеров (8 в 1)

  • Автор темы Автор темы profit777Qq
  • Дата начала Дата начала

profit777Qq

Прохожий
Здравствуйте. Подскажите пожалуйста как можно одномоментно (в 8 потоков) модифицировать огромное количество ордеров (sl/tp) в параллельно открытых окнах графиков одного терминала мт4. В какую сторону копать? Для примера когда - то для мт4 была возможность одновременно модифицировать 8 ордеров - открывая 8 графиков в одном терминала. может есть пример или идея. Спасибо.
 

Ugar

Гуру форума
Здравствуйте. Подскажите пожалуйста как можно одномоментно (в 8 потоков) модифицировать огромное количество ордеров (sl/tp) в параллельно открытых окнах графиков одного терминала мт4. В какую сторону копать? Для примера когда - то для мт4 была возможность одновременно модифицировать 8 ордеров - открывая 8 графиков в одном терминала. может есть пример или идея. Спасибо.
Есть же GV переменные. Они доступны всем программам, работающим внутри терминала. Функция сигнальщик пишет команду в GV. Советники на нескольких окнах проверяют состояние GV, как только там появляется сигнал -выполняют. Если все советники стоят на одном символе, тики будут там одновременно. Значит одновременно они обнаружат сигнал и одновременно будут выполнять.
Главное не превысить количество потоков отправки ордеров.

PS Мне стыдно, но я не знаю сколько сейчас потоков отправки ордеров в МТ4. Раньше был только один поток. Я до сих пор, перед отправкой ордера, проверяю есть ли свободный поток.
 
Последнее редактирование:

AlexeyVik

Программист mql4 mql5
Андрей, не знать не стыдно. Нет нужды и знать не надо... 8 потоков уже так давно, что и вспомнить сложно.

Что касается решаемой проблемы, на мой взгляд GV не помогут. получается что на одном тике ведущий советник пишет GV, а другие читают только на следующем тике. Получается задержка. Потом как остановить всю эту вакханалию модификации? Видимо надо удалить GV, но как определить момент удаления?
Мои рассуждения вслух:
Восемь советников отслеживают момент модификации и модифицируют каждый свой ордер. Пусть будет 18 ордеров, один советник модифицирует из списка OrdersTotal() 0, 8 и 16, второй 1, 9 и 17 третий только 2 и 9 ... восьмой 7 и 15
Но это надо проверять...
 

profit777Qq

Прохожий
Восемь советников отслеживают момент модификации и модифицируют каждый свой ордер. Пусть будет 18 ордеров, один советник модифицирует из списка OrdersTotal() 0, 8 и 16, второй 1, 9 и 17 третий только 2 и 9 ... восьмой 7 и 15
Но это надо проверять...
Спасибо всем за ответы. Задумывался над этим... вот только вопрос - отдельные терминалы или черты с отдельными советниками в пределах одного терминала. Спасибо.

П.С. А где можно прочитать о 8 поточности... так как что-то не могу найти. Спасибо
 

Ugar

Гуру форума
Андрей, не знать не стыдно. Нет нужды и знать не надо... 8 потоков уже так давно, что и вспомнить сложно.

Что касается решаемой проблемы, на мой взгляд GV не помогут. получается что на одном тике ведущий советник пишет GV, а другие читают только на следующем тике. Получается задержка. Потом как остановить всю эту вакханалию модификации? Видимо надо удалить GV, но как определить момент удаления?
Мои рассуждения вслух:
Восемь советников отслеживают момент модификации и модифицируют каждый свой ордер. Пусть будет 18 ордеров, один советник модифицирует из списка OrdersTotal() 0, 8 и 16, второй 1, 9 и 17 третий только 2 и 9 ... восьмой 7 и 15
Но это надо проверять...
Алексей, я имел ввиду что сигнальщик только сигналит, не модифицирует. Остальные модифицируют по сигналу. GV это только способ связать их между собой. Но твой способ быстрее. Естественно, проблема ещё и в том что бы они не подрались за закрытие одного ордера, вместо этого закрывал каждый свой. Ориентироваться по номеру ордера в списке, не очень. Ведь там могут быть ордера другого символа и маджика. Но различать как то надо. Либо задействовать 8 маджиков, либо метки в комментарии, либо собрать свои ордера в массив и работать с номерами ячеек массива. Всё это вопрос реализации. Хотя, если подумать, синхронность работы будет только у первой восьмёрки. Далее они разъедутся во времени, ведь время исполнения приказов обычно не одинаковое.
 

AlexeyVik

Программист mql4 mql5
Алексей, я имел ввиду что сигнальщик только сигналит, не модифицирует. Остальные модифицируют по сигналу. GV это только способ связать их между собой. Но твой способ быстрее. Естественно, проблема ещё и в том что бы они не подрались за закрытие одного ордера, вместо этого закрывал каждый свой. Ориентироваться по номеру ордера в списке, не очень. Ведь там могут быть ордера другого символа и маджика. Но различать как то надо. Либо задействовать 8 маджиков, либо метки в комментарии, либо собрать свои ордера в массив и работать с номерами ячеек массива. Всё это вопрос реализации. Хотя, если подумать, синхронность работы будет только у первой восьмёрки. Далее они разъедутся во времени, ведь время исполнения приказов обычно не одинаковое.
Я считаю что ставить с таким скорострельным советником какой-то ещё, это самоубийство. Поэтому о разных магиках даже и не думал.
В принципе, если учесть, что других советников не будет, можно сделать восемь магиков и поставить работу каждого дополнительного советника на работу со своим магиком, чтобы они не дрались за один ордер. В общем полёт фантазии никто не отменял.
 
  • Like
Реакции: Ugar

profit777Qq

Прохожий
Сспасибо за Ваши ответы! Да была такая идея с разделением ордеров на групы. Вы имели ввиду в пределах одного терминала на разных чартах или в нескольких терминалах?
 

Ugar

Гуру форума
Спасибо всем за ответы. Задумывался над этим... вот только вопрос - отдельные терминалы или черты с отдельными советниками в пределах одного терминала. Спасибо.

П.С. А где можно прочитать о 8 поточности... так как что-то не могу найти. Спасибо
О 8 потоках стоит думать только если работать в пределах одного терминала. Именно терминал имеет ограничение в количестве потоков. При работе несколькими терминалами, каждый из них может 8 потоков.
 

profit777Qq

Прохожий
О 8 потоках стоит думать только если работать в пределах одного терминала. Именно терминал имеет ограничение в количестве потоков. При работе несколькими терминалами, каждый из них может 8 потоков.

Спасибо за ответ. А есть оф. документация на такое решение или подсказка как такое можно реализовать (может какой-то пример со схожей логикой). Так как ничего не находится. Спасибо огромное.
 

Ugar

Гуру форума
Спасибо за ответ. А есть оф. документация на такое решение или подсказка как такое можно реализовать (может какой-то пример со схожей логикой). Так как ничего не находится. Спасибо огромное.
У меня нет примера. Я такого пока не писал. Никто не заказывал такой комплекс советников.
 
Верх