Table of Contents

Описание

Сообщение несет информацию о рыночных данных, транзакциях или команде. Ниже приведен список основных сообщений, которые используются в API.

Сообщение Описание
Message Абстрактный класс сообщения, от которого наследуют классы других сообщений. Содержит информацию о времени, типе MessageTypes и адаптере, который создал сообщение.
BoardMessage Содержит информацию об электронной торговой площадке.
CandleMessage Абстрактный класс сообщения, который содержит общую информацию о свече. От этого класса наследуют классы сообщений для конкретных типов свечей: TimeFrameCandleMessage, TickCandleMessage, VolumeCandleMessage, RangeCandleMessage, PnFCandleMessage и RenkoCandleMessage.
ConnectMessage Используется в качестве команды установления соединения, а также для входящего сообщения об удачном соединении или ошибке соединения.
DisconnectMessage Используется в качестве команды разрыва соединения, а также для входящего сообщения о разрыве соединения.
ErrorMessage Сообщение об ошибке.
ExecutionMessage Описание см. ниже.
Level1ChangeMessage Сообщение содержит информацию о значении поля Level1 определенного типа. Доступные типы полей определены в перечислении Level1Fields.
NewsMessage Сообщение содержит информацию о новости.
OrderCancelMessage Сообщение содержит информацию для отмены заявки. Также существует сообщение OrderGroupCancelMessage, которое содержит информацию для отмены группы заявок по фильтру.
OrderRegisterMessage Сообщение содержит информацию для регистрации заявки.
OrderStatusMessage Сообщение запрашивает информацию о текущих зарегистрированных заявках и сделках.
OrderReplaceMessage Сообщение содержит информацию для замены заявки.
PortfolioMessage Содержит информацию о портфеле.
PortfolioLookupMessage Запрашивает информацию о портфелях по заданному критерию. Результат запроса возвращается при помощи сообщения PortfolioMessage.
PositionChangeMessage Содержит информацию о позиции. Содержит информацию об изменении определенного свойства позиции. Тип свойства определяется в перечислении PositionChangeTypes.
QuoteChangeMessage Содержит информацию о котировках стакана.
ResetMessage Сброс состояния.
SecurityMessage Содержит информацию об инструменте.
SecurityLookupMessage Запрашивает список инструментов по заданному критерию. Результат запроса будет возвращен при помощи сообщения SecurityMessage.
BoardStateMessage Содержит информацию об изменении состояния торговой сессии. Доступные значения состояния сессии определены в перечислении SessionStates.
TimeMessage Содержит информацию о текущем времени.
TimeFrameLookupMessage Запрашивает список поддерживаемых таймфреймов. Результат запроса будет возвращен при помощи сообщения TimeFrameInfoMessage.
TimeFrameInfoMessage Содержит информацию о поддерживаемых таймфреймах.
SubscriptionResponseMessage Ответ на запрос подписки или отписки. В случае ошибки выполнения запроса, описание ошибки заполняется SubscriptionResponseMessage.Error.
SubscriptionOnlineMessage Сообщение о переходе подписки в online состояние.
SubscriptionFinishedMessage Сообщение об окончании подписки в случае получения всех необходимых данных.

Сообщение ExecutionMessage является универсальным сообщением, которое позволяет передавать различную биржевую информацию, связанную с заявками и сделками: тиковые сделки, ордерлоги, собственные заявки и сделки.

Тип информации в сообщении определяется значением свойства ExecutionMessage.ExecutionType:

Если используется тип ExecutionTypes.Transaction, то речь идет о собственных заявках или сделках. При этом, если сообщение содержит информацию о заявке то, свойство ExecutionMessage.HasOrderInfo = true, если есть информация о сделке то, свойство ExecutionMessage.HasTradeInfo = true. Обратите внимание, что собственная сделка содержит информацию как о самой сделке, так и о заявке, связанной с этой сделкой. Поэтому в этом случае вышеприведенные свойства имеют значение true. Эти свойства позволяют дифференцировать сообщения с собственными сделками и заявками.

S# содержит набор методов расширения для преобразования торговых объектов в сообщения и наоборот. Например, можно преобразовать заявку Order в сообщение ExecutionMessage, а также выполнить обратную операцию, как это показано в следующем фрагменте кода.

	var security = new Security() {Id = "RIM6#FORTS" };
	
	// Для демонстрационных целей детали создания заявки опущены
	var order = new Order();
	
	// Конвертируем заявку в сообщение
	var message = order.ToMessage();
	
	// Выполняем обратное преобразование
	var order1 = message.ToOrder(security);