MessageAdapter

StockSharp.Messages

The base adapter converts messages Message to the command of the trading system and back.

Inherits: BaseLogReceiver

Implements: IMessageAdapter, IMessageTransport, IPersistable, ILogReceiver, ILogSource, IDisposable, ICloneable<IMessageAdapter>, ICloneable, INotifyPropertyChanged

Constructors

MessageAdapter
protected MessageAdapter(IdGenerator transactionIdGenerator)
messageAdapter = MessageAdapter(transactionIdGenerator)

Initialize MessageAdapter.

transactionIdGenerator
Transaction id generator.

Properties

AssociatedBoards
public virtual string[] AssociatedBoards { get; }
value = messageAdapter.AssociatedBoards

The adapter can process subscription only with instruments associated with the specified board.

CandlesBuildFrom
public virtual IEnumerable<Level1Fields> CandlesBuildFrom { get; }
value = messageAdapter.CandlesBuildFrom

Possible options for candles building.

Categories
public virtual MessageAdapterCategories Categories { get; }
value = messageAdapter.Categories

Message adapter categories.

CheckTimeFrameByRequest
public virtual bool CheckTimeFrameByRequest { get; }
value = messageAdapter.CheckTimeFrameByRequest

Check possible time-frame by request.

DisconnectTimeout
public virtual TimeSpan DisconnectTimeout { get; }
value = messageAdapter.DisconnectTimeout

Gets the timeout to wait for a graceful disconnect.

EnqueueSubscriptions
public virtual bool EnqueueSubscriptions { get; set; }
value = messageAdapter.EnqueueSubscriptions
messageAdapter.EnqueueSubscriptions = value

Enqueue subscriptions.

ExtraSetup
public virtual bool ExtraSetup { get; }
value = messageAdapter.ExtraSetup

The adapter requires extra setup.

FaultDelay
public TimeSpan FaultDelay { get; set; }
value = messageAdapter.FaultDelay
messageAdapter.FaultDelay = value

Gets or sets the delay applied between faulted iterations.

FeatureName
public virtual string FeatureName { get; }
value = messageAdapter.FeatureName

Feature name.

FileSystem
public IFileSystem FileSystem { get; set; }
value = messageAdapter.FileSystem
messageAdapter.FileSystem = value

IFileSystem

HeartbeatBeforeConnect
public virtual bool HeartbeatBeforeConnect { get; }
value = messageAdapter.HeartbeatBeforeConnect

Start sending TimeMessage before connection established.

HeartbeatInterval
public TimeSpan HeartbeatInterval { get; set; }
value = messageAdapter.HeartbeatInterval
messageAdapter.HeartbeatInterval = value

Server check interval for track the connection alive. The value is Zero turned off tracking.

Icon
public virtual Uri Icon { get; }
value = messageAdapter.Icon

Icon.

IsAutoReplyOnTransactonalUnsubscription
public virtual bool IsAutoReplyOnTransactonalUnsubscription { get; }
value = messageAdapter.IsAutoReplyOnTransactonalUnsubscription

Send auto response for OrderStatusMessage and PortfolioLookupMessage unsubscribes.

IsFullCandlesOnly
public virtual bool IsFullCandlesOnly { get; }
value = messageAdapter.IsFullCandlesOnly

Translates CandleMessage as only fully filled.

IsNativeIdentifiers
public virtual bool IsNativeIdentifiers { get; }
value = messageAdapter.IsNativeIdentifiers

Identify security in messages by native identifier Native.

IsNativeIdentifiersPersistable
public virtual bool IsNativeIdentifiersPersistable { get; }
value = messageAdapter.IsNativeIdentifiersPersistable

Native identifier can be stored.

IsPositionsEmulationRequired
public virtual bool? IsPositionsEmulationRequired { get; }
value = messageAdapter.IsPositionsEmulationRequired

Adapter required emulation PositionChangeMessage.

IsReplaceCommandEditCurrent
public virtual bool IsReplaceCommandEditCurrent { get; }
value = messageAdapter.IsReplaceCommandEditCurrent

Is the OrderReplaceMessage command edit a current order.

IsSecurityNewsOnly
public virtual bool IsSecurityNewsOnly { get; }
value = messageAdapter.IsSecurityNewsOnly

Adapter provides news related with specified security.

IsSupportExecutionsPnL
public virtual bool IsSupportExecutionsPnL { get; }
value = messageAdapter.IsSupportExecutionsPnL

Adapter fills PnL.

IsSupportOrderBookIncrements
public virtual bool IsSupportOrderBookIncrements { get; }
value = messageAdapter.IsSupportOrderBookIncrements

Adapter translates incremental order books.

IsSupportSubscriptions
public virtual bool IsSupportSubscriptions { get; }
value = messageAdapter.IsSupportSubscriptions

Support any subscriptions (ticks, order books etc.).

IsSupportTransactionLog
public virtual bool IsSupportTransactionLog { get; }
value = messageAdapter.IsSupportTransactionLog

Adapter translates orders changes on reply of OrderStatusMessage.

IterationInterval
public virtual TimeSpan IterationInterval { get; set; }
value = messageAdapter.IterationInterval
messageAdapter.IterationInterval = value

Interval between iterations.

LookupTimeout
public virtual TimeSpan? LookupTimeout { get; }
value = messageAdapter.LookupTimeout

Lookup timeout.

MaxParallelMessages
public int MaxParallelMessages { get; set; }
value = messageAdapter.MaxParallelMessages
messageAdapter.MaxParallelMessages = value

Gets or sets the maximum number of parallel (non-control) messages that can be processed. Must be greater than or equal to1.

Name
public override string Name { get; set; }
value = messageAdapter.Name
messageAdapter.Name = value

Name.

NotSupportedResultMessages
public virtual IEnumerable<MessageTypes> NotSupportedResultMessages { get; set; }
value = messageAdapter.NotSupportedResultMessages
messageAdapter.NotSupportedResultMessages = value

Not supported by adapter result message types.

OrderConditionType
public virtual Type OrderConditionType { get; }
value = messageAdapter.OrderConditionType

Type of OrderCondition.

Platform
public Platforms Platform { get; protected set; }
value = messageAdapter.Platform
messageAdapter.Platform = value

Bit process, which can run the adapter.

PossibleSupportedMessages
public virtual IEnumerable<MessageTypeInfo> PossibleSupportedMessages { get; set; }
value = messageAdapter.PossibleSupportedMessages
messageAdapter.PossibleSupportedMessages = value

Possible supported by adapter message types.

ReConnectionSettings
public ReConnectionSettings ReConnectionSettings { get; }
value = messageAdapter.ReConnectionSettings

Connection tracking settings IMessageAdapter with a server.

SecurityExtendedFields
public virtual IEnumerable<ValueTuple<string, Type>> SecurityExtendedFields { get; }
value = messageAdapter.SecurityExtendedFields

Names of extended security fields in SecurityMessage.

StorageName
public virtual string StorageName { get; }
value = messageAdapter.StorageName

The storage name, associated with the adapter.

SupportedInMessages
public virtual IEnumerable<MessageTypes> SupportedInMessages { get; set; }
value = messageAdapter.SupportedInMessages
messageAdapter.SupportedInMessages = value

Supported by adapter message types.

SupportedMarketDataTypes
internal IEnumerable<DataType> SupportedMarketDataTypes { get; set; }
value = messageAdapter.SupportedMarketDataTypes
messageAdapter.SupportedMarketDataTypes = value
SupportedOrderBookDepths
public virtual IEnumerable<int> SupportedOrderBookDepths { get; }
value = messageAdapter.SupportedOrderBookDepths

Available options for MaxDepth.

TransactionIdGenerator
public IdGenerator TransactionIdGenerator { get; set; }
value = messageAdapter.TransactionIdGenerator
messageAdapter.TransactionIdGenerator = value

Transaction id generator.

UseInChannel
public virtual bool UseInChannel { get; }
value = messageAdapter.UseInChannel

Use channels for in messages.

UseOutChannel
public virtual bool UseOutChannel { get; }
value = messageAdapter.UseOutChannel

Use channels for out messages.

Methods

BoardLookupAsync
protected virtual ValueTask BoardLookupAsync(BoardLookupMessage lookupMsg, CancellationToken cancellationToken)
result = messageAdapter.BoardLookupAsync(lookupMsg, cancellationToken)
CancelOrderAsync
protected virtual ValueTask CancelOrderAsync(OrderCancelMessage cancelMsg, CancellationToken cancellationToken)
result = messageAdapter.CancelOrderAsync(cancelMsg, cancellationToken)
CancelOrderGroupAsync
protected virtual ValueTask CancelOrderGroupAsync(OrderGroupCancelMessage cancelMsg, CancellationToken cancellationToken)
result = messageAdapter.CancelOrderGroupAsync(cancelMsg, cancellationToken)
ChangePasswordAsync
protected virtual ValueTask ChangePasswordAsync(ChangePasswordMessage pwdMsg, CancellationToken cancellationToken)
result = messageAdapter.ChangePasswordAsync(pwdMsg, cancellationToken)
Clone
public virtual IMessageAdapter Clone()
result = messageAdapter.Clone()

Create a copy of MessageAdapter.

Returns: Copy.

ConnectAsync
protected virtual ValueTask ConnectAsync(ConnectMessage connectMsg, CancellationToken cancellationToken)
result = messageAdapter.ConnectAsync(connectMsg, cancellationToken)
CreateOrderLogMarketDepthBuilder
public virtual IOrderLogMarketDepthBuilder CreateOrderLogMarketDepthBuilder(SecurityId securityId)
result = messageAdapter.CreateOrderLogMarketDepthBuilder(securityId)

Create market depth builder.

securityId
Security ID.

Returns: Order log to market depth builder.

DisconnectAsync
protected virtual ValueTask DisconnectAsync(DisconnectMessage disconnectMsg, CancellationToken cancellationToken)
result = messageAdapter.DisconnectAsync(disconnectMsg, cancellationToken)
GetSupportedMarketDataTypesAsync
public virtual IAsyncEnumerable<DataType> GetSupportedMarketDataTypesAsync(SecurityId securityId, DateTime? from, DateTime? to)
result = messageAdapter.GetSupportedMarketDataTypesAsync(securityId, from, to)

Get supported by adapter message types.

securityId
SecurityId
from
Start date for request. If , then all available messages will be returned.
to
End date for request. If , then all available messages will be returned.

Returns: Supported by adapter market data types.

InitMessageLocalTime
private void InitMessageLocalTime(Message message)
messageAdapter.InitMessageLocalTime(message)

Initialize local timestamp Message.

message
Message.
IsAllDownloadingSupported
public virtual bool IsAllDownloadingSupported(DataType dataType)
result = messageAdapter.IsAllDownloadingSupported(dataType)

Is for the specified all securities downloading enabled.

dataType
Data type info.

Returns: Check result.

IsSecurityRequired
public virtual bool IsSecurityRequired(DataType dataType)
result = messageAdapter.IsSecurityRequired(dataType)

Support filtering subscriptions (subscribe/unsubscribe for specified security).

dataType
Data type info.

Returns: Check result.

IsSupportCandlesPriceLevels
public virtual bool IsSupportCandlesPriceLevels(MarketDataMessage subscription)
result = messageAdapter.IsSupportCandlesPriceLevels(subscription)

Support candles PriceLevels.

subscription
MarketDataMessage

Returns: Check result.

IsSupportCandlesUpdates
public virtual bool IsSupportCandlesUpdates(MarketDataMessage subscription)
result = messageAdapter.IsSupportCandlesUpdates(subscription)

Support candles subscription and live updates.

subscription
MarketDataMessage

Returns: Check result.

Load
public override void Load(SettingsStorage storage)
messageAdapter.Load(storage)

Load settings.

storage
Settings storage.
MarketDataAsync
protected virtual ValueTask MarketDataAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.MarketDataAsync(mdMsg, cancellationToken)
OnCandlesSubscriptionAsync
protected virtual ValueTask OnCandlesSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnCandlesSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for candles data. Override to provide implementation for candles subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnLevel1SubscriptionAsync
protected virtual ValueTask OnLevel1SubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnLevel1SubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for level1 data. Override to provide implementation for level1 subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnMarketDepthSubscriptionAsync
protected virtual ValueTask OnMarketDepthSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnMarketDepthSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for market depth data. Override to provide implementation for market depth subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnNewsSubscriptionAsync
protected virtual ValueTask OnNewsSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnNewsSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for news data. Override to provide implementation for news subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnOrderLogSubscriptionAsync
protected virtual ValueTask OnOrderLogSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnOrderLogSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for order log (trades/transactions) data. Override to provide implementation for order log subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnPropertyChanged
protected void OnPropertyChanged(string propertyName)
messageAdapter.OnPropertyChanged(propertyName)

Raise PropertyChanged event.

propertyName
The name of the property that changed.
OnSendInMessageAsync
protected virtual ValueTask OnSendInMessageAsync(Message message, CancellationToken cancellationToken)
result = messageAdapter.OnSendInMessageAsync(message, cancellationToken)

Send in message handler.

message
Message
cancellationToken
CancellationToken

Returns: ValueTask

OnTFCandlesSubscriptionAsync
protected virtual ValueTask OnTFCandlesSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnTFCandlesSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for time-frame candles (TF candles) data. Override to provide implementation for TF candles subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OnTicksSubscriptionAsync
protected virtual ValueTask OnTicksSubscriptionAsync(MarketDataMessage mdMsg, CancellationToken cancellationToken)
result = messageAdapter.OnTicksSubscriptionAsync(mdMsg, cancellationToken)

Handles subscription request for ticks data. Override to provide implementation for ticks subscription processing. The default implementation throws NotSupported.

mdMsg
Market data subscription message.
cancellationToken
Cancellation token to cancel the operation.

Returns: A ValueTask representing the asynchronous operation.

OrderStatusAsync
protected virtual ValueTask OrderStatusAsync(OrderStatusMessage statusMsg, CancellationToken cancellationToken)
result = messageAdapter.OrderStatusAsync(statusMsg, cancellationToken)
PortfolioLookupAsync
protected virtual ValueTask PortfolioLookupAsync(PortfolioLookupMessage lookupMsg, CancellationToken cancellationToken)
result = messageAdapter.PortfolioLookupAsync(lookupMsg, cancellationToken)
RegisterOrderAsync
protected virtual ValueTask RegisterOrderAsync(OrderRegisterMessage regMsg, CancellationToken cancellationToken)
result = messageAdapter.RegisterOrderAsync(regMsg, cancellationToken)
ReplaceOrderAsync
protected virtual ValueTask ReplaceOrderAsync(OrderReplaceMessage replaceMsg, CancellationToken cancellationToken)
result = messageAdapter.ReplaceOrderAsync(replaceMsg, cancellationToken)
ResetAsync
protected virtual ValueTask ResetAsync(ResetMessage resetMsg, CancellationToken cancellationToken)
result = messageAdapter.ResetAsync(resetMsg, cancellationToken)
Save
public override void Save(SettingsStorage storage)
messageAdapter.Save(storage)

Save settings.

storage
Settings storage.
SecurityLookupAsync
protected virtual ValueTask SecurityLookupAsync(SecurityLookupMessage lookupMsg, CancellationToken cancellationToken)
result = messageAdapter.SecurityLookupAsync(lookupMsg, cancellationToken)
SendInMessageAsync
public virtual ValueTask SendInMessageAsync(Message message, CancellationToken cancellationToken)
result = messageAdapter.SendInMessageAsync(message, cancellationToken)

Processes a generic message asynchronously.

message
The message to process.
cancellationToken
CancellationToken
SendOutConnectionStateAsync
protected ValueTask SendOutConnectionStateAsync(ConnectionStates state, CancellationToken cancellationToken)
result = messageAdapter.SendOutConnectionStateAsync(state, cancellationToken)

Send to CancellationToken) connection state message.

state
ConnectionStates
cancellationToken
Cancellation token.
SendOutDisconnectMessageAsync
protected ValueTask SendOutDisconnectMessageAsync(bool expected, CancellationToken cancellationToken)
result = messageAdapter.SendOutDisconnectMessageAsync(expected, cancellationToken)

Send to CancellationToken) disconnect message.

expected
Is disconnect expected.
cancellationToken
Cancellation token.
SendOutDisconnectMessageAsync
protected ValueTask SendOutDisconnectMessageAsync(Exception error, CancellationToken cancellationToken)
result = messageAdapter.SendOutDisconnectMessageAsync(error, cancellationToken)

Send to CancellationToken) disconnect message.

error
Error info. Can be .
cancellationToken
Cancellation token.
SendOutErrorAsync
protected ValueTask SendOutErrorAsync(string description, CancellationToken cancellationToken)
result = messageAdapter.SendOutErrorAsync(description, cancellationToken)

Initialize a new message ErrorMessage and pass it to the method CancellationToken).

description
Error details.
cancellationToken
Cancellation token.
SendOutErrorAsync
protected ValueTask SendOutErrorAsync(Exception error, CancellationToken cancellationToken)
result = messageAdapter.SendOutErrorAsync(error, cancellationToken)

Initialize a new message ErrorMessage and pass it to the method CancellationToken).

error
Error details.
cancellationToken
Cancellation token.
SendOutMessageAsync
public virtual ValueTask SendOutMessageAsync(Message message, CancellationToken cancellationToken)
result = messageAdapter.SendOutMessageAsync(message, cancellationToken)

Send outgoing message and raise NewOutMessageAsync event.

message
Message.
cancellationToken
CancellationToken
SendSubscriptionFinishedAsync
protected ValueTask SendSubscriptionFinishedAsync(long originalTransactionId, CancellationToken cancellationToken, DateTime? nextFrom)
result = messageAdapter.SendSubscriptionFinishedAsync(originalTransactionId, cancellationToken, nextFrom)

Initialize a new message SubscriptionFinishedMessage and pass it to the method CancellationToken).

originalTransactionId
ID of the original message for which this message is a response.
cancellationToken
Cancellation token.
nextFrom
NextFrom.
SendSubscriptionNotSupportedAsync
protected ValueTask SendSubscriptionNotSupportedAsync(long originalTransactionId, CancellationToken cancellationToken)
result = messageAdapter.SendSubscriptionNotSupportedAsync(originalTransactionId, cancellationToken)

Initialize a new message SubscriptionResponseMessage and pass it to the method CancellationToken).

originalTransactionId
ID of the original message for which this message is a response.
cancellationToken
Cancellation token.
SendSubscriptionOnlineAsync
protected ValueTask SendSubscriptionOnlineAsync(long originalTransactionId, CancellationToken cancellationToken)
result = messageAdapter.SendSubscriptionOnlineAsync(originalTransactionId, cancellationToken)

Initialize a new message SubscriptionOnlineMessage and pass it to the method CancellationToken).

originalTransactionId
ID of the original message for which this message is a response.
cancellationToken
Cancellation token.
SendSubscriptionReplyAsync
protected ValueTask SendSubscriptionReplyAsync(long originalTransactionId, CancellationToken cancellationToken, Exception error)
result = messageAdapter.SendSubscriptionReplyAsync(originalTransactionId, cancellationToken, error)

Initialize a new message SubscriptionResponseMessage and pass it to the method CancellationToken).

originalTransactionId
ID of the original message for which this message is a response.
cancellationToken
Cancellation token.
error
Subscribe or unsubscribe error info. To be set if the answer.
SendSubscriptionResultAsync
protected ValueTask SendSubscriptionResultAsync(ISubscriptionMessage message, CancellationToken cancellationToken)
result = messageAdapter.SendSubscriptionResultAsync(message, cancellationToken)

Initialize a new message SubscriptionOnlineMessage or SubscriptionFinishedMessage and pass it to the method CancellationToken).

message
Subscription.
cancellationToken
Cancellation token.
TimeAsync
protected virtual ValueTask TimeAsync(TimeMessage timeMsg, CancellationToken cancellationToken)
result = messageAdapter.TimeAsync(timeMsg, cancellationToken)
ValidateSecurityId
protected virtual bool ValidateSecurityId(SecurityId secId)
result = messageAdapter.ValidateSecurityId(secId)

Validate the specified security id is supported by the adapter and subscription can be done.

secId
SecurityId.

Returns: Check result.

Events

NewOutMessageAsync
public event Func<Message, CancellationToken, ValueTask> NewOutMessageAsync
messageAdapter.NewOutMessageAsync += handler

New message event.