Помогите понять механику ERR_TRADE_TIMEOUT

 
Пожалуйста, подскажите, правильно ли я понимаю, что:
  1. Это значит, что OrderSend() не дождалась ответа от сервера о результате выполнения торгового приказа?
  2. Лимит ожидания ответа установлен на 3 минуты
  3. Все эти 3 минуты управление зависает в OrderSend() и даже код, который следует за OrderSend() не выполняется, не говоря уже об обработке новых событий Tick

OrderSend() написал для удобства. Понятно, что это будет так-же актуально и для OrderClose(), OrderDelete().


Касаемо этого:

"Истек срок ожидания совершения сделки. Прежде, чем производить повторную попытку (не менее, чем через 1 минуту), необходимо убедиться, что торговая операция действительно не прошла (новая позиция не была открыта, либо существующий ордер не был изменён или удалён, либо существующая позиция не была закрыта)"

Не менее, через минуту можно будет понять, прошла ли торговая операция?
Или минуту нужно подождать перед повторной попыткой торговой операции в случае, если она не прошла? А понять прошла/не прошла можно уже на следующем тике, вызвав OrderSelect()?


Допустим, ошибка 128 возникла при открытии ордера (до этого открытых ордеров не было). На следующем тике открытых ордеров нет. Значит ли это, что ордер не был открыт? Или нужно сначала подождать минуту, а потом проверить наличие ордера?


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

Во вторую очередь хочу понять, как ее правильно обработать.

Но для этого (и перед этим) нужно найти ответы на вышеизложенные вопросы (1, 2, 3 из списка и выделенный жирным).

 
Vladislav Boyko:

Но для этого (и перед этим) нужно найти ответы на вышеизложенные вопросы (1, 2, 3 из списка и выделенный жирным).

Ну, хоть кусок кода покажите, как вызываете её...

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