TradeDispatcher: trade context is busy... Что это? - страница 2

 
.
 
Используются два индикатора (FATL>Т3 )

Спасибо за приложенный код - будем проверять. Но нам также необходимы полные исходные данные индикаторов FATL и T3. Если не затруднит, то приложите их тоже?
 
//+------------------------------------------------------------------+
//| T3.mq4 |
//| MojoFX |
//| http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+------------------------------------------------------------------+

 
//+------------------------------------------------------------------+
//| FATL.mq4 
//| Ramdass - Conversion only
//+------------------------------------------------------------------+
 
Результатов еще нет?
Советник то небольшой, и алгоритм несложный.
 
?
 
Спасибо за приложенный код - сегодня в течение дня проверим.
 
А тестер почему тоже самое выдает, он ведь не зависит от серверов да и использует для тестирования лишь один эксперт?

Тестер никак даже теоретически не может выдавать "TradeDispatcher: trade context is busy" - у него всегда сделки проходят (и отрабатываются на виртуальном сервере, который не выдает таких отказов).

А вот "TradeDispatcher: trade context is busy" может случаться у обычного подключенного эксперта, работающего параллельно тестируемому, из-за нехватки ресурсов процессора. Тестер (особенно на слабых компьютерах) может использовать все ресурсы процессора, ничего не оставляя остальным процессам.

Через некоторое время замечаю, что сделки открываются через одну или через ....

К сожалению, не указано конкретно - в чем проблема? Что такое - "через одну или через...". Если логика работы с ордерами не такая как задумывалась, то необходимо самостоятельно детально разобрать свой код.

Из явных проблемных мест кода эксперта:
1) не везде проверки на результат вызова OrderSelect();
2) после Sleep() не стоит RefreshRates(), что приводит к использованию устаревших закешированных данных рынка (не забывайте, что эксперту на каждом тике выдается зафиксированный отпечаток/snapshot рынка). Через 5 секунд (Sleep(5000)) этот отпечаток с 99% гарантией не соответствует рыночным условиям.
3) как описано в статье, Sleep() при тестировании не учитывается, что может дать расхождение с реальным тестированием
4) условие проверки пересечения базируется на анализе всего двух баров, что явно недостаточно (точность плохая)
5) неструктурированный код, лучше его разбить на несколкьо функций - станет проще понять

Я погонял эксперта в разных режима моделирования, включая отладчик. Никаких проблем с нашей стороны не обнаружил. Вам необходимо более детально разобраться в своем коде.
 
Тестер никак даже теоретически не может выдавать "TradeDispatcher: trade context is busy" - у него всегда сделки проходят (и отрабатываются на виртуальном сервере, который не выдает таких отказов).

Я имел ввиду, что пропускает закрытие позиций, так же как и в реале.
А вот "TradeDispatcher: trade context is busy" может случаться у обычного подключенного эксперта, работающего параллельно тестируемому, из-за нехватки ресурсов процессора. Тестер (особенно на слабых компьютерах) может использовать все ресурсы процессора, ничего не оставляя остальным процессам.

Машина у меня неслабая и ничего, кроме висящего советника в терминале не делается. Хотя попробую еще разгрузить комп.
К сожалению, не указано конкретно - в чем проблема? Что такое - "через одну или через...". Если логика работы с ордерами не такая как задумывалась, то необходимо самостоятельно детально разобрать свой код.

Проблема в том, что советник обычный переворотный на пересечениях. Переворот это ведь закрытие позиции и открытие противоположной, если я правильно понимаю.
Так вот, иногда закрытие не происходит, а просто открывается противоположная сделка, а оставшаяся незакрытая просто забывается, и закрывается по стопу или профиту, пока советник торгует дальше нормально. Таких "незакрытий" получается около 5-6 на 60-70 сделок. Портят всю картину.
 
Renat 21.10.05 17:50
Тестер никак даже теоретически не может выдавать "TradeDispatcher: trade context is busy" - у него всегда сделки проходят (и отрабатываются на виртуальном сервере, который не выдает таких отказов).

пока не столкнулся сам, даже не верил....
Значит, ситуация такая:
Есть советник, торгующий на демо-счёте без проблем - все операции проходят удачно, даже при одновременной работе 4-8 советников.
Для тестирования у меня отдельный терминал - там история своя, файлы сгенерённые и подключения к серверу нет. Пытаюсь тестировать - ни одной операции. OrderSend возвращает ошибку №146. На этом терминале в онлайне _не_работает_ни_один_эксперт_.
Если бы у меня не было порверок на ошибки, наверное и не заметил бы - ни одного сообщения от тестера, только мои принты...


Билд 184, файлы сгенерированы period_converter-ом из минуток. Код эксперта, к сожелению, выложить не могу... Из особенностей - установка 2-х отложенных ордеров подряд, остальное - стандартно...

Другие советники тестируются..
Сейчас попробую раскопать проблемное место. Но ошибка явно есть, кривая такая =)
Причина обращения: