Алгоритм и особенности исполнения торговых поручений
Чтобы не тратить время на постоянное отслеживание котировок на бирже, вы можете выставить так называемую лимитную заявку — это указание брокеру, какую бумагу или валюту, сколько лотов и по какой цене вы хотите купить или продать.
Биржа ограничивает цену, которую можно указать в лимитной заявке, крайними предложениями в биржевом стакане (параметры limit_up и limit_down).
Обратите внимание, что в некоторых случаях может возникнуть ситуация, когда limitDown > limitUp. Это нормально, т.к. limitUp ограничивает на покупку, а limitDown — на продажу, потому ситуация limitDown > limitUp не является аномальной.
Выставить лимитное торговое поручение (заявку) можно при помощи unary-метода postOrder или при использовании bidirectional-stream OrdersStream.
Рыночное торговое поручение
Это заявка на покупку или продажу активов по той цене, что есть на бирже в данный момент. У нее есть важная особенность. При исполнении рыночной заявки может оказаться, что в данный момент на бирже по текущей цене торгуется меньше лотов, чем вы указали, при этом другие лоты есть, но их цена отличается в негативную для вас сторону. В этом случае брокер купит имеющееся количество лотов по текущей цене, а оставшуюся часть заявки будет покупать по следующей по списку цене. Если на бирже низкая ликвидность — например, торги рано утром или до открытия американской биржи, — то оставшаяся часть заявки может быть исполнена по невыгодной для вас цене. Проверить текущую ликвидность можно в биржевом стакане.
Выставить рыночное торговое поручение (заявку) можно при помощи метода unary-метода postOrder или при использовании bidirectional-stream OrdersStream
«Лучшая цена» (Best price)
Это заявка на покупку или продажу активов по той цене, что есть на бирже в данный момент, но с защитным механизмом. Цена на бирже меняется ежесекундно, и, чтобы не отменять сделку при каждом таком изменении, брокер дополнительно блокирует на вашем счете примерно 0,3% от суммы заявки. Если цена актива изменится больше, чем на 0,3% в худшую для вас сторону, сделка автоматически отменится, а заблокированная сумма вернется обратно на брокерский счет.
Заявка по «лучшей цене» — это лимитная заявка, цена которой на 0,3% выше, чем цена «Last Price». Но в отличие от обычной лимитной заявки исполняется сразу и не добавляется в стакан.
Подробнее о «лучшей цене».
Выставить торговое поручение по «лучшей цене» можно при помощи метода unary-метода postOrder.»
Особенности исполнения заявок на Санкт-Петербургской бирже
Все операции с иностранными ценными бумагами в Тинькофф Инвестициях производятся на Санкт-Петербургской бирже, которая имеет ряд особенностей исполнения заявок.
У данной биржи есть два пула ликвидности — США и собственный. Пул США подключается в 14:30 (мск) по летнему американскому времени. Ранее выставленные заявки остаются на СПБ. В момент выставления торгового поручения механизм best execution проверяет, в каком пуле лучше условия и выставляет заявку туда. После выставления заявка уже не переносится между пулами, поэтому может быть ситуация, что пул, в котором выставлена заявка, не достиг лимитной цены, а в другом пуле нужная цена достигалась.
Вся биржевая информация (свечи, стаканы) транслируется, агрегируя информацию со всех пулов ликвидности.
Исходя из этого может случиться ситуация, когда выставленное торговое поручение не исполняется, хотя имеются подходящие в стакане цены/предложения. В данных ситуациях команда OpenAPI рекомендует перевыставлять (отменить и выставить заново) заявки, чтобы механизм выбора пула ликвидности разместил заявку в более подходящем пуле.
Неисполненные заявки могут сниматься в разное время по описанным выше причинам. Время жизни заявки в каждом пуле ликвидности соответствует времени работы соответствующей сессии пула.