Синхронизация.

 

Никто не сталкивался с проблемой синхронизации внутреннего состояния советника и реальной ситуацией в ДЦ.

Т.е. как определить момент, когда событие (OrderSend, OrderClose) реально сработали или отклонились в ДЦ.

 

Если вы имеете ввиду что-то более глобальное - тогда не понятно чего хотите. Иначе же - прочитайте внимательнее описание функций https://docs.mql4.com/ru/trading/OrderSend . функции однозначно возвращают ответ на вопрос "успешно ли проведена операция". другое дело, что это занимает какое-то время, которое может слагаться из разных нескольких параметров. Но, как только возможность есть, то сервер сразу отвечает на вопрос советника о выполнении операций. Остальное же - дело обработки ошибок, т.е. что ИМЕЕНО ответил сервер на запрос советника.

 

Т.е. если опираться на https://book.mql4.com/ru/trading/common, то до момента возврата однозначного ответа от сервера, советник будет просто ждать и в любом случае можно просто опираться на OrderSend>0 (для успешных операций)?

 
vlexa писал(а) >>

Т.е. если опираться на https://book.mql4.com/ru/trading/common, то до момента возврата однозначного ответа от сервера, советник будет просто ждать и в любом случае можно просто опираться на OrderSend>0 (для успешных операций)?

да. будет возвращен либо положительный ответ, либо отрицательный + ошибку выдаст, по которой можно определить причину отказа выполнить операцию.

 

Спасибо.

 

Сталкивались, но на нескольких терминалах:

1. Первый терминал послал OrderSend, открыл позу. Сделал запить в лог.

2. Второй терминал проверил наличие позы, в его окружении позу еще не видно, послал OrderSend. Имеем две позы вместо одной. =)


На одном терминале проблем не должно быть.

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