Сколько роботов одновременно могут работать на 1 компе. - страница 3

 
ESM68_13:
          Здравствуйте,  есть вопрос по  поводу  работы нескольких советников в  одном  терминале. Пусть  имеется  несколько  роботов,  работающих на  разных графиках  в  потоке  одного и того  же терминала. Открытые и  отложенные  ордеры для каждого советника идентифицированы,  в  остальном же  мы  имеем почти идентичный  код и  следовательно много переменных  с одинаковыми именами. Не будет ли  конфликта при одновременном приходе и  обработке  тиков, и как вообще  решается такая  задача;  поможет  ли в этом  вопросе объектно-ориентированное программирование? Чем  отличается  решение в Metatrader4 и  Metatrader5?    За ранее спасибо.

Вообще-то каждый советник работает в своем потоке, но к делу это не относится, у каждого своя область памяти, т.е. они друг друга не видят никак. Главное, что бы не было глобальных переменных терминала с одинаковыми именами, если они используются. Похожая проблема работы с файлами, если у них будут одинаковые имена - будут конфликты.

Если пишете сами, легко меня поймете.

 

Думал, что разбираюсь в теме. Оказалось, что нет.

На сервере (железном, выделенном) под Win10 запущено 8 терминалов, на каждом по 25 графиков с весьма тяжелым советником и не менее тяжелым индикатором. Загрузка процессора в пределах 30-40%, памяти свободной тоже много.

Но советники пропускают тики и события таймера (подозреваю, что и другие события тоже, но не проверял). То есть, даже если запустить советника с одним принтом в OnTick, видно, что цена в обзоре рынка меняется, а принтов нет.


В какое ограничение упираются терминалы? Чего не хватает?
В какую сторону копать?

 
Andrey Khatimlianskii:

Думал, что разбираюсь в теме. Оказалось, что нет.

На сервере (железном, выделенном) под Win10 запущено 8 терминалов, на каждом по 25 графиков с весьма тяжелым советником и не менее тяжелым индикатором. Загрузка процессора в пределах 30-40%, памяти свободной тоже много.

Но советники пропускают тики и события таймера (подозреваю, что и другие события тоже, но не проверял). То есть, даже если запустить советника с одним принтом в OnTick, видно, что цена в обзоре рынка меняется, а принтов нет.


В какое ограничение упираются терминалы? Чего не хватает?
В какую сторону копать?

Пропуск тиков как ещё проверялся, кроме принтов? Возможно ли, что не тики пропускаются, а принты?
 
Edgar Akhmadeev:
Пропуск тиков как ещё проверялся, кроме принтов? Возможно ли, что не тики пропускаются, а принты?

Еще коментом на графике.

Проблема была замечена в другом — советник с секундным таймером начал запускаться очень редко (иногда с паузами в несколько минут).
Советник взаимодействует со моим собственным сервером через ВебРеквест. Такой же советник на другом компьютере в этот же момент работает исправно (запускается каждую секунду).

Проблема не в пропадании принтов, а в отсутствии реакции на события.

 
У меня на очень слабом VPS запущено 4 MT5 по 7 лёгких эксперта, CPU тоже 30%, а RAM 80%. Проверю-ка я на пропуски. А то сомнения появились.
 
Edgar Akhmadeev:
У меня на очень слабом VPS запущено 4 MT5 по 7 лёгких эксперта, CPU тоже 30%, а RAM 80%. Проверю-ка я на пропуски. А то сомнения появились.

Сам по себе пропуск ОнТик - явление нормальное. Но не по нескольку минут.

Помню древнее обсуждение похожей темы, там что-то фиксили в регистре винды, чтобы она разрешала то ли больше потоков, то ли событий, то ли еще чего-то. Но дело было так давно, что найти шансов нет.

Был бы очень кстати комментарий @Renat Fatkhullin или @Slava

 
Andrey Khatimlianskii:

Сам по себе пропуск ОнТик - явление нормальное. Но не по нескольку минут.

Считается вроде, что тики пропускаются только в МТ4, но не в МТ5.
 
Edgar Akhmadeev:
Считается вроде, что тики пропускаются только в МТ4, но не в МТ5.

Не путайте теплое с мягким.

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

Гарантируется доставка всех тиков в OnBookEvent и в индикаторном OnCalculate.

 
Andrey Khatimlianskii:

Не путайте теплое с мягким.

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

Гарантируется доставка всех тиков в OnBookEvent и в индикаторном OnCalculate.

кстати, почему разработчики в OnChartEvent включили очередь событий? не так много там событий Рабочих чтобы компьютер запинался, а вот в мультивалютнике засада с этим и нет альтернативы, кроме таймера, но там надо городить проверку дня недели, сколько еще лет должно пройти когда OnCalculateдобавят в советники.... 

вот вопрос давно уже, чье это уперство и торможение прогресса в программе

 
Andrey Khatimlianskii:


Андрей!

Почему Вас так часто банят?