Chart Event используется, но дело не в нем, так как им пользуются редко а тормоза возникают сами собой когда сервером никто не пользуется. зацикленный тестовый советник рядом работает хорошо, без задержек, т.е. сам он не виснет когда все виснет. У него также задержка в 50 милисекунд между циклами.
Nikolay Khrushchev: Chart Event используется, но дело не в нем, так как им пользуются редко а тормоза возникают сами собой когда сервером никто не пользуется. зацикленный тестовый советник рядом работает хорошо, без задержек, т.е. сам он не виснет когда все виснет. У него также задержка в 50 милисекунд между циклами.
Из библиотек подключены kernel32.dll и user32.dll - работа с буфером обмена. И еще одна библиотека которую сделал другой программист. Вот в ней то и есть сомнения.
this
более чем вероятно что советники (которые работают в разных тредах), просто не поделили один глобальный ресурс и все встало клином пока кто-то не отвалил по таймауту.
более чем вероятно что советники (которые работают в разных тредах), просто не поделили один глобальный ресурс и все встало клином пока кто-то не отвалил по таймауту.
попробую временно убрать, но врятли. обращение к буферу обмена происходит только когда это нужно пользователю (он кликает для копирования информации в определенном месте, притом нужен двойной клик. сам советник в своей работе буфер обмена не использует.
Nikolay Khrushchev: тормоза возникают сами собой когда сервером никто не пользуется.
Зависание может происходить из-за вызова определенных индикаторов функцией iCustom. Такие индикаторы при установке на график вызывают задержку порядка секунд. Все графики, в том числе и тиковые, встают - это идет расчет баров истории. Потом все начинает нормально работать. Посмотрите загрузку ядер процессора. Когда система 32-разрядная, 4 ядра и загрузка процессора 25%, то одно ядро загружено полностью и начинаются тормоза.
добрый день. мы имеем следующую иерархию 1терминал 2советник 3индикаторы которые вызывает советник. все события в советнике вызываются терминалом, OnTick(), OnTester(), OnTimer() и другие по разным условиям и событиям терминала. индикаторы могут тормозить работу советника, советник может тормозить работу терминала. как следствие нужно рассматривать взаимодействие всей системы в целом, включая все индикаторы, советники, графики, объекты и так далее добавив в этот список работу тестера в момент глюков.
с уважением.
P.S. я бы начал с одного графика, одного советника и смотрел на результат. если глюков нет, идем дальше(подключаем что то еще) до того момента как он возникнет. если он есть изначально при одном графике и одном советнике, искать будет уже легче. для начала можно попробовать вообще кинуть советник который будет выводить в миллисекундах разницу между вызовами в принт без каких либо премудростей.
Может, очередь событий переполняется? ChartEvent-ы используются?
Попробуйте запустить 10 пустых советников с таймером - будут пропуски?
зацикленный тестовый советник рядом работает хорошо, без задержек, т.е. сам он не виснет когда все виснет.
У него также задержка в 50 милисекунд между циклами.
Chart Event используется, но дело не в нем, так как им пользуются редко а тормоза возникают сами собой когда сервером никто не пользуется.
зацикленный тестовый советник рядом работает хорошо, без задержек, т.е. сам он не виснет когда все виснет.
У него также задержка в 50 милисекунд между циклами.
VPS? Если да, то вот он и ответ.
this
более чем вероятно что советники (которые работают в разных тредах), просто не поделили один глобальный ресурс и все встало клином пока кто-то не отвалил по таймауту.
VPS? Если да, то вот он и ответ.
this
более чем вероятно что советники (которые работают в разных тредах), просто не поделили один глобальный ресурс и все встало клином пока кто-то не отвалил по таймауту.
сам советник в своей работе буфер обмена не использует.
Может помочь"повышение приоритета процесса" для терминала. Гуглите. Делается на свой страх и риск.
Мне помогло.
добрый день.
мы имеем следующую иерархию
1терминал
2советник
3индикаторы которые вызывает советник.
все события в советнике вызываются терминалом, OnTick(), OnTester(), OnTimer() и другие по разным условиям и событиям терминала.
индикаторы могут тормозить работу советника, советник может тормозить работу терминала.
как следствие нужно рассматривать взаимодействие всей системы в целом, включая все индикаторы, советники, графики, объекты и так далее добавив в этот список работу тестера в момент глюков.
с уважением.
P.S. я бы начал с одного графика, одного советника и смотрел на результат. если глюков нет, идем дальше(подключаем что то еще) до того момента как он возникнет. если он есть изначально при одном графике и одном советнике, искать будет уже легче. для начала можно попробовать вообще кинуть советник который будет выводить в миллисекундах разницу между вызовами в принт без каких либо премудростей.