EntityCache

StockSharp.Algo

Entity cache for storing orders, trades, news and other trading entities.

Implements: ISnapshotHolder

Constructors

EntityCache
public EntityCache(ILogReceiver logReceiver, Func<SecurityId?, Security> tryGetSecurity, IExchangeInfoProvider exchangeInfoProvider, IPositionProvider positionProvider)
entityCache = EntityCache(logReceiver, tryGetSecurity, exchangeInfoProvider, positionProvider)

Entity cache for storing orders, trades, news and other trading entities.

logReceiver
Log receiver for logging messages.
tryGetSecurity
Function to get security by id.
exchangeInfoProvider
Exchange info provider.
positionProvider
Position provider.

Properties

ExchangeInfoProvider
public IExchangeInfoProvider ExchangeInfoProvider { get; }
value = entityCache.ExchangeInfoProvider

Exchange info provider.

MyTrades
public IEnumerable<MyTrade> MyTrades { get; }
value = entityCache.MyTrades

All own trades.

News
public IEnumerable<News> News { get; }
value = entityCache.News

All news.

OrderCancelFails
public IEnumerable<OrderFail> OrderCancelFails { get; }
value = entityCache.OrderCancelFails

Order cancellation failures.

OrderEditFails
public IEnumerable<OrderFail> OrderEditFails { get; }
value = entityCache.OrderEditFails

Order modification failures.

OrderRegisterFails
public IEnumerable<OrderFail> OrderRegisterFails { get; }
value = entityCache.OrderRegisterFails

Order registration failures.

Orders
public IEnumerable<Order> Orders { get; }
value = entityCache.Orders

All orders.

OrdersKeepCount
public int OrdersKeepCount { get; set; }
value = entityCache.OrdersKeepCount
entityCache.OrdersKeepCount = value

Maximum number of orders to keep in cache. Default is 1000.

Methods

AddFail
public void AddFail(OrderOperations operation, OrderFail fail)
entityCache.AddFail(operation, fail)

Add order fail.

operation
Operation.
fail
Fail.
AddOrderByCancelationId
public void AddOrderByCancelationId(Order order, long transactionId)
entityCache.AddOrderByCancelationId(order, transactionId)

Add order by cancelation transaction id.

order
Order.
transactionId
Transaction id.
AddOrderByEditionId
public void AddOrderByEditionId(Order order, long transactionId)
entityCache.AddOrderByEditionId(order, transactionId)

Add order by edition transaction id.

order
Order.
transactionId
Transaction id.
AddOrderByRegistrationId
public void AddOrderByRegistrationId(Order order)
entityCache.AddOrderByRegistrationId(order)

Add order by registration transaction id.

order
Order.
AddOrderFailById
public void AddOrderFailById(OrderFail fail, OrderOperations operation, long transactionId)
entityCache.AddOrderFailById(fail, operation, transactionId)

Add order fail by transaction id.

fail
Order fail.
operation
Order operation.
transactionId
Transaction id.
AddOrderStatusTransactionId
public void AddOrderStatusTransactionId(long transactionId)
entityCache.AddOrderStatusTransactionId(transactionId)

Add order status transaction id.

transactionId
Transaction id.
Clear
public void Clear()
entityCache.Clear()

Clear all cached data.

GetLevel1Fields
public IEnumerable<Level1Fields> GetLevel1Fields(Security security)
result = entityCache.GetLevel1Fields(security)

Get available Level1 fields for security.

security
Security.

Returns: Fields.

GetOrders
public IEnumerable<Order> GetOrders(Security security, OrderStates state)
result = entityCache.GetOrders(security, state)

Get orders by security and state.

security
Security.
state
Order state.

Returns: Orders.

GetSecurityValue
public object GetSecurityValue(Security security, Level1Fields field)
result = entityCache.GetSecurityValue(security, field)

Get security Level1 field value.

security
Security.
field
Field.

Returns: Value.

GetSecurityValues
public Level1Info GetSecurityValues(Security security, DateTime serverTime)
result = entityCache.GetSecurityValues(security, serverTime)

Get or create Level1 info for security.

security
Security.
serverTime
Server time.

Returns: Level1 info.

HasLevel1Info
public bool HasLevel1Info(Security security)
result = entityCache.HasLevel1Info(security)

Check if security has Level1 info.

security
Security.

Returns: if has info.

IsMassCancelation
public bool IsMassCancelation(long transactionId)
result = entityCache.IsMassCancelation(transactionId)

Check if transaction is mass cancelation.

transactionId
Transaction id.

Returns: if mass cancelation.

IsOrderStatusRequest
public bool IsOrderStatusRequest(long transactionId)
result = entityCache.IsOrderStatusRequest(transactionId)

Check if transaction is order status request.

transactionId
Transaction id.

Returns: if order status request.

ProcessNewsMessage
public ValueTuple<News, bool> ProcessNewsMessage(Security security, NewsMessage message)
result = entityCache.ProcessNewsMessage(security, message)

Process news message.

security
Security.
message
Message.

Returns: News and is new flag.

ProcessOrderFailMessage
public IEnumerable<ValueTuple<OrderFail, OrderOperations>> ProcessOrderFailMessage(Order order, Security security, ExecutionMessage message)
result = entityCache.ProcessOrderFailMessage(order, security, message)

Process order fail message.

order
Order.
security
Security.
message
Message.

Returns: Order fails with operations.

ProcessOrderMessage
public IEnumerable<OrderChangeInfo> ProcessOrderMessage(Order order, Security security, ExecutionMessage message, long transactionId, Func<string, Portfolio> getPortfolio)
result = entityCache.ProcessOrderMessage(order, security, message, transactionId, getPortfolio)

Process order message.

order
Order.
security
Security.
message
Message.
transactionId
Transaction id.
getPortfolio
Function to get portfolio.

Returns: Order change info.

ProcessOwnTradeMessage
public ValueTuple<MyTrade, bool> ProcessOwnTradeMessage(Order order, Security security, ExecutionMessage message, long transactionId)
result = entityCache.ProcessOwnTradeMessage(order, security, message, transactionId)

Process own trade message.

order
Order.
security
Security.
message
Message.
transactionId
Transaction id.

Returns: Trade and is new flag.

RemoveOrderStatusTransactionId
public void RemoveOrderStatusTransactionId(long transactionId)
entityCache.RemoveOrderStatusTransactionId(transactionId)

Remove order status transaction id.

transactionId
Transaction id.
TryAddMassCancelationId
public void TryAddMassCancelationId(long transactionId)
entityCache.TryAddMassCancelationId(transactionId)

Try add mass cancelation transaction id.

transactionId
Transaction id.
TryGetAdapter
public IMessageAdapter TryGetAdapter(Order order)
result = entityCache.TryGetAdapter(order)

Try get message adapter for order.

order
Order.

Returns: Adapter or .

TryGetOrder
public Order TryGetOrder(long? orderId, string orderStringId)
result = entityCache.TryGetOrder(orderId, orderStringId)

Try get order by id.

orderId
Order id.
orderStringId
Order string id.

Returns: Order or .

TryGetOrder
public Order TryGetOrder(long transactionId, OrderOperations operation)
result = entityCache.TryGetOrder(transactionId, operation)

Try get order by transaction id and operation.

transactionId
Transaction id.
operation
Operation.

Returns: Order or .

TrySetAdapter
public void TrySetAdapter(Order order, IMessageAdapter adapter)
entityCache.TrySetAdapter(order, adapter)

Try set message adapter for order.

order
Order.
adapter
Adapter.
UpdateOrderBookSnapshot
public void UpdateOrderBookSnapshot(QuoteChangeMessage message)
entityCache.UpdateOrderBookSnapshot(message)

Update cached order book snapshot for a security.

message
Order book message.