Каждый эксперт это отдельный thread (программный поток)... Я думаю все реализовано следующим образом:
Когда приходит новый тик создаются и запускаются треды для экспертов находящихся в состоянии ожидания тика... Те же которые не закончили свою работу пропускаются...
Поэтому:
1. Запущен первым наверное будет тот кто прикреплен первым если оба в режиме ожидания тика...
2. Второй будет запускаться независимо от второго и наоборот
Когда приходит новый тик создаются и запускаются треды для экспертов находящихся в состоянии ожидания тика... Те же которые не закончили свою работу пропускаются...
Поэтому:
1. Запущен первым наверное будет тот кто прикреплен первым если оба в режиме ожидания тика...
2. Второй будет запускаться независимо от второго и наоборот
Alexz,
Спасибо, я примерно так себе и представляю. То есть все thread'ы исполняются квазипараллельно (время процессора распределяется между ними равными "порциями").
Теперь хорошо бы еще к этим предположениям получить пояснения разработчиков.
В том числе и по вопросу о порядке исполнения.
Спасибо, я примерно так себе и представляю. То есть все thread'ы исполняются квазипараллельно (время процессора распределяется между ними равными "порциями").
Теперь хорошо бы еще к этим предположениям получить пояснения разработчиков.
В том числе и по вопросу о порядке исполнения.
Очень легко проверить экспериментально. Записывать в текстовый файл такую инфу:
Котировка по инструменту и время системы в миллисекундах.
MarketInfo() + GetTickCount( )
потом можно сравнить миллисекунды в файлах для одинаковых тиков при разных вариантах прикрепления экспертов
Котировка по инструменту и время системы в миллисекундах.
MarketInfo() + GetTickCount( )
потом можно сравнить миллисекунды в файлах для одинаковых тиков при разных вариантах прикрепления экспертов
Yurixx, это не предположения, а вполне точное изложение. Почитайте "MQL4: Выполнение программ"
То же самое написано в словаре MetaEditor
То же самое написано в словаре MetaEditor
Yurixx, это не предположения, а вполне точное изложение. Почитайте
"MQL4: Выполнение программ"Slawa,
Вы подтвердили наши предположения, что я собственно и хотел получить. Спасибо.
А в статье "Выполнение программ" есть много общих ответов, но нет того конкретного, что я спросил.
Остался еще вопрос о очередности исполнения. Если на графике 2 эксперта, можно ли что-либо определенное сказать о том, который из них будет исполняться первым при приходе тика или нет ?
Думаю, врядли можно предсказать, какой из них будет исполнен первым, но запустяться оба как бы одновременно.
Если Вас заинтересовал вопрос о последовательности срабатывания экспертов, значит, я так понимаю, они у вас завязаны между собой каким-либо образом. Но тогда самое лучшее решение - это простое их объединение в одном эксперте с жёстким заданием последовательности их выполнения как вам требуется. Поскольку в любом случае остальные варианты решения этой проблемы будут заметно сложнее, гарантируя при этом не слишком много.
solandr,
Отказ от самого лучшего решения и разбиение одного эксперта на два, как Вы наверное понимаете, связан с невозможностью решить одну техническую проблему в одном. Так что Ваша рекомендация не подходит. :(
Rosh
Я тоже так ПРЕДПОЛАГАЮ. В принципе это подходит, но может быть Slawa скажет что-то более определенное. Может быть мне тогда и ухищряться не придется. Или наоборот. :-)
Отказ от самого лучшего решения и разбиение одного эксперта на два, как Вы наверное понимаете, связан с невозможностью решить одну техническую проблему в одном. Так что Ваша рекомендация не подходит. :(
Rosh
Я тоже так ПРЕДПОЛАГАЮ. В принципе это подходит, но может быть Slawa скажет что-то более определенное. Может быть мне тогда и ухищряться не придется. Или наоборот. :-)
Первым запустит поток эксперта активный график. Следом - все остальные в порядке внутреннего списка дочерних окон.
Но совершенно неопределено, какой из потоков начнёт работать первым. И совершенно неопределена очерёдность активности потоков.
Так что, правильно будет полагать, что все эксперты работают одновременно.
Но совершенно неопределено, какой из потоков начнёт работать первым. И совершенно неопределена очерёдность активности потоков.
Так что, правильно будет полагать, что все эксперты работают одновременно.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насколько я понял, это речь шла о торговом потоке, то есть о потоке обмена торговыми инструкциями с сервером брокера. Если я ошибаюсь - поправьте меня.
Хотелось бы также понять, как происходит работа экспертов на уровне исполнения программ.
Конкретно я имею в виду следующее.
У меня есть два эксперта на одном графике. Один из них отрабатывает мгновенно, другой - совершает достаточно большие вычисления. Меня интересуют такие вопросы.
1. По приходе очередного тика, какой из двух экспертов будет запущен первым, а какой вторым ? Есть ли возможность обеспечить такую последовательность, как мне нужно ?
2. Если при приходе очередного тика второй эксперт еще не закончил свою работу, то будет ли запущен первый, не дожидаясь пока второй закончит свой цикл.