TradeDispatcher: trade context is busy... Что это?

 
Повесил советника простенького, для тестирования в онлайн, советник простой, без хитростей и торгует по уже сформировавшимся барам на пересечениях мувингов.
Через некоторое время замечаю, что сделки открываются через одну или через .... как захочет этот TradeDispatcher, который частенько ругается в журнале: trade context is busy, типа я занят не беспокой.
Одна сделка проходит нормально, а на запрос советника "стоп-переврот" тишина, и в журнале появляется эта запись TradeDispatcher: trade context is busy и так постоянно.
Системка переворотная и такое дело для нее катастрофично.
Что это такое, почему возникает?
 
Повесил советника простенького, для тестирования в онлайн, советник простой, без хитростей и торгует по уже сформировавшимся барам на пересечениях мувингов.
Через некоторое время замечаю, что сделки открываются через одну или через .... как захочет этот TradeDispatcher, который частенько ругается в журнале: trade context is busy, типа я занят не беспокой.
Одна сделка проходит нормально, а на запрос советника "стоп-переврот" тишина, и в журнале появляется эта запись TradeDispatcher: trade context is busy и так постоянно.
Системка переворотная и такое дело для нее катастрофично.
Что это такое, почему возникает?

Скорее всего, слишком мало времени проходит между закрытием прежней позы и открытием новой. Попробуй вставить между ними оператор Sleep(10000), т.е. ничего не делать 10 секунд. В простейшем случае может помочь, хотя здесь на форуме обсуждались и более изящные варианты.
 
Скорее всего, слишком мало времени проходит между закрытием прежней позы и открытием новой. Попробуй вставить между ними оператор Sleep(10000), т.е. ничего не делать 10 секунд. В простейшем случае может помочь, хотя здесь на форуме обсуждались и более изящные варианты.

это тоже может быть, но скорее всего недоисправленый глюк МТ.
Ещё одно воплощение ошибки №6 =)))
 
Насколько мне известно время между любыми управляющими сигналами, отправляемыми на сервер, в МТ4 не лимитировано. 10 сек - только в МТ3.
 
Насколько мне известно время между любыми управляющими сигналами, отправляемыми на сервер, в МТ4 не лимитировано. 10 сек - только в МТ3.

В терминале МТ4 - не лимитировано, а на сервере - лимитировано даже на демо. Сам несколько раз на это нарывался. Насколько я помню, в МТ3 был встроенный именно в терминал 10-сек лимит. Если почитать "Регламент котирования и исполнения ордеров", например, на Альпари, то увидим примерно следующее: на демо - 1-2 сек, на реале - 10-30 сек в зависимости от числа поступающих заявок.
 
Если дело в лимите сервера на время между любыми управляющими сигналами, то почему тогда на тестере то же самое происходит. Не переворачивает позы (некоторые), а просто открывает противоположную. Про "незакрытую" забывает и она висит до закрытия по стопу, либо по профиту. Система переворотная и стопы стоят очень большие, поэтому чаще срабатывают профиты, но один или два стопа съедают пол депо.
Тестер тоже эмулирует этот лимит, или все же это глюк МТ4?
И еще:
Тем более, что советник сначала подает команду закрыть уже открытую позу, а уж потом пытаться открыть переворотную. То есть отказ в сделке должен быть в открытии противоположной, а не в закрытии уже открытой. А на деле получается наоборот, первый сигнал пропущен, а второй исполнился... И в тестере то же самое.
 
Если дело в лимите сервера на время между любыми управляющими сигналами, то почему тогда на тестере то же самое происходит. Не переворачивает позы (некоторые), а просто открывает противоположную. Про "незакрытую" забывает и она висит до закрытия по стопу, либо по профиту. Система переворотная и стопы стоят очень большие, поэтому чаще срабатывают профиты, но один или два стопа съедают пол депо.
Тестер тоже эмулирует этот лимит, или все же это глюк МТ4?
И еще:
Тем более, что советник сначала подает команду закрыть уже открытую позу, а уж потом пытаться открыть переворотную. То есть отказ в сделке должен быть в открытии противоположной, а не в закрытии уже открытой. А на деле получается наоборот, первый сигнал пропущен, а второй исполнился... И в тестере то же самое.


Тут без кода ничего не скажешь. У меня в тестере всегда выполнялось закрытие-переворот, на 99,9% ошибка в коде советника.
 
"TradeDispatcher: trade context is busy" означает, что уже какой-то эксперт проводит торговую операцию.

Не забывайте, пожалуйста, что нельзя проводить несколько сделок одновременно. Перед совершением сделки необходимо проверять доступность через функцию IsTradeAllowed(). Особенно это касается случаев, когда несколько независимых экспертов одновременно торгуют.

Мы обнаружили, что на медленных компьютерах, загруженных сложными и ресурсоемкими экспертами(или на быстрых, но с десятком медленных экспертов/индикаторов), ошибка "trade context is busy" может также выдаться из-за излишне долгого занятия торгового контекста. Сейчас это узкое место оптимизировано, подождите, пожалуйста, нового билда.
 
А тестер почему тоже самое выдает, он ведь не зависит от серверов да и использует для тестирования лишь один эксперт?
 
А тестер почему тоже самое выдает, он ведь не зависит от серверов да и использует для тестирования лишь один эксперт?

Выложите, пожалуйста, полный код эксперта - сразу же дадим точный ответ.
 
Используются два индикатора (FATL>Т3 )
//+------------------------------------------------------------------+
//|                                                     cityline.mq4 |

}
Причина обращения: