Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, есть вопрос по поводу работы нескольких советников в одном терминале. Пусть имеется несколько роботов, работающих на разных графиках в потоке одного и того же терминала. Открытые и отложенные ордеры для каждого советника идентифицированы, в остальном же мы имеем почти идентичный код и следовательно много переменных с одинаковыми именами. Не будет ли конфликта при одновременном приходе и обработке тиков, и как вообще решается такая задача; поможет ли в этом вопросе объектно-ориентированное программирование? Чем отличается решение в Metatrader4 и Metatrader5? За ранее спасибо.
Вообще-то каждый советник работает в своем потоке, но к делу это не относится, у каждого своя область памяти, т.е. они друг друга не видят никак. Главное, что бы не было глобальных переменных терминала с одинаковыми именами, если они используются. Похожая проблема работы с файлами, если у них будут одинаковые имена - будут конфликты.
Если пишете сами, легко меня поймете.
Думал, что разбираюсь в теме. Оказалось, что нет.
На сервере (железном, выделенном) под Win10 запущено 8 терминалов, на каждом по 25 графиков с весьма тяжелым советником и не менее тяжелым индикатором. Загрузка процессора в пределах 30-40%, памяти свободной тоже много.
Но советники пропускают тики и события таймера (подозреваю, что и другие события тоже, но не проверял). То есть, даже если запустить советника с одним принтом в OnTick, видно, что цена в обзоре рынка меняется, а принтов нет.
В какое ограничение упираются терминалы? Чего не хватает?
В какую сторону копать?
Думал, что разбираюсь в теме. Оказалось, что нет.
На сервере (железном, выделенном) под Win10 запущено 8 терминалов, на каждом по 25 графиков с весьма тяжелым советником и не менее тяжелым индикатором. Загрузка процессора в пределах 30-40%, памяти свободной тоже много.
Но советники пропускают тики и события таймера (подозреваю, что и другие события тоже, но не проверял). То есть, даже если запустить советника с одним принтом в OnTick, видно, что цена в обзоре рынка меняется, а принтов нет.
В какое ограничение упираются терминалы? Чего не хватает?
В какую сторону копать?
Пропуск тиков как ещё проверялся, кроме принтов? Возможно ли, что не тики пропускаются, а принты?
Еще коментом на графике.
Проблема была замечена в другом — советник с секундным таймером начал запускаться очень редко (иногда с паузами в несколько минут).
Советник взаимодействует со моим собственным сервером через ВебРеквест. Такой же советник на другом компьютере в этот же момент работает исправно (запускается каждую секунду).
Проблема не в пропадании принтов, а в отсутствии реакции на события.
У меня на очень слабом VPS запущено 4 MT5 по 7 лёгких эксперта, CPU тоже 30%, а RAM 80%. Проверю-ка я на пропуски. А то сомнения появились.
Сам по себе пропуск ОнТик - явление нормальное. Но не по нескольку минут.
Помню древнее обсуждение похожей темы, там что-то фиксили в регистре винды, чтобы она разрешала то ли больше потоков, то ли событий, то ли еще чего-то. Но дело было так давно, что найти шансов нет.
Был бы очень кстати комментарий @Renat Fatkhullin или @Slava
Сам по себе пропуск ОнТик - явление нормальное. Но не по нескольку минут.
Считается вроде, что тики пропускаются только в МТ4, но не в МТ5.
Не путайте теплое с мягким.
OnTick не предназначен для получения тиков без пропусков. Напротив, он специально пропускает все тики, которые приходят во время его выполнения.
Гарантируется доставка всех тиков в OnBookEvent и в индикаторном OnCalculate.
Не путайте теплое с мягким.
OnTick не предназначен для получения тиков без пропусков. Напротив, он специально пропускает все тики, которые приходят во время его выполнения.
Гарантируется доставка всех тиков в OnBookEvent и в индикаторном OnCalculate.
кстати, почему разработчики в OnChartEvent включили очередь событий? не так много там событий Рабочих чтобы компьютер запинался, а вот в мультивалютнике засада с этим и нет альтернативы, кроме таймера, но там надо городить проверку дня недели, сколько еще лет должно пройти когда OnCalculateдобавят в советники....
вот вопрос давно уже, чье это уперство и торможение прогресса в программе
Андрей!
Почему Вас так часто банят?