search Ничего не найдено
Главная Документация по алготрейдингу

Взаимодействие терминала и робота.

Синхронные, асинхронные и псевдосинхронные операции

Торговые методы могут быть вызваны синхронным или асинхронным способом. При синхронном способе робот отправляет запрос на сервер и ждёт ответа. А затем переходит к выполнению следующей части кода. При асинхронном способе, следующие части кода выполняются, не дожидаясь ответа от сервера. Такой способ выполнения необходим для высокочастотной торговли. Но стоит учитывать, что требуется дополнительный запрос, чтобы в последующем коде был доступен результат выполнения вызванного метода.

Методы всех описанных классов, имеющие параметр bool isAsync = false (т.е. по умолчанию false), могут быть вызваны асинхронно и синхронно (например, открытие/изменение/закрытие позиции, открытие/изменение/удаление отложенного ордера) или псевдосинхронно, если в таких методах-действиях еще присутствует параметр timeout, как, например, в Deals.Select и ExecutedOrders.Select. Указанные методы-действия всегда имеют возвращаемый параметр типа int, который в случае успеха принимает значение 0. Успешный результат вызова таких методов в случае, если они вызываются асинхронно или псевдосинхронно, говорит не о конечном результате выполнения соответствующей операции, а лишь об успешной ее инициации, т.е. успешной отправке соответствующего запроса на сервер.

Параметр timeout в псевдосинхронных методах определяет время, в течение которого ожидается ответ от сервера, и выполнение указанных методов прекращается либо при получении ответа от сервера, либо по окончании времени timeout-а.