Loading...
Searching...
No Matches
ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager > Class Template Referenceabstract
Inheritance diagram for ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >:
[legend]
Collaboration diagram for ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >:
[legend]

Public Member Functions

void Connect ()
 Asynchronously starts connection process
Connected event will fire indicating successful connection.
 
async Task ConnectAsync ()
 Asynchronously starts connection process.
 
void Disconnect ()
 
async Task DisconnectAsync ()
 Asynchronously starts disconnection process.
 
void SearchSecurities (SecurityFilter filter)
 Searches for securities matching the specified filter.
 
Task< IEnumerable< Security > > SearchSecuritiesAsync (SecurityFilter filter)
 
bool? IsMarketDataSubscribed (Security security, SubscriptionType subscriptionType)
 Whether the connector currently counts a market data subscription of the type for the security. Counted subscriptions are restored by the connector after a reconnect; a subscription the broker rejected is no longer counted. null for connectors that do not track their subscriptions.
 
void SubscribeToMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void SubscribeToMarketData (Security security, SubscriptionType subscriptionTypes)
 Subscribes to market data for a security.
 
void UnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void UnsubscribeFromMarketData (Security security, SubscriptionType subscriptionTypes)
 Unsubscribes from market data for a security.
 
IEnumerable< string > GetRoutes (Security security)
 
IEnumerable< Portfolio > GetPortfolios (Security security)
 
Portfolio GetTradingPortfolio (Portfolio portfolio, Security security)
 Resolves the portfolio that actually holds orders and positions for the specified security. Some connectors (e.g. CQG) route trading data to a currency-specific sub-portfolio of the selected account portfolio; for such connectors this method returns that sub-portfolio. For all other connectors the same portfolio is returned.
 
Order TryGetOrder (long extId)
 
bool TryGetOrder (string marketOrderId, out Order? order)
 
Task RegisterOrderAsync (Order order)
 
Task ModifyOrderAsync (Order order, Order newOrder)
 
Task CancelOrderAsync (Order order)
 
void RegisterOrder (Order order)
 
void ModifyOrder (Order order, Order newOrder)
 Modifies the price of an order.
 
void CancelOrder (Order order)
 
Position GetPosition (Portfolio portfolio, Security security, TPlusLimits? tPlusLimit)
 
async Task ClosePositionAsync (Position position)
 
async Task ClosePositionsAsync (Portfolio portfolio)
 
async Task GoFlatAsync (Portfolio portfolio)
 Cancels all active orders and liquidates all open positions for the portfolio in a single atomic operation.
 
async Task ChangeMarginParametersAsync (Position position, bool? isIsolated, decimal? leverage)
 Switches position margin mode (isolated/cross) and/or trading leverage for it.Pass null if parameter should not be changedThis method works only if Position.Risk property is not null
Parameters
position
isolatedTrue for isolated, False for crossed mode
leverage
Returns

 
async Task ChangeIsolatedMarginAsync (Position position, decimal value)
 Adds or removes to isolated margin of a position. This method does not apply for crossed margin mode
This method works only if Position.Risk property is not null.
Parameters
position
valueUse positive value to add margin and negative to reduce
Returns

 
virtual ? decimal CalcLiquidationPrice (Position position, decimal margin)
 
virtual ? decimal? decimal maxRemovable CalcIsolatedMarginChangeRange (Position position)
 
decimal ConvertCurrency (Security security, string currencyFrom, string currencyTo, decimal volume, decimal? limitPrice=null, bool roundToLotSize=true)
 Converts volume from one currency to another Used for Notional value calculation.
 
decimal? CalcMaxOrderVolume (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice=null)
 Gets max possible volume for the order
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
decimal? CalcOrderCost (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice, decimal volume, out object? detailing, bool giveDetailing=false)
 Calculates total order cost including commissions and initial margin and everything else
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
ISecurityTradingOptions? GetSecurityTradingOptions (Security security)
 Gets possible TimeInForce for order and optional flags that may be passed when order is created
If null default behaviour is expected:
TimeInForce = DAY, GTC, FOK
No order flags

 
Task< IEnumerable< MyTrade > > GetMyTradesAsync (Portfolio portfolio, Security security, DateTime from, DateTime to)
 Get a list of my trades.
 
bool CanSetPositionAveragePrice (Position position)
 
void SetPositionAveragePrice (Position position, decimal avgPrice)
 
- Public Member Functions inherited from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >
void Connect ()
 Asynchronously starts connection process
Connected event will fire indicating successful connection.
 
async Task ConnectAsync ()
 Asynchronously starts connection process.
 
void Disconnect ()
 
async Task DisconnectAsync ()
 Asynchronously starts disconnection process.
 
void SearchSecurities (SecurityFilter filter)
 Searches for securities matching the specified filter.
 
Task< IEnumerable< Security > > SearchSecuritiesAsync (SecurityFilter filter)
 
bool? IsMarketDataSubscribed (Security security, SubscriptionType subscriptionType)
 
void SubscribeToMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void SubscribeToMarketData (Security security, SubscriptionType subscriptionTypes)
 Subscribes to market data for a security.
 
void UnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void UnsubscribeFromMarketData (Security security, SubscriptionType subscriptionTypes)
 Unsubscribes from market data for a security.
 
IEnumerable< string > GetRoutes (Security security)
 
IEnumerable< Portfolio > GetPortfolios (Security security)
 
Portfolio GetTradingPortfolio (Portfolio portfolio, Security security)
 Resolves the portfolio that actually holds orders and positions for the specified security. Some connectors (e.g. CQG) route trading data to a currency-specific sub-portfolio of the selected account portfolio; for such connectors this method returns that sub-portfolio. For all other connectors the same portfolio is returned.
 
Order TryGetOrder (long extId)
 
bool TryGetOrder (string marketOrderId, out Order? order)
 
Task RegisterOrderAsync (Order order)
 
Task ModifyOrderAsync (Order order, Order newOrder)
 
Task CancelOrderAsync (Order order)
 
void RegisterOrder (Order order)
 
void ModifyOrder (Order order, Order newOrder)
 Modifies the price of an order.
 
void CancelOrder (Order order)
 
Position GetPosition (Portfolio portfolio, Security security, TPlusLimits? tPlusLimit)
 
async Task ClosePositionAsync (Position position)
 
async Task ClosePositionsAsync (Portfolio portfolio)
 
async Task GoFlatAsync (Portfolio portfolio)
 Cancels all active orders and liquidates all open positions for the portfolio in a single atomic operation.
 
async Task ChangeMarginParametersAsync (Position position, bool? isIsolated, decimal? leverage)
 
async Task ChangeIsolatedMarginAsync (Position position, decimal value)
 
virtual ? decimal CalcLiquidationPrice (Position position, decimal margin)
 
virtual ? decimal? decimal maxRemovable CalcIsolatedMarginChangeRange (Position position)
 
decimal ConvertCurrency (Security security, string currencyFrom, string currencyTo, decimal volume, decimal? limitPrice=null, bool roundToLotSize=true)
 Converts volume from one currency to another Used for Notional value calculation.
 
decimal? CalcMaxOrderVolume (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice=null)
 Gets max possible volume for the order
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
decimal? CalcOrderCost (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice, decimal volume, out object? detailing, bool giveDetailing=false)
 Calculates total order cost including commissions and initial margin and everything else
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
ISecurityTradingOptions? GetSecurityTradingOptions (Security security)
 Gets possible TimeInForce for order and optional flags that may be passed when order is created
If null default behaviour is expected:
TimeInForce = DAY, GTC, FOK
No order flags

 
Task< IEnumerable< MyTrade > > GetMyTradesAsync (Portfolio portfolio, Security security, DateTime from, DateTime to)
 Get a list of my trades.
 
bool CanSetPositionAveragePrice (Position position)
 
void SetPositionAveragePrice (Position position, decimal avgPrice)
 
bool? IsMarketDataSubscribed (Security security, SubscriptionType subscriptionType)
 Whether the connector currently counts a market data subscription of the type for the security. Counted subscriptions are restored by the connector after a reconnect; a subscription the broker rejected is no longer counted. null for connectors that do not track their subscriptions.
 
void Connect ()
 
void Disconnect ()
 
Task ConnectAsync ()
 
Task DisconnectAsync ()
 
Task RegisterOrderAsync (Order order)
 
Task ModifyOrderAsync (Order order, Order newOrder)
 
Task CancelOrderAsync (Order order)
 
void CancelOrder (Order order)
 
void RegisterOrder (Order order)
 
void ModifyOrder (Order order, Order neworder)
 Modifies the price of an order.
 
Order TryGetOrder (long extId)
 
Position GetPosition (Portfolio portfolio, Security security, TPlusLimits? tPlusLimit)
 
Task ClosePositionAsync (Position position)
 
Task ClosePositionsAsync (Portfolio portfolio)
 
Task GoFlatAsync (Portfolio portfolio)
 Cancels all active orders and liquidates all open positions for the portfolio in a single atomic operation.
 
void SubscribeToMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void SubscribeToMarketData (Security security, SubscriptionType subscriptionTypes)
 Subscribes to market data for a security.
 
void UnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes)
 
void UnsubscribeFromMarketData (Security security, SubscriptionType subscriptionTypes)
 Unsubscribes from market data for a security.
 
void SearchSecurities (SecurityFilter filter)
 Searches for securities matching the specified filter.
 
Task< IEnumerable< Security > > SearchSecuritiesAsync (SecurityFilter filter)
 
IEnumerable< string > GetRoutes (Security security)
 
IEnumerable< Portfolio > GetPortfolios (Security security)
 
Portfolio GetTradingPortfolio (Portfolio portfolio, Security security)
 Resolves the portfolio that actually holds orders and positions for the specified security. Some connectors (e.g. CQG) route trading data to a currency-specific sub-portfolio of the selected account portfolio; for such connectors this method returns that sub-portfolio. For all other connectors the same portfolio is returned.
 
Task ChangeMarginParametersAsync (Position position, bool? isolated=null, decimal? leverage=null)
 Switches position margin mode (isolated/cross) and/or trading leverage for it.
 
Task ChangeIsolatedMarginAsync (Position position, decimal value)
 Adds or removes to isolated margin of a position. This method does not apply for crossed margin mode
This method works only if Position.Risk property is not null.
 
decimal? CalcLiquidationPrice (Position position, decimal margin)
 Allows to estimate Liquidation Price change for a margin.
 
decimal?? decimal maxRemovable CalcIsolatedMarginChangeRange (Position position)
 
decimal ConvertCurrency (Security security, string currencyFrom, string currencyTo, decimal volume, decimal? limitPrice=null, bool roundToLotSize=true)
 Converts volume from one currency to another Used for Notional value calculation.
 
decimal? CalcMaxOrderVolume (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice=null)
 Gets max possible volume for the order
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
decimal? CalcOrderCost (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice, decimal volume, out object? detailing, bool giveDetailing=false)
 Calculates total order cost including commissions and initial margin and everything else
This function is always return null if IsSupportedMaxOrderCalculation is false.
 
ISecurityTradingOptions? GetSecurityTradingOptions (Security security)
 Gets possible TimeInForce for order and optional flags that may be passed when order is created
If null default behaviour is expected:
TimeInForce = DAY, GTC, FOK
No order flags

 
Task< IEnumerable< MyTrade > > GetMyTradesAsync (Portfolio portfolio, Security security, DateTime from, DateTime to)
 Get a list of my trades.
 
bool CanSetPositionAveragePrice (Position position)
 
void SetPositionAveragePrice (Position position, decimal avgPrice)
 

Public Attributes

virtual ? decimal maxAddable
 
- Public Attributes inherited from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >
virtual ? decimal maxAddable
 
- Public Attributes inherited from ATAS.DataFeedsCore.IDataFeedConnector
decimal? maxAddable
 Calculates possible changes of the isolated margin of a position (only for leveraged trading)
 

Protected Member Functions

 BaseConnector ()
 
 BaseConnector (long initialId)
 
 BaseConnector ()
 
 BaseConnector (long initialId)
 
virtual Task OnConnectAsync ()
 
virtual void OnConnectTimedOut (Exception error)
 Called when a connect attempt exceeds ConnectTimeout. The default implementation faults the pending default connect task. Override to additionally tear down any half-open transport (socket/session) created during the attempt so it is not leaked.
 
virtual void OnConnect ()
 A place for connection routines
Executed on thread-pool thread.
 
void OnConnected ()
 Raises Connected event
The event must be called when the connector have all necessary connections established and authenticated
All security objects must be processed before this call if possible
If there were any subscriptions, search for that securities will be performed.
 
virtual Task OnDisconnectAsync ()
 
virtual void OnDisconnectTimedOut ()
 Called when a disconnect attempt exceeds DisconnectTimeout. The default implementation force-completes the pending default disconnect task so the connector reaches the Disconnected state. Override to additionally tear down any transport (socket/session) that the peer never closed.
 
virtual void OnDisconnect ()
 Called on thread-pool thread when Disconnect() method is invoked.
 
void OnDisconnected ()
 Cleans up base resources and raises Disconnected event.
 
void OnConnectionError (Exception error)
 Remember the error that will be handled when the OnDisconnected(Exception) is called.
 
void Enqueue (TMessage message)
 
void Enqueue (Action action)
 
void EnqueueContinuation (Action continuation)
 Queues an await continuation of the connector's thread. Unlike a message or an action queued while the connector is disconnected, a continuation posted after its connection session ended never runs in a later session (see IMessageQueue<TMessage>.EnqueueContinuation).
 
abstract void OnProcess (TMessage message)
 Handles queued messages by the MessageQueue
In case of SimpleMessageQueue it allows to process all messages in the special connector's queue thread.
 
virtual void OnSendHeartbeat ()
 
Security? GetSecurity (TSecurityKey securityId)
 
Portfolio? GetPortfolio (TPortfolioKey portfolioKey)
 
Portfolio ProcessPortfolio< T > (TPortfolioKey id, string accountId, T message, Action< T, Portfolio > update)
 
void ProcessPortfolio< T > (TPortfolioKey id, T message, Action< T, Portfolio > update, bool throwIfNotFound=false)
 
void ProcessPosition< T > (TPortfolioKey accountId, TSecurityKey securityId, TPlusLimits? tPlusLimit, T message, Func< T, bool, TSecurityPositionManager, bool > update)
 
void ProcessPosition< T > (TPortfolioKey accountId, TSecurityKey securityId, T message, Func< T, bool, TSecurityPositionManager, bool > update)
 
void ProcessSecurity< T > (TSecurityKey id, string securityId, T message, Action< T, bool, Security > update)
 Converts internal security object of the connector into the ATAS-security visible to the system.
 
void ProcessSecurity (TSecurityKey id, Action< Security > action)
 
void ProcessBestBidAsk (TSecurityKey securityId, DateTime time, MarketDataType type, decimal price, decimal volume, string ecn="")
 
void ProcessBestBidAsk (Security security, DateTime time, MarketDataType type, decimal price, decimal volume, string ecn="")
 
void ProcessBestBidAsk (TSecurityKey securityId, MarketDepth marketDepth)
 
void ProcessBestBidAsk (MarketDepth marketDepth)
 
void ProcessTick (TSecurityKey securityId, long id, DateTime time, TradeDirection direction, decimal price, decimal volume, string ecn="", decimal? openInterest=null)
 
void ProcessTick (Security security, long id, DateTime time, TradeDirection direction, decimal price, decimal volume, string ecn="", decimal? openInterest=null)
 
void ProcessTick (TSecurityKey securityId, Trade trade)
 
void ProcessTick (Security security, Trade trade)
 
void ProcessTick (Trade trade)
 
void ProcessMarketDepthsReset (TSecurityKey securityId, ICollection< MarketDepth > depth)
 
void ProcessMarketDepths (TSecurityKey securityId, Func< Security, ICollection< MarketDepth > > action)
 
void ProcessMarketDepths (Security security, Func< Security, ICollection< MarketDepth > > action)
 
void ProcessMarketDepths (Security security, ICollection< MarketDepth > depths)
 
void RaiseMarketDepthsReset (Security security)
 
void RaiseMarketByOrdersReset (Security security)
 
void ProcessMarketByOrder (MarketByOrder mbo)
 
void ProcessMboTrade (Trade trade)
 
void ProcessSummary (TSecurityKey id, Action< SecuritySummary > action)
 
void ProcessSummary< TValue > (TSecurityKey id, TValue value, Action< SecuritySummary, TValue > action)
 
void ProcessOrder< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, T message, Action< T, bool, Order > update)
 
void ProcessOrder< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, T message, Func< T, bool, Order, bool?> update)
 
void ProcessOrder< T > (long extId, T message, Action< T, Order > update)
 
void ProcessOrderError (Order order, string error)
 
void ProcessOrderError (long extId, string error)
 
void ProcessOrder (long extId, Action< Order > process)
 
void ProcessMyTrade< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, string orderId, string tradeId, T message, Action< T, MyTrade > update)
 
void ProcessMyTrade< T > (long extId, string orderId, string tradeId, T message, Action< T, MyTrade > update)
 
void ProcessMyTrade< T > (long extId, string tradeId, T message, Action< T, MyTrade > update)
 
void ClearDataForPortfolio (Portfolio portfolio)
 
virtual TSecurityPositionManager CreatePositionManager (Position position)
 
virtual void PositionPnLChanged (Position position)
 
void RaiseRebateResult (RebateResult result)
 
void RaiseConnected ()
 
void RaiseDisconnected ()
 
void RaisePosition (TSecurityPositionManager posManager, bool isNew)
 
void RaiseOrder (Order order, bool isNew)
 
void RaiseOrderFailed (Order order, string error)
 
void RaiseSearchSecuritiesResult (SecurityFilter filter, Exception? error, IEnumerable< Security > securities)
 
void FailPendingSearchSecurities (Exception error)
 Completes all pending SearchSecuritiesAsync operations with the given error so callers do not hang when the connector disconnects or a search pipeline fails.
 
void RaiseRegisterSecurityResult (Security security, SubscriptionType subscriptionType, Exception? error)
 
void RaiseSubscribeMarketDataResult (IEnumerable< Security > securities, Exception? error=null)
 
void RaiseUnsubscribeMarketDataResult (IEnumerable< Security > securities, Exception error)
 
void RaiseNews (News news)
 
void RaiseSecurityChanged (Security security)
 
void RaiseSecuritySummaryChanged (SecuritySummary summary)
 
void RaiseOrderCancellationReason (Order order, string reason)
 Publishes broker metadata without completing a pending register/modify/cancel action.
 
SubscriptionType GetCurrentSubscription (Security security)
 
virtual void OnSearchSecurities (TSecurityKey securityId, TMessage message)
 
abstract void OnSearchSecurities (SecurityFilter filter)
 
abstract void OnSearchSecurities (TSecurityKey securityId)
 
virtual void OnSubscribeMarketData (IEnumerable< Security > securities, SubscriptionType subscription)
 
abstract void OnSubscribeMarketData (Security security, SubscriptionType subscriptionTypes)
 
virtual void OnUnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscription)
 
abstract void OnUnsubscribeMarketData (Security security, SubscriptionType subscriptionTypes)
 
virtual IEnumerable< string > OnGetRoutes (Security security)
 
virtual IEnumerable< Portfolio > OnGetPortfolios (Security security)
 
virtual Portfolio OnGetTradingPortfolio (Portfolio portfolio, Security security)
 
abstract void OnRegisterOrder (Order order)
 
virtual void OnModifyOrder (Order order, Order newOrder)
 
abstract void OnCancelOrder (Order order, long extId)
 
void RememberPendingOrders ()
 
virtual Task OnGoFlat (Portfolio portfolio)
 
virtual async Task OnClosePosition (Position position)
 
virtual async Task OnClosePositions (Portfolio portfolio)
 
virtual Order CreateOrderToClosePosition (Position pos)
 
virtual Task OnChangeMarginParametersAsync (Position position, bool? isIsolated, decimal? leverage)
 
virtual Task OnChangeIsolatedMarginAsync (Position position, decimal value)
 
virtual decimal OnConvertCurrency (Security security, string currencyFrom, string currencyTo, decimal volume, decimal? limitPrice=null, bool roundToLotSize=true)
 Converts volume from one currency to another Used for Notional value calculation.
 
virtual ? decimal OnCalcMaxOrderVolume (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice=null)
 
virtual ? decimal OnCalcOrderCost (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice, decimal volume, out object? detailing, bool giveDetailing=false)
 
virtual ? ISecurityTradingOptions OnGetSecurityTradingOptions (Security security)
 
virtual Task< IEnumerable< MyTrade > > OnGetMyTradesAsync (Portfolio portfolio, Security security, DateTime from, DateTime to)
 
void ValidateTradesHistoryRequestDates (ref DateTime from, DateTime to, int depthLimitMonths)
 
virtual Task<(DateTime serverTime, DateTime localTime, TimeSpan latency)> GetApiServerTime (CancellationToken cancellationToken)
 
async Task ProcessAutoRefreshSecurities ()
 
virtual async Task OnRefreshSecuritiesAsync ()
 
void BeginProcessingDelistedSecurities ()
 
void CompleteProcessingDelistedSecurities ()
 
bool TryAdmitOptionLookup (string request, out Exception? error)
 For IOptionsDataFeed implementations: call first in every option series and chain lookup, before anything is sent and before the first await, and fail the lookup with the returned error when it is refused (see OptionRequestGuard).
 
bool TryGetPosition (Order order, out Position? position)
 
bool TryGetPosition (Portfolio portfolio, Security security, out Position? position)
 
bool TryGetPosition (Portfolio portfolio, Security security, TPlusLimits limits, out Position? position)
 
void UpdatePositionsPnL (Security security, MarketDataType type, decimal price)
 
- Protected Member Functions inherited from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >
 BaseConnector ()
 
 BaseConnector (long initialId)
 
 BaseConnector ()
 
 BaseConnector (long initialId)
 
virtual Task OnConnectAsync ()
 
virtual void OnConnectTimedOut (Exception error)
 Called when a connect attempt exceeds ConnectTimeout. The default implementation faults the pending default connect task. Override to additionally tear down any half-open transport (socket/session) created during the attempt so it is not leaked.
 
virtual void OnConnect ()
 A place for connection routines
Executed on thread-pool thread.
 
void OnConnected ()
 Raises Connected event
The event must be called when the connector have all necessary connections established and authenticated
All security objects must be processed before this call if possible
If there were any subscriptions, search for that securities will be performed.
 
virtual Task OnDisconnectAsync ()
 
virtual void OnDisconnectTimedOut ()
 Called when a disconnect attempt exceeds DisconnectTimeout. The default implementation force-completes the pending default disconnect task so the connector reaches the Disconnected state. Override to additionally tear down any transport (socket/session) that the peer never closed.
 
virtual void OnDisconnect ()
 Called on thread-pool thread when Disconnect() method is invoked.
 
void OnDisconnected ()
 Cleans up base resources and raises Disconnected event.
 
void OnConnectionError (Exception error)
 Remember the error that will be handled when the OnDisconnected(Exception) is called.
 
void Enqueue (TMessage message)
 
void Enqueue (Action action)
 
void EnqueueContinuation (Action continuation)
 Queues an await continuation of the connector's thread. Unlike a message or an action queued while the connector is disconnected, a continuation posted after its connection session ended never runs in a later session (see IMessageQueue<TMessage>.EnqueueContinuation).
 
abstract void OnProcess (TMessage message)
 Handles queued messages by the MessageQueue
In case of SimpleMessageQueue it allows to process all messages in the special connector's queue thread.
 
virtual void OnSendHeartbeat ()
 
void ProcessSecurity (TSecurityKey id, Action< Security > action)
 
Security? GetSecurity (TSecurityKey securityId)
 
Portfolio? GetPortfolio (TPortfolioKey portfolioKey)
 
Portfolio ProcessPortfolio< T > (TPortfolioKey id, string accountId, T message, Action< T, Portfolio > update)
 
void ProcessPortfolio< T > (TPortfolioKey id, T message, Action< T, Portfolio > update, bool throwIfNotFound=false)
 
void ProcessPosition< T > (TPortfolioKey accountId, TSecurityKey securityId, TPlusLimits? tPlusLimit, T message, Func< T, bool, TSecurityPositionManager, bool > update)
 
void ProcessPosition< T > (TPortfolioKey accountId, TSecurityKey securityId, T message, Func< T, bool, TSecurityPositionManager, bool > update)
 
void ProcessSecurity< T > (TSecurityKey id, string securityId, T message, Action< T, bool, Security > update)
 Converts internal security object of the connector into the ATAS-security visible to the system.
 
void ProcessBestBidAsk (TSecurityKey securityId, DateTime time, MarketDataType type, decimal price, decimal volume, string ecn="")
 
void ProcessBestBidAsk (Security security, DateTime time, MarketDataType type, decimal price, decimal volume, string ecn="")
 
void ProcessBestBidAsk (TSecurityKey securityId, MarketDepth marketDepth)
 
void ProcessBestBidAsk (MarketDepth marketDepth)
 
void ProcessTick (TSecurityKey securityId, long id, DateTime time, TradeDirection direction, decimal price, decimal volume, string ecn="", decimal? openInterest=null)
 
void ProcessTick (Security security, long id, DateTime time, TradeDirection direction, decimal price, decimal volume, string ecn="", decimal? openInterest=null)
 
void ProcessTick (TSecurityKey securityId, Trade trade)
 
void ProcessTick (Security security, Trade trade)
 
void ProcessTick (Trade trade)
 
void ProcessMarketDepthsReset (TSecurityKey securityId, ICollection< MarketDepth > depth)
 
void ProcessMarketDepths (TSecurityKey securityId, Func< Security, ICollection< MarketDepth > > action)
 
void ProcessMarketDepths (Security security, Func< Security, ICollection< MarketDepth > > action)
 
void ProcessMarketDepths (Security security, ICollection< MarketDepth > depths)
 
void RaiseMarketDepthsReset (Security security)
 
void RaiseMarketByOrdersReset (Security security)
 
void ProcessMarketByOrder (MarketByOrder mbo)
 
void ProcessMboTrade (Trade trade)
 
void ProcessSummary (TSecurityKey id, Action< SecuritySummary > action)
 
void ProcessSummary< TValue > (TSecurityKey id, TValue value, Action< SecuritySummary, TValue > action)
 
void ProcessOrder< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, T message, Action< T, bool, Order > update)
 
void ProcessOrder< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, T message, Func< T, bool, Order, bool?> update)
 
void ProcessOrder< T > (long extId, T message, Action< T, Order > update)
 
void ProcessOrderError (Order order, string error)
 
void ProcessOrderError (long extId, string error)
 
void ProcessOrder (long extId, Action< Order > process)
 
void ProcessMyTrade< T > (TPortfolioKey accountId, TSecurityKey securityId, long extId, string orderId, string tradeId, T message, Action< T, MyTrade > update)
 
void ProcessMyTrade< T > (long extId, string orderId, string tradeId, T message, Action< T, MyTrade > update)
 
void ProcessMyTrade< T > (long extId, string tradeId, T message, Action< T, MyTrade > update)
 
void ClearDataForPortfolio (Portfolio portfolio)
 
virtual TSecurityPositionManager CreatePositionManager (Position position)
 
virtual void PositionPnLChanged (Position position)
 
void RaiseRebateResult (RebateResult result)
 
void RaiseConnected ()
 
void RaiseDisconnected ()
 
void RaisePosition (TSecurityPositionManager posManager, bool isNew)
 
void RaiseOrder (Order order, bool isNew)
 
void RaiseOrderFailed (Order order, string error)
 
void RaiseSearchSecuritiesResult (SecurityFilter filter, Exception? error, IEnumerable< Security > securities)
 
void FailPendingSearchSecurities (Exception error)
 Completes all pending SearchSecuritiesAsync operations with the given error so callers do not hang when the connector disconnects or a search pipeline fails.
 
void RaiseRegisterSecurityResult (Security security, SubscriptionType subscriptionType, Exception? error)
 
void RaiseSubscribeMarketDataResult (IEnumerable< Security > securities, Exception? error=null)
 
void RaiseUnsubscribeMarketDataResult (IEnumerable< Security > securities, Exception error)
 
void RaiseNews (News news)
 
void RaiseSecurityChanged (Security security)
 
void RaiseSecuritySummaryChanged (SecuritySummary summary)
 
void RaiseOrderCancellationReason (Order order, string reason)
 Publishes broker metadata without completing a pending register/modify/cancel action.
 
SubscriptionType GetCurrentSubscription (Security security)
 
virtual void OnSearchSecurities (TSecurityKey securityId, TMessage message)
 
abstract void OnSearchSecurities (SecurityFilter filter)
 
abstract void OnSearchSecurities (TSecurityKey securityId)
 
virtual void OnSubscribeMarketData (IEnumerable< Security > securities, SubscriptionType subscription)
 
abstract void OnSubscribeMarketData (Security security, SubscriptionType subscriptionTypes)
 
virtual void OnUnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscription)
 
abstract void OnUnsubscribeMarketData (Security security, SubscriptionType subscriptionTypes)
 
virtual IEnumerable< string > OnGetRoutes (Security security)
 
virtual IEnumerable< Portfolio > OnGetPortfolios (Security security)
 
virtual Portfolio OnGetTradingPortfolio (Portfolio portfolio, Security security)
 
abstract void OnRegisterOrder (Order order)
 
virtual void OnModifyOrder (Order order, Order newOrder)
 
abstract void OnCancelOrder (Order order, long extId)
 
void RememberPendingOrders ()
 
virtual Task OnGoFlat (Portfolio portfolio)
 
virtual async Task OnClosePosition (Position position)
 
virtual async Task OnClosePositions (Portfolio portfolio)
 
virtual Order CreateOrderToClosePosition (Position pos)
 
virtual Task OnChangeMarginParametersAsync (Position position, bool? isIsolated, decimal? leverage)
 
virtual Task OnChangeIsolatedMarginAsync (Position position, decimal value)
 
virtual decimal OnConvertCurrency (Security security, string currencyFrom, string currencyTo, decimal volume, decimal? limitPrice=null, bool roundToLotSize=true)
 Converts volume from one currency to another Used for Notional value calculation.
 
virtual ? decimal OnCalcMaxOrderVolume (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice=null)
 
virtual ? decimal OnCalcOrderCost (OrderTypes orderType, Security security, Portfolio portfolio, OrderDirections direction, decimal? limitPrice, decimal volume, out object? detailing, bool giveDetailing=false)
 
virtual ? ISecurityTradingOptions OnGetSecurityTradingOptions (Security security)
 
virtual Task< IEnumerable< MyTrade > > OnGetMyTradesAsync (Portfolio portfolio, Security security, DateTime from, DateTime to)
 
void ValidateTradesHistoryRequestDates (ref DateTime from, DateTime to, int depthLimitMonths)
 
virtual Task<(DateTime serverTime, DateTime localTime, TimeSpan latency)> GetApiServerTime (CancellationToken cancellationToken)
 
async Task ProcessAutoRefreshSecurities ()
 
virtual async Task OnRefreshSecuritiesAsync ()
 
void BeginProcessingDelistedSecurities ()
 
void CompleteProcessingDelistedSecurities ()
 
bool TryAdmitOptionLookup (string request, out Exception? error)
 For IOptionsDataFeed implementations: call first in every option series and chain lookup, before anything is sent and before the first await, and fail the lookup with the returned error when it is refused (see OptionRequestGuard).
 
bool TryGetPosition (Order order, out Position? position)
 
bool TryGetPosition (Portfolio portfolio, Security security, out Position? position)
 
bool TryGetPosition (Portfolio portfolio, Security security, TPlusLimits limits, out Position? position)
 
void UpdatePositionsPnL (Security security, MarketDataType type, decimal price)
 

Properties

IIdGenerator IdGenerator [get]
 
IEnumerable< TSecurityPositionManager > PositionManagers [get]
 
ITimeSyncManager TimeSyncManager = null! [get]
 
DateTime ServerUtcNow [get]
 The current UTC time on the server's clock: the computer's clock corrected by the time sync manager (zero correction until it has measured). Data the server sends without a time of its own (a REST snapshot) is stamped with it, so it compares with the server's event times - the latency manager subtracts a stamp from this same corrected time, and a stamp of the computer's clock gives a negative or a false delay when the clock is off.
 
TimeSpan PendingOrdersCheckPeriod [get, set]
 Delay after a (re)connect before the orders left pending by a connection loss are checked: the ones the broker has not reported by then are failed.
 
abstract bool IsSupportedServerOCO [get]
 Indicates whether the connector supports server-side OCO orders.
 
abstract bool IsSupportedStopOrders [get]
 Indicates whether the connector supports stop orders.
 
abstract bool IsSupportedTradingFunctions [get]
 Indicates whether the connector supports trading functions.
 
abstract bool IsSupportedRussianMarket [get]
 Indicates whether the connector supports Russian market instruments.
 
abstract bool IsSupportedAmericanFutures [get]
 Indicates whether the connector supports American futures.
 
abstract bool IsSupportedAmericanStocks [get]
 Indicates whether the connector supports American stocks.
 
virtual bool IsSupportedCrypto [get]
 Indicates whether the connector supports crypto instruments.
 
virtual bool IsSupportedCfd [get]
 Indicates whether the connector supports CFD instruments.
 
virtual bool IsSupportedMaxOrderCalculation [get]
 Does connector support max order calculation for the instrument
This feature enables percentage slider under the volume input box
Affects CalcMaxOrderVolume and CalcOrderCost methods.
 
virtual bool IsSupportedServerTime [get]
 Does connector supports getting exchange server time.
 
virtual bool IsSupportedGoFlat [get]
 Indicates whether the connector supports atomic go-flat (cancel all orders and liquidate all positions).
 
bool MarketDataStreamEnabled [get, set]
 Indicates whether to raise market data through BestBidAskUpdates, MarketDepthsUpdate, and NewTrades events.
 
bool AllowUpdatePositionsPnL = true [get, set]
 
MarketDataDelayPeriods MarketDataDelayPeriod [get, set]
 Gets or sets delay period for market data.
 
IEntityFactory Factory [get, set]
 Factory used to create Security, Portfolio, and other entity objects.
 
ITimeSyncManager? DefaultTimeSyncManager [get, set]
 Default ITimeSyncManager to get time difference with NTP server.
 
IConnectorExchangeInfoProvider ExchangeInfoProvider = null! [get, set]
 Gets or sets the provider used to retrieve exchange information for the securities.
 
string DataPath = null! [get, set]
 
IMessageQueue< TMessage > MessageQueue [get, set]
 
IEnumerable< Security > Securities [get]
 
IEnumerable< Portfolio > Portfolios [get]
 
IEnumerable< MyTrade > MyTrades [get]
 
IEnumerable< Order > Orders [get]
 
IEnumerable< Position > Positions [get]
 
bool IsConnected [get, protected set]
 Returns true when all connections are established.
 
ConnectionStates ConnectionState [get]
 Current connection state of the connector.
 
ReconnectionTimer ReconnectionTimer [get]
 
bool ReconnectOnFirstConnect [get, set]
 Reconnect after a failed first connect instead of failing ConnectAsync. Set only by the unattended server hosts (DataSender, DataRepeater), and it means more than the name says: the host has nobody to fix the settings, so a connection refusal (see ConnectionRefusalReason) keeps reconnecting too instead of stopping and reporting to the user as it does on the platform.
 
bool ServerMode [get, set]
 
TimeSpan HeartbeatTimeout [get, set]
 
TimeSpan ConnectTimeout [get, set]
 Maximum time a single connect attempt may take before it is aborted. Guards against a remote that accepts the socket but never completes the login/handshake (a half-open connection): without this the connect Task would hang forever and, because ReconnectionTimer only re-arms on a failed attempt, auto-reconnect would wedge permanently. Set to TimeSpan.Zero to disable (not recommended). Connectors that legitimately need a longer handshake may raise this value.
 
TimeSpan DisconnectTimeout [get, set]
 Maximum time a single disconnect attempt may take before it is forced to completion. The disconnect handshake (e.g. waiting for the peer to acknowledge a logout and close the socket) can hang forever against a silent/half-open peer, wedging the connector in the Disconnecting state. On timeout the disconnect is forced so the connector reaches Disconnected. Set to TimeSpan.Zero to disable (not recommended).
 
TimeOnly? RefreshSecuritiesTime [get, set]
 
double MaxDelistedSecuritiesRatio [get, set]
 Upper bound on the share of the known securities a single refresh may delist. A refresh that would drop more than this is treated as an incomplete snapshot (a failed request, one market of several not answered, a response still being processed) and is skipped with a warning instead of removing the securities. The exchanges with a nightly refresh delist a handful of symbols a day out of hundreds, so the default of 5% leaves room for a batch clean-up and still catches a half-registered snapshot. Set to 1 to disable the check.
 
virtual bool HasPendingActions [get]
 
IConnectorLatencyManager LatencyManager [get]
 Latency manager.
 
SubscriptionStatistics? SubscriptionStatistics [get]
 Market data subscription load of the connector: subscribed instruments by security type and the number of subscribe/unsubscribe requests sent to the broker. null for connector wrappers that do not own the subscriptions themselves.
 
bool IsFullLicense [get, set]
 License type.
 
bool NeedRebatesCheck [get, set]
 Has rebate check feature.
 
Guid Id = Guid.NewGuid() [get]
 
- Properties inherited from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >
IIdGenerator IdGenerator [get]
 
IEnumerable< TSecurityPositionManager > PositionManagers [get]
 
ITimeSyncManager TimeSyncManager [get]
 
DateTime ServerUtcNow [get]
 The current UTC time on the server's clock: the computer's clock corrected by the time sync manager (zero correction until it has measured). Data the server sends without a time of its own (a REST snapshot) is stamped with it, so it compares with the server's event times - the latency manager subtracts a stamp from this same corrected time, and a stamp of the computer's clock gives a negative or a false delay when the clock is off.
 
TimeSpan PendingOrdersCheckPeriod [get, set]
 Delay after a (re)connect before the orders left pending by a connection loss are checked: the ones the broker has not reported by then are failed.
 
abstract bool IsSupportedServerOCO [get]
 Indicates whether the connector supports server-side OCO orders.
 
abstract bool IsSupportedStopOrders [get]
 Indicates whether the connector supports stop orders.
 
abstract bool IsSupportedTradingFunctions [get]
 Indicates whether the connector supports trading functions.
 
abstract bool IsSupportedRussianMarket [get]
 Indicates whether the connector supports Russian market instruments.
 
abstract bool IsSupportedAmericanFutures [get]
 Indicates whether the connector supports American futures.
 
abstract bool IsSupportedAmericanStocks [get]
 Indicates whether the connector supports American stocks.
 
virtual bool IsSupportedCrypto [get]
 
virtual bool IsSupportedCfd [get]
 
virtual bool IsSupportedMaxOrderCalculation [get]
 
virtual bool IsSupportedServerTime [get]
 
virtual bool IsSupportedGoFlat [get]
 
bool MarketDataStreamEnabled [get, set]
 Indicates whether to raise market data through BestBidAskUpdates, MarketDepthsUpdate, and NewTrades events.
 
bool AllowUpdatePositionsPnL [get, set]
 
MarketDataDelayPeriods MarketDataDelayPeriod [get, set]
 Gets or sets delay period for market data.
 
IEntityFactory Factory [get, set]
 Factory used to create Security, Portfolio, and other entity objects.
 
ITimeSyncManager? DefaultTimeSyncManager [get, set]
 
IConnectorExchangeInfoProvider ExchangeInfoProvider [get, set]
 
string DataPath [get, set]
 
IMessageQueue< TMessage > MessageQueue [get, set]
 
IEnumerable< Security > Securities [get]
 
IEnumerable< Portfolio > Portfolios [get]
 
IEnumerable< MyTrade > MyTrades [get]
 
IEnumerable< Order > Orders [get]
 
IEnumerable< Position > Positions [get]
 
bool IsConnected [get, protected set]
 Returns true when all connections are established.
 
ConnectionStates ConnectionState [get]
 Current connection state of the connector.
 
ReconnectionTimer ReconnectionTimer [get]
 
bool ReconnectOnFirstConnect [get, set]
 
bool ServerMode [get, set]
 
TimeSpan HeartbeatTimeout [get, set]
 
TimeSpan ConnectTimeout [get, set]
 Maximum time a single connect attempt may take before it is aborted. Guards against a remote that accepts the socket but never completes the login/handshake (a half-open connection): without this the connect Task would hang forever and, because ReconnectionTimer only re-arms on a failed attempt, auto-reconnect would wedge permanently. Set to TimeSpan.Zero to disable (not recommended). Connectors that legitimately need a longer handshake may raise this value.
 
TimeSpan DisconnectTimeout [get, set]
 Maximum time a single disconnect attempt may take before it is forced to completion. The disconnect handshake (e.g. waiting for the peer to acknowledge a logout and close the socket) can hang forever against a silent/half-open peer, wedging the connector in the Disconnecting state. On timeout the disconnect is forced so the connector reaches Disconnected. Set to TimeSpan.Zero to disable (not recommended).
 
TimeOnly? RefreshSecuritiesTime [get, set]
 
double MaxDelistedSecuritiesRatio [get, set]
 Upper bound on the share of the known securities a single refresh may delist. A refresh that would drop more than this is treated as an incomplete snapshot (a failed request, one market of several not answered, a response still being processed) and is skipped with a warning instead of removing the securities. The exchanges with a nightly refresh delist a handful of symbols a day out of hundreds, so the default of 5% leaves room for a batch clean-up and still catches a half-registered snapshot. Set to 1 to disable the check.
 
virtual bool HasPendingActions [get]
 
IConnectorLatencyManager LatencyManager [get]
 Latency manager.
 
SubscriptionStatistics? SubscriptionStatistics [get]
 Market data subscription load of the connector: subscribed instruments by security type and the number of subscribe/unsubscribe requests sent to the broker. null for connector wrappers that do not own the subscriptions themselves.
 
bool IsFullLicense [get, set]
 License type.
 
bool NeedRebatesCheck [get, set]
 Has rebate check feature.
 
Guid Id [get]
 
- Properties inherited from ATAS.DataFeedsCore.IDataFeedConnector
Guid Id [get]
 
bool IsSupportedServerOCO [get]
 Indicates whether the connector supports server-side OCO orders.
 
bool IsSupportedStopOrders [get]
 Indicates whether the connector supports stop orders.
 
bool IsSupportedTradingFunctions [get]
 Indicates whether the connector supports trading functions.
 
bool IsConnected [get]
 
ConnectionStates ConnectionState [get]
 Current connection state of the connector.
 
MarketDataDelayPeriods MarketDataDelayPeriod [get, set]
 Gets or sets delay period for market data.
 
bool IsSupportedRussianMarket [get]
 Indicates whether the connector supports Russian market instruments.
 
bool IsSupportedAmericanFutures [get]
 Indicates whether the connector supports American futures.
 
bool IsSupportedAmericanStocks [get]
 Indicates whether the connector supports American stocks.
 
bool IsSupportedCrypto [get]
 Indicates whether the connector supports crypto instruments.
 
bool IsSupportedCfd [get]
 Indicates whether the connector supports CFD instruments.
 
bool IsSupportedMaxOrderCalculation [get]
 Does connector support max order calculation for the instrument
This feature enables percentage slider under the volume input box
Affects CalcMaxOrderVolume and CalcOrderCost methods.
 
bool IsSupportedServerTime [get]
 Does connector supports getting exchange server time.
 
bool MarketDataStreamEnabled [get, set]
 Indicates whether to raise market data through BestBidAskUpdates, MarketDepthsUpdate, and NewTrades events.
 
bool AllowUpdatePositionsPnL [get, set]
 
IEntityFactory Factory [get, set]
 Factory used to create Security, Portfolio, and other entity objects.
 
ITimeSyncManager? DefaultTimeSyncManager [get, set]
 Default ITimeSyncManager to get time difference with NTP server.
 
IConnectorExchangeInfoProvider ExchangeInfoProvider [get, set]
 Gets or sets the provider used to retrieve exchange information for the securities.
 
string DataPath [get, set]
 
IConnectorLatencyManager LatencyManager [get]
 Latency manager.
 
SubscriptionStatistics? SubscriptionStatistics [get]
 Market data subscription load of the connector: subscribed instruments by security type and the number of subscribe/unsubscribe requests sent to the broker. null for connector wrappers that do not own the subscriptions themselves.
 
bool IsFullLicense [get, set]
 License type.
 
bool NeedRebatesCheck [get, set]
 Has rebate check feature.
 
bool IsSupportedGoFlat [get]
 Indicates whether the connector supports atomic go-flat (cancel all orders and liquidate all positions).
 
IEnumerable< Security > Securities [get]
 
IEnumerable< Portfolio > Portfolios [get]
 
IEnumerable< MyTrade > MyTrades [get]
 
IEnumerable< Order > Orders [get]
 
IEnumerable< Position > Positions [get]
 
TimeOnly? RefreshSecuritiesTime [get, set]
 
bool HasPendingActions [get]
 
bool ServerMode [get, set]
 
bool ReconnectOnFirstConnect [get, set]
 Reconnect after a failed first connect instead of failing ConnectAsync. Set only by the unattended server hosts (DataSender, DataRepeater), and it means more than the name says: the host has nobody to fix the settings, so a connection refusal (see ConnectionRefusalReason) keeps reconnecting too instead of stopping and reporting to the user as it does on the platform.
 

Events

ConnectorEventHandler? Connected
 
ConnectorEventHandler? Disconnected
 
ConnectorEventHandler< ConnectionStateEventArgs >? ConnectionStateChanged
 
ConnectorEventHandler< IEnumerable< MyTrade > >? NewMyTrades
 
ConnectorEventHandler< IEnumerable< Order > >? NewOrders
 
ConnectorEventHandler< IEnumerable< Position > >? NewPositions
 
ConnectorEventHandler< IEnumerable< Portfolio > >? NewPortfolios
 
ConnectorEventHandler< IEnumerable< Security > >? NewSecurities
 
ConnectorEventHandler< IEnumerable< Security > >? RemoveSecurities
 
ConnectorEventHandler< Order >? OrderChanged
 
ConnectorEventHandler< RebateResult >? RebateReceived
 
ConnectorEventHandler< string, Order >? OrdersRegisterFailed
 
ConnectorEventHandler< string, Order >? OrdersCancelFailed
 
ConnectorEventHandler< Order, Order, string >? OrderModifyFailed
 
ConnectorEventHandler< IEnumerable< Portfolio > >? PortfoliosChanged
 
ConnectorEventHandler< IEnumerable< Position > >? PositionsChanged
 
ConnectorEventHandler< MarketDepth >? BestBidAskUpdates
 
ConnectorEventHandler< IEnumerable< MarketDepth > >? MarketDepthsUpdate
 
ConnectorEventHandler< Security >? MarketDepthsReset
 
ConnectorEventHandler< Security >? MarketByOrdersReset
 
ConnectorEventHandler< MarketByOrder >? MarketByOrderChanged
 
ConnectorEventHandler< IEnumerable< Trade > >? NewTrades
 
ConnectorEventHandler< Trade >? NewMboTrade
 
ConnectorEventHandler< Exception >? Error
 
ConnectorEventHandler< SecurityFilter, Exception?, IEnumerable< Security > >? SearchSecuritiesResult
 
ConnectorEventHandler< Security, Exception?>? RegisterSecurityResult
 
ConnectorEventHandler< News >? NewNews
 
ConnectorEventHandler< Security >? SecurityChanged
 
ConnectorEventHandler< SecuritySummary >? SecuritySummaryChanged
 
ConnectorEventHandler< IEnumerable< Security >, Exception?>? SubscribeMarketDataResult
 
ConnectorEventHandler< IEnumerable< Security >, Exception?>? UnsubscribeMarketDataResult
 
- Events inherited from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >
ConnectorEventHandler? Connected
 
ConnectorEventHandler? Disconnected
 
ConnectorEventHandler< ConnectionStateEventArgs >? ConnectionStateChanged
 
ConnectorEventHandler< IEnumerable< MyTrade > >? NewMyTrades
 
ConnectorEventHandler< IEnumerable< Order > >? NewOrders
 
ConnectorEventHandler< IEnumerable< Position > >? NewPositions
 
ConnectorEventHandler< IEnumerable< Portfolio > >? NewPortfolios
 
ConnectorEventHandler< IEnumerable< Security > >? NewSecurities
 
ConnectorEventHandler< IEnumerable< Security > >? RemoveSecurities
 
ConnectorEventHandler< Order >? OrderChanged
 
ConnectorEventHandler< RebateResult >? RebateReceived
 
ConnectorEventHandler< string, Order >? OrdersRegisterFailed
 
ConnectorEventHandler< string, Order >? OrdersCancelFailed
 
ConnectorEventHandler< Order, Order, string >? OrderModifyFailed
 
ConnectorEventHandler< IEnumerable< Portfolio > >? PortfoliosChanged
 
ConnectorEventHandler< IEnumerable< Position > >? PositionsChanged
 
ConnectorEventHandler< MarketDepth >? BestBidAskUpdates
 
ConnectorEventHandler< IEnumerable< MarketDepth > >? MarketDepthsUpdate
 
ConnectorEventHandler< Security >? MarketDepthsReset
 
ConnectorEventHandler< Security >? MarketByOrdersReset
 
ConnectorEventHandler< MarketByOrder >? MarketByOrderChanged
 
ConnectorEventHandler< IEnumerable< Trade > >? NewTrades
 
ConnectorEventHandler< Trade >? NewMboTrade
 
ConnectorEventHandler< Exception >? Error
 
ConnectorEventHandler< SecurityFilter, Exception?, IEnumerable< Security > >? SearchSecuritiesResult
 
ConnectorEventHandler< Security, Exception?>? RegisterSecurityResult
 
ConnectorEventHandler< News >? NewNews
 
ConnectorEventHandler< Security >? SecurityChanged
 
ConnectorEventHandler< SecuritySummary >? SecuritySummaryChanged
 
ConnectorEventHandler< IEnumerable< Security >, Exception?>? SubscribeMarketDataResult
 
ConnectorEventHandler< IEnumerable< Security >, Exception?>? UnsubscribeMarketDataResult
 
- Events inherited from ATAS.DataFeedsCore.IDataFeedConnector
ConnectorEventHandler< ConnectionStateEventArgs >? ConnectionStateChanged
 
ConnectorEventHandler? Connected
 
ConnectorEventHandler? Disconnected
 
ConnectorEventHandler< IEnumerable< MyTrade > >? NewMyTrades
 
ConnectorEventHandler< IEnumerable< Order > >? NewOrders
 
ConnectorEventHandler< IEnumerable< Position > >? NewPositions
 
ConnectorEventHandler< IEnumerable< Portfolio > >? NewPortfolios
 
ConnectorEventHandler< IEnumerable< Security > >? NewSecurities
 
ConnectorEventHandler< IEnumerable< Security > >? RemoveSecurities
 
ConnectorEventHandler< Order >? OrderChanged
 
ConnectorEventHandler< string, Order >? OrdersRegisterFailed
 
ConnectorEventHandler< string, Order >? OrdersCancelFailed
 
ConnectorEventHandler< Order, Order, string >? OrderModifyFailed
 
ConnectorEventHandler< IEnumerable< Portfolio > >? PortfoliosChanged
 
ConnectorEventHandler< IEnumerable< Position > >? PositionsChanged
 
ConnectorEventHandler< MarketDepth >? BestBidAskUpdates
 
ConnectorEventHandler< IEnumerable< MarketDepth > >? MarketDepthsUpdate
 
ConnectorEventHandler< Security >? MarketDepthsReset
 Raised when the connector's order book for the security is rebuilt from scratch (e.g. a fresh snapshot after a reconnect). Consumers must drop all accumulated depth state for the security before applying the updates that follow, because removals for levels of the previous book generation are never sent.
 
ConnectorEventHandler< Security >? MarketByOrdersReset
 Raised when the connector's by-order book for the security is rebuilt from scratch (a fresh image after a reconnect or on subscription). Consumers must drop every order they hold for the security before applying the updates that follow: deletes for orders of the previous book generation are never sent. Independent of MarketDepthsReset, so a market-by-order-only subscription gets it too.
 
ConnectorEventHandler< MarketByOrder > MarketByOrderChanged
 
ConnectorEventHandler< IEnumerable< Trade > >? NewTrades
 
ConnectorEventHandler< Trade >? NewMboTrade
 Raised for every trade of a security with an active market-by-order subscription, carrying the passive/aggressor exchange order ids and the match event id when the connector could attribute the trade to its book fill. Unlike NewTrades, delivery may lag the tape by the connector's attribution hold.
 
ConnectorEventHandler< Security >? SecurityChanged
 
ConnectorEventHandler< SecuritySummary >? SecuritySummaryChanged
 
ConnectorEventHandler< Exception >? Error
 Raised when an error occurs.
 
ConnectorEventHandler< SecurityFilter, Exception?, IEnumerable< Security > >? SearchSecuritiesResult
 
ConnectorEventHandler< Security, Exception?>? RegisterSecurityResult
 
ConnectorEventHandler< News >? NewNews
 
ConnectorEventHandler< RebateResult >? RebateReceived
 
- Events inherited from ATAS.DataFeedsCore.IMarketDataPublisher
ConnectorEventHandler< IEnumerable< Security >, Exception?>? SubscribeMarketDataResult
 
ConnectorEventHandler< IEnumerable< Security >, Exception?>? UnsubscribeMarketDataResult
 

Constructor & Destructor Documentation

◆ BaseConnector() [1/4]

ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BaseConnector ( )
protected

◆ BaseConnector() [2/4]

ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BaseConnector ( long  initialId)
protected

◆ BaseConnector() [3/4]

ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BaseConnector ( )
protected

◆ BaseConnector() [4/4]

ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BaseConnector ( long  initialId)
protected

Member Function Documentation

◆ BeginProcessingDelistedSecurities()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BeginProcessingDelistedSecurities ( )
protected

◆ CalcIsolatedMarginChangeRange()

virtual ? decimal? decimal maxRemovable ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CalcIsolatedMarginChangeRange ( Position  position)

◆ CalcLiquidationPrice()

virtual ? decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CalcLiquidationPrice ( Position  position,
decimal  margin 
)
virtual

◆ CalcMaxOrderVolume()

decimal? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CalcMaxOrderVolume ( OrderTypes  orderType,
Security  security,
Portfolio  portfolio,
OrderDirections  direction,
decimal?  limitPrice = null 
)

Gets max possible volume for the order
This function is always return null if IsSupportedMaxOrderCalculation is false.

Parameters
orderType
securityThe security to calculate the volume for.
portfolioThe portfolio to calculate the volume for.
direction
limitPriceoptional limit price to calculate volume at. If null market price will be used
Returns

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ CalcOrderCost()

decimal? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CalcOrderCost ( OrderTypes  orderType,
Security  security,
Portfolio  portfolio,
OrderDirections  direction,
decimal?  limitPrice,
decimal  volume,
out object?  detailing,
bool  giveDetailing = false 
)

Calculates total order cost including commissions and initial margin and everything else
This function is always return null if IsSupportedMaxOrderCalculation is false.

Parameters
orderType
securityThe security of the order.
portfolioThe portfolio the order is placed from.
direction
limitPricepass null to use market price for calculation
volumeDesired volume of contracts to make order
detailingAn object explaining each item which builds up the final price
giveDetailingtrue for request detailing
Returns
Complete order cost including requested volume and all commissions and margins

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ CancelOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CancelOrder ( Order  order)

◆ CancelOrderAsync()

Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CancelOrderAsync ( Order  order)

◆ CanSetPositionAveragePrice()

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CanSetPositionAveragePrice ( Position  position)

◆ ChangeIsolatedMarginAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ChangeIsolatedMarginAsync ( Position  position,
decimal  value 
)

Adds or removes to isolated margin of a position. This method does not apply for crossed margin mode
This method works only if Position.Risk property is not null.

Parameters
position
valueUse positive value to add margin and negative to reduce
Returns

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ChangeMarginParametersAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ChangeMarginParametersAsync ( Position  position,
bool?  isIsolated,
decimal?  leverage 
)

Switches position margin mode (isolated/cross) and/or trading leverage for it.Pass null if parameter should not be changedThis method works only if Position.Risk property is not null

Parameters
position
isolatedTrue for isolated, False for crossed mode
leverage
Returns

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ClearDataForPortfolio()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ClearDataForPortfolio ( Portfolio  portfolio)
protected

◆ ClosePositionAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ClosePositionAsync ( Position  position)

◆ ClosePositionsAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ClosePositionsAsync ( Portfolio  portfolio)

◆ CompleteProcessingDelistedSecurities()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CompleteProcessingDelistedSecurities ( )
protected

◆ Connect()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Connect ( )

Asynchronously starts connection process
Connected event will fire indicating successful connection.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ConnectAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ConnectAsync ( )

Asynchronously starts connection process.

Returns

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ConvertCurrency()

decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ConvertCurrency ( Security  security,
string  currencyFrom,
string  currencyTo,
decimal  volume,
decimal?  limitPrice = null,
bool  roundToLotSize = true 
)

Converts volume from one currency to another Used for Notional value calculation.

Parameters
security
currencyFrom
currencyTo
volume
limitPriceoptional value in QuoteCurrency
roundToLotSizeRound result to LotSize/Precision
Returns
Exceptions
ArgumentNullException
ArgumentException

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ CreateOrderToClosePosition()

virtual Order ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CreateOrderToClosePosition ( Position  pos)
protectedvirtual

◆ CreatePositionManager()

virtual TSecurityPositionManager ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.CreatePositionManager ( Position  position)
protectedvirtual

◆ Disconnect()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Disconnect ( )

◆ DisconnectAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.DisconnectAsync ( )

Asynchronously starts disconnection process.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ Enqueue() [1/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Enqueue ( Action  action)
protected

◆ Enqueue() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Enqueue ( TMessage  message)
protected

◆ EnqueueContinuation()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.EnqueueContinuation ( Action  continuation)
protected

Queues an await continuation of the connector's thread. Unlike a message or an action queued while the connector is disconnected, a continuation posted after its connection session ended never runs in a later session (see IMessageQueue<TMessage>.EnqueueContinuation).

◆ FailPendingSearchSecurities()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.FailPendingSearchSecurities ( Exception  error)
protected

Completes all pending SearchSecuritiesAsync operations with the given error so callers do not hang when the connector disconnects or a search pipeline fails.

◆ GetApiServerTime()

virtual Task<(DateTime serverTime, DateTime localTime, TimeSpan latency)> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetApiServerTime ( CancellationToken  cancellationToken)
protectedvirtual

◆ GetCurrentSubscription()

SubscriptionType ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetCurrentSubscription ( Security  security)
protected

◆ GetMyTradesAsync()

Task< IEnumerable< MyTrade > > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetMyTradesAsync ( Portfolio  portfolio,
Security  security,
DateTime  from,
DateTime  to 
)

Get a list of my trades.

Parameters
portfolioPortfolio.
securitySecurity.
fromFrom date.
toTo date.
Returns

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ GetPortfolio()

Portfolio? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetPortfolio ( TPortfolioKey  portfolioKey)
protected

◆ GetPortfolios()

IEnumerable< Portfolio > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetPortfolios ( Security  security)

◆ GetPosition()

Position ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetPosition ( Portfolio  portfolio,
Security  security,
TPlusLimits?  tPlusLimit 
)

◆ GetRoutes()

IEnumerable< string > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetRoutes ( Security  security)

◆ GetSecurity()

Security? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetSecurity ( TSecurityKey  securityId)
protected

◆ GetSecurityTradingOptions()

ISecurityTradingOptions? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetSecurityTradingOptions ( Security  security)

Gets possible TimeInForce for order and optional flags that may be passed when order is created
If null default behaviour is expected:
TimeInForce = DAY, GTC, FOK
No order flags

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ GetTradingPortfolio()

Portfolio ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GetTradingPortfolio ( Portfolio  portfolio,
Security  security 
)

Resolves the portfolio that actually holds orders and positions for the specified security. Some connectors (e.g. CQG) route trading data to a currency-specific sub-portfolio of the selected account portfolio; for such connectors this method returns that sub-portfolio. For all other connectors the same portfolio is returned.

Parameters
portfolioThe portfolio selected by the user.
securityThe security to be traded.
Returns
The portfolio that receives order and position updates for the security.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ GoFlatAsync()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.GoFlatAsync ( Portfolio  portfolio)

Cancels all active orders and liquidates all open positions for the portfolio in a single atomic operation.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsMarketDataSubscribed()

bool? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsMarketDataSubscribed ( Security  security,
SubscriptionType  subscriptionType 
)

Whether the connector currently counts a market data subscription of the type for the security. Counted subscriptions are restored by the connector after a reconnect; a subscription the broker rejected is no longer counted. null for connectors that do not track their subscriptions.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ModifyOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ModifyOrder ( Order  order,
Order  neworder 
)

Modifies the price of an order.

Parameters
orderThe order to modify.
neworderThe new order with the updated parameters.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ModifyOrderAsync()

Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ModifyOrderAsync ( Order  order,
Order  newOrder 
)

◆ OnCalcMaxOrderVolume()

virtual ? decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnCalcMaxOrderVolume ( OrderTypes  orderType,
Security  security,
Portfolio  portfolio,
OrderDirections  direction,
decimal?  limitPrice = null 
)
protectedvirtual

◆ OnCalcOrderCost()

virtual ? decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnCalcOrderCost ( OrderTypes  orderType,
Security  security,
Portfolio  portfolio,
OrderDirections  direction,
decimal?  limitPrice,
decimal  volume,
out object?  detailing,
bool  giveDetailing = false 
)
protectedvirtual

◆ OnCancelOrder()

◆ OnChangeIsolatedMarginAsync()

virtual Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnChangeIsolatedMarginAsync ( Position  position,
decimal  value 
)
protectedvirtual

◆ OnChangeMarginParametersAsync()

virtual Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnChangeMarginParametersAsync ( Position  position,
bool?  isIsolated,
decimal?  leverage 
)
protectedvirtual

◆ OnClosePosition()

virtual async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnClosePosition ( Position  position)
protectedvirtual

◆ OnClosePositions()

virtual async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnClosePositions ( Portfolio  portfolio)
protectedvirtual

◆ OnConnect()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnConnect ( )
protectedvirtual

A place for connection routines
Executed on thread-pool thread.

Following automatic reconnection MUST only happen if connection was successfully established.

Reimplemented from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >.

Reimplemented in ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.

◆ OnConnectAsync()

◆ OnConnected()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnConnected ( )
protected

Raises Connected event
The event must be called when the connector have all necessary connections established and authenticated
All security objects must be processed before this call if possible
If there were any subscriptions, search for that securities will be performed.

◆ OnConnectionError()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnConnectionError ( Exception  error)
protected

Remember the error that will be handled when the OnDisconnected(Exception) is called.

A later error replaces the remembered one, except that a refusal (ConnectionRefusedException: the credentials rejected, the session taken over) is not replaced by an error that is not a refusal. A server that refuses the session closes the connection right after saying so, and the transport reports the close as an error of its own (AtasWebSocket: "Websocket connection was closed"); that error is the consequence of the refusal, and replacing the refusal with it turned the stop of the reconnection into one more reconnection (PLAT-5183). The remembered error is dropped, as before, when the end of the connection is handled and when a new connect attempt begins (PLAT-5177).

Parameters
error

◆ OnConnectTimedOut()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnConnectTimedOut ( Exception  error)
protectedvirtual

Called when a connect attempt exceeds ConnectTimeout. The default implementation faults the pending default connect task. Override to additionally tear down any half-open transport (socket/session) created during the attempt so it is not leaked.

Reimplemented from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >.

Reimplemented in ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.

◆ OnConvertCurrency()

virtual decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnConvertCurrency ( Security  security,
string  currencyFrom,
string  currencyTo,
decimal  volume,
decimal?  limitPrice = null,
bool  roundToLotSize = true 
)
protectedvirtual

Converts volume from one currency to another Used for Notional value calculation.

Parameters
security
currencyFrom
currencyTo
volume
limitPriceoptional value in QuoteCurrency
roundToLotSizeRound volume to LotSize/Precision
Returns

Reimplemented from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >.

Reimplemented in ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.

◆ OnDisconnect()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnDisconnect ( )
protectedvirtual

◆ OnDisconnectAsync()

virtual Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnDisconnectAsync ( )
protectedvirtual

◆ OnDisconnected()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnDisconnected ( )
protected

Cleans up base resources and raises Disconnected event.

A transport may report the end of one attempt more than once at the same time: the socket close and the rejected logon on two threads, a report from code that the first completion runs inline (task continuations, state handlers), a drop racing the logon confirmation. The pending attempt and the error are taken together under a lock, so exactly one report ends an attempt; until the attempt's flow has handled that end (torn down after a failure, or reached Connected), further reports are the same end reported again and are not torn down a second time, except a loss after the confirmation, which is handled once the flow has reached Connected. Before, a second report completed the attempt task again and the exception escaped into the transport's (often async void) callback (PLAT-5170).

◆ OnDisconnectTimedOut()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnDisconnectTimedOut ( )
protectedvirtual

Called when a disconnect attempt exceeds DisconnectTimeout. The default implementation force-completes the pending default disconnect task so the connector reaches the Disconnected state. Override to additionally tear down any transport (socket/session) that the peer never closed.

Reimplemented from ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >.

Reimplemented in ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.

◆ OnGetMyTradesAsync()

virtual Task< IEnumerable< MyTrade > > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGetMyTradesAsync ( Portfolio  portfolio,
Security  security,
DateTime  from,
DateTime  to 
)
protectedvirtual

◆ OnGetPortfolios()

virtual IEnumerable< Portfolio > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGetPortfolios ( Security  security)
protectedvirtual

◆ OnGetRoutes()

virtual IEnumerable< string > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGetRoutes ( Security  security)
protectedvirtual

◆ OnGetSecurityTradingOptions()

virtual ? ISecurityTradingOptions ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGetSecurityTradingOptions ( Security  security)
protectedvirtual

◆ OnGetTradingPortfolio()

virtual Portfolio ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGetTradingPortfolio ( Portfolio  portfolio,
Security  security 
)
protectedvirtual

◆ OnGoFlat()

virtual Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnGoFlat ( Portfolio  portfolio)
protectedvirtual

◆ OnModifyOrder()

◆ OnProcess()

abstract void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnProcess ( TMessage  message)
protectedpure virtual

Handles queued messages by the MessageQueue
In case of SimpleMessageQueue it allows to process all messages in the special connector's queue thread.

Parameters
message

Implements ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, ISecurityPositionManager >.

Implemented in ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.

◆ OnRefreshSecuritiesAsync()

virtual async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnRefreshSecuritiesAsync ( )
protectedvirtual

◆ OnRegisterOrder()

◆ OnSearchSecurities() [1/3]

◆ OnSearchSecurities() [2/3]

abstract void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnSearchSecurities ( TSecurityKey  securityId)
protectedpure virtual

◆ OnSearchSecurities() [3/3]

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnSearchSecurities ( TSecurityKey  securityId,
TMessage  message 
)
protectedvirtual

◆ OnSendHeartbeat()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnSendHeartbeat ( )
protectedvirtual

◆ OnSubscribeMarketData() [1/2]

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnSubscribeMarketData ( IEnumerable< Security >  securities,
SubscriptionType  subscription 
)
protectedvirtual

◆ OnSubscribeMarketData() [2/2]

◆ OnUnsubscribeFromMarketData()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OnUnsubscribeFromMarketData ( IEnumerable< Security >  securities,
SubscriptionType  subscription 
)
protectedvirtual

◆ OnUnsubscribeMarketData()

◆ PositionPnLChanged()

virtual void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.PositionPnLChanged ( Position  position)
protectedvirtual

◆ ProcessAutoRefreshSecurities()

async Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessAutoRefreshSecurities ( )
protected

◆ ProcessBestBidAsk() [1/4]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessBestBidAsk ( MarketDepth  marketDepth)
protected

◆ ProcessBestBidAsk() [2/4]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessBestBidAsk ( Security  security,
DateTime  time,
MarketDataType  type,
decimal  price,
decimal  volume,
string  ecn = "" 
)
protected

◆ ProcessBestBidAsk() [3/4]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessBestBidAsk ( TSecurityKey  securityId,
DateTime  time,
MarketDataType  type,
decimal  price,
decimal  volume,
string  ecn = "" 
)
protected

◆ ProcessBestBidAsk() [4/4]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessBestBidAsk ( TSecurityKey  securityId,
MarketDepth  marketDepth 
)
protected

◆ ProcessMarketByOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMarketByOrder ( MarketByOrder  mbo)
protected

◆ ProcessMarketDepths() [1/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMarketDepths ( Security  security,
Func< Security, ICollection< MarketDepth > >  action 
)
protected

◆ ProcessMarketDepths() [2/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMarketDepths ( Security  security,
ICollection< MarketDepth >  depths 
)
protected

◆ ProcessMarketDepths() [3/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMarketDepths ( TSecurityKey  securityId,
Func< Security, ICollection< MarketDepth > >  action 
)
protected

◆ ProcessMarketDepthsReset()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMarketDepthsReset ( TSecurityKey  securityId,
ICollection< MarketDepth >  depth 
)
protected

◆ ProcessMboTrade()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMboTrade ( Trade  trade)
protected

◆ ProcessMyTrade< T >() [1/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMyTrade< T > ( long  extId,
string  orderId,
string  tradeId,
T  message,
Action< T, MyTrade >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessMyTrade< T >() [2/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMyTrade< T > ( long  extId,
string  tradeId,
T  message,
Action< T, MyTrade >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessMyTrade< T >() [3/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessMyTrade< T > ( TPortfolioKey  accountId,
TSecurityKey  securityId,
long  extId,
string  orderId,
string  tradeId,
T  message,
Action< T, MyTrade >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrder ( long  extId,
Action< Order >  process 
)
protected

◆ ProcessOrder< T >() [1/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrder< T > ( long  extId,
T  message,
Action< T, Order >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessOrder< T >() [2/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrder< T > ( TPortfolioKey  accountId,
TSecurityKey  securityId,
long  extId,
T  message,
Action< T, bool, Order >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessOrder< T >() [3/3]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrder< T > ( TPortfolioKey  accountId,
TSecurityKey  securityId,
long  extId,
T  message,
Func< T, bool, Order, bool?>  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessOrderError() [1/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrderError ( long  extId,
string  error 
)
protected

◆ ProcessOrderError() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessOrderError ( Order  order,
string  error 
)
protected

◆ ProcessPortfolio< T >() [1/2]

Portfolio ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessPortfolio< T > ( TPortfolioKey  id,
string  accountId,
T  message,
Action< T, Portfolio >  update 
)
protected

◆ ProcessPortfolio< T >() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessPortfolio< T > ( TPortfolioKey  id,
T  message,
Action< T, Portfolio >  update,
bool  throwIfNotFound = false 
)
protected

◆ ProcessPosition< T >() [1/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessPosition< T > ( TPortfolioKey  accountId,
TSecurityKey  securityId,
T  message,
Func< T, bool, TSecurityPositionManager, bool >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessPosition< T >() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessPosition< T > ( TPortfolioKey  accountId,
TSecurityKey  securityId,
TPlusLimits?  tPlusLimit,
T  message,
Func< T, bool, TSecurityPositionManager, bool >  update 
)
protected
Type Constraints
T :TMessage 

◆ ProcessSecurity()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessSecurity ( TSecurityKey  id,
Action< Security >  action 
)
protected

◆ ProcessSecurity< T >()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessSecurity< T > ( TSecurityKey  id,
string  securityId,
T  message,
Action< T, bool, Security >  update 
)
protected

Converts internal security object of the connector into the ATAS-security visible to the system.

Template Parameters
TType of the connector's security object
Parameters
idConnector's internal id of the security
securityIdATAS public id of the security in form of internal-id@exchange-id like BTCUSD@ByBit
messageConnector's specific message with security data
updateCallback where Security object must be populated

◆ ProcessSummary()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessSummary ( TSecurityKey  id,
Action< SecuritySummary >  action 
)
protected

◆ ProcessSummary< TValue >()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessSummary< TValue > ( TSecurityKey  id,
TValue  value,
Action< SecuritySummary, TValue >  action 
)
protected

◆ ProcessTick() [1/5]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessTick ( Security  security,
long  id,
DateTime  time,
TradeDirection  direction,
decimal  price,
decimal  volume,
string  ecn = "",
decimal?  openInterest = null 
)
protected

◆ ProcessTick() [2/5]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessTick ( Security  security,
Trade  trade 
)
protected

◆ ProcessTick() [3/5]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessTick ( Trade  trade)
protected

◆ ProcessTick() [4/5]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessTick ( TSecurityKey  securityId,
long  id,
DateTime  time,
TradeDirection  direction,
decimal  price,
decimal  volume,
string  ecn = "",
decimal?  openInterest = null 
)
protected

◆ ProcessTick() [5/5]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ProcessTick ( TSecurityKey  securityId,
Trade  trade 
)
protected

◆ RaiseConnected()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseConnected ( )
protected

◆ RaiseDisconnected()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseDisconnected ( )
protected

◆ RaiseMarketByOrdersReset()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseMarketByOrdersReset ( Security  security)
protected

◆ RaiseMarketDepthsReset()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseMarketDepthsReset ( Security  security)
protected

◆ RaiseNews()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseNews ( News  news)
protected

◆ RaiseOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseOrder ( Order  order,
bool  isNew 
)
protected

◆ RaiseOrderCancellationReason()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseOrderCancellationReason ( Order  order,
string  reason 
)
protected

Publishes broker metadata without completing a pending register/modify/cancel action.

◆ RaiseOrderFailed()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseOrderFailed ( Order  order,
string  error 
)
protected

◆ RaisePosition()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaisePosition ( TSecurityPositionManager  posManager,
bool  isNew 
)
protected

◆ RaiseRebateResult()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseRebateResult ( RebateResult  result)
protected

◆ RaiseRegisterSecurityResult()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseRegisterSecurityResult ( Security  security,
SubscriptionType  subscriptionType,
Exception?  error 
)
protected

◆ RaiseSearchSecuritiesResult()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseSearchSecuritiesResult ( SecurityFilter  filter,
Exception?  error,
IEnumerable< Security >  securities 
)
protected

◆ RaiseSecurityChanged()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseSecurityChanged ( Security  security)
protected

◆ RaiseSecuritySummaryChanged()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseSecuritySummaryChanged ( SecuritySummary  summary)
protected

◆ RaiseSubscribeMarketDataResult()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseSubscribeMarketDataResult ( IEnumerable< Security >  securities,
Exception?  error = null 
)
protected

◆ RaiseUnsubscribeMarketDataResult()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RaiseUnsubscribeMarketDataResult ( IEnumerable< Security >  securities,
Exception  error 
)
protected

◆ RegisterOrder()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RegisterOrder ( Order  order)

◆ RegisterOrderAsync()

Task ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RegisterOrderAsync ( Order  order)

◆ RememberPendingOrders()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RememberPendingOrders ( )
protected

◆ SearchSecurities()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SearchSecurities ( SecurityFilter  filter)

Searches for securities matching the specified filter.

Parameters
filter

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ SearchSecuritiesAsync()

Task< IEnumerable< Security > > ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SearchSecuritiesAsync ( SecurityFilter  filter)

◆ SetPositionAveragePrice()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SetPositionAveragePrice ( Position  position,
decimal  avgPrice 
)

◆ SubscribeToMarketData() [1/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SubscribeToMarketData ( IEnumerable< Security >  securities,
SubscriptionType  subscriptionTypes 
)

◆ SubscribeToMarketData() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SubscribeToMarketData ( Security  security,
SubscriptionType  subscriptionTypes 
)

Subscribes to market data for a security.

Parameters
securityThe security to subscribe to.
subscriptionTypesThe subscription type flags.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ TryAdmitOptionLookup()

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryAdmitOptionLookup ( string  request,
out Exception?  error 
)
protected

For IOptionsDataFeed implementations: call first in every option series and chain lookup, before anything is sent and before the first await, and fail the lookup with the returned error when it is refused (see OptionRequestGuard).

◆ TryGetOrder() [1/2]

Order ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryGetOrder ( long  extId)

◆ TryGetOrder() [2/2]

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryGetOrder ( string  marketOrderId,
out Order?  order 
)

◆ TryGetPosition() [1/3]

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryGetPosition ( Order  order,
out Position?  position 
)
protected

◆ TryGetPosition() [2/3]

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryGetPosition ( Portfolio  portfolio,
Security  security,
out Position?  position 
)
protected

◆ TryGetPosition() [3/3]

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TryGetPosition ( Portfolio  portfolio,
Security  security,
TPlusLimits  limits,
out Position?  position 
)
protected

◆ UnsubscribeFromMarketData() [1/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.UnsubscribeFromMarketData ( IEnumerable< Security >  securities,
SubscriptionType  subscriptionTypes 
)

◆ UnsubscribeFromMarketData() [2/2]

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.UnsubscribeFromMarketData ( Security  security,
SubscriptionType  subscriptionTypes 
)

Unsubscribes from market data for a security.

Parameters
securityThe security to unsubscribe from.
subscriptionTypesThe subscription type flags.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ UpdatePositionsPnL()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.UpdatePositionsPnL ( Security  security,
MarketDataType  type,
decimal  price 
)
protected

◆ ValidateTradesHistoryRequestDates()

void ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ValidateTradesHistoryRequestDates ( ref DateTime  from,
DateTime  to,
int  depthLimitMonths 
)
protected

Member Data Documentation

◆ maxAddable

virtual ? decimal ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.maxAddable

Property Documentation

◆ AllowUpdatePositionsPnL

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.AllowUpdatePositionsPnL = true
getset

◆ ConnectionState

ConnectionStates ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ConnectionState
get

Current connection state of the connector.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ ConnectTimeout

TimeSpan ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ConnectTimeout
getset

Maximum time a single connect attempt may take before it is aborted. Guards against a remote that accepts the socket but never completes the login/handshake (a half-open connection): without this the connect Task would hang forever and, because ReconnectionTimer only re-arms on a failed attempt, auto-reconnect would wedge permanently. Set to TimeSpan.Zero to disable (not recommended). Connectors that legitimately need a longer handshake may raise this value.

◆ DataPath

string ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.DataPath = null!
getset

◆ DefaultTimeSyncManager

ITimeSyncManager? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.DefaultTimeSyncManager
getset

Default ITimeSyncManager to get time difference with NTP server.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ DisconnectTimeout

TimeSpan ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.DisconnectTimeout
getset

Maximum time a single disconnect attempt may take before it is forced to completion. The disconnect handshake (e.g. waiting for the peer to acknowledge a logout and close the socket) can hang forever against a silent/half-open peer, wedging the connector in the Disconnecting state. On timeout the disconnect is forced so the connector reaches Disconnected. Set to TimeSpan.Zero to disable (not recommended).

◆ ExchangeInfoProvider

IConnectorExchangeInfoProvider ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ExchangeInfoProvider = null!
getset

Gets or sets the provider used to retrieve exchange information for the securities.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ Factory

IEntityFactory ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Factory
getset

Factory used to create Security, Portfolio, and other entity objects.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ HasPendingActions

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.HasPendingActions
get

◆ HeartbeatTimeout

TimeSpan ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.HeartbeatTimeout
getset

◆ Id

Guid ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Id = Guid.NewGuid()
get

◆ IdGenerator

IIdGenerator ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IdGenerator
getprotected

◆ IsConnected

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsConnected
getprotected set

Returns true when all connections are established.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsFullLicense

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsFullLicense
getset

License type.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedAmericanFutures

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedAmericanFutures
get

Indicates whether the connector supports American futures.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedAmericanStocks

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedAmericanStocks
get

Indicates whether the connector supports American stocks.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedCfd

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedCfd
get

Indicates whether the connector supports CFD instruments.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedCrypto

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedCrypto
get

Indicates whether the connector supports crypto instruments.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedGoFlat

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedGoFlat
get

Indicates whether the connector supports atomic go-flat (cancel all orders and liquidate all positions).

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedMaxOrderCalculation

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedMaxOrderCalculation
get

Does connector support max order calculation for the instrument
This feature enables percentage slider under the volume input box
Affects CalcMaxOrderVolume and CalcOrderCost methods.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedRussianMarket

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedRussianMarket
get

Indicates whether the connector supports Russian market instruments.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedServerOCO

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedServerOCO
get

Indicates whether the connector supports server-side OCO orders.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedServerTime

virtual bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedServerTime
get

Does connector supports getting exchange server time.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedStopOrders

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedStopOrders
get

Indicates whether the connector supports stop orders.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ IsSupportedTradingFunctions

abstract bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.IsSupportedTradingFunctions
get

Indicates whether the connector supports trading functions.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ LatencyManager

IConnectorLatencyManager ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.LatencyManager
get

Latency manager.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ MarketDataDelayPeriod

MarketDataDelayPeriods ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketDataDelayPeriod
getset

Gets or sets delay period for market data.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ MarketDataStreamEnabled

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketDataStreamEnabled
getset

Indicates whether to raise market data through BestBidAskUpdates, MarketDepthsUpdate, and NewTrades events.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ MaxDelistedSecuritiesRatio

double ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MaxDelistedSecuritiesRatio
getset

Upper bound on the share of the known securities a single refresh may delist. A refresh that would drop more than this is treated as an incomplete snapshot (a failed request, one market of several not answered, a response still being processed) and is skipped with a warning instead of removing the securities. The exchanges with a nightly refresh delist a handful of symbols a day out of hundreds, so the default of 5% leaves room for a batch clean-up and still catches a half-registered snapshot. Set to 1 to disable the check.

◆ MessageQueue

IMessageQueue<TMessage> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MessageQueue
getset

◆ MyTrades

IEnumerable<MyTrade> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MyTrades
get

◆ NeedRebatesCheck

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NeedRebatesCheck
getset

Has rebate check feature.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ Orders

IEnumerable<Order> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Orders
get

◆ PendingOrdersCheckPeriod

TimeSpan ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.PendingOrdersCheckPeriod
getsetprotected

Delay after a (re)connect before the orders left pending by a connection loss are checked: the ones the broker has not reported by then are failed.

◆ Portfolios

IEnumerable<Portfolio> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Portfolios
get

◆ PositionManagers

IEnumerable<TSecurityPositionManager> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.PositionManagers
getprotected

◆ Positions

IEnumerable<Position> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Positions
get

◆ ReconnectionTimer

ReconnectionTimer ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ReconnectionTimer
get

◆ ReconnectOnFirstConnect

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ReconnectOnFirstConnect
getset

Reconnect after a failed first connect instead of failing ConnectAsync. Set only by the unattended server hosts (DataSender, DataRepeater), and it means more than the name says: the host has nobody to fix the settings, so a connection refusal (see ConnectionRefusalReason) keeps reconnecting too instead of stopping and reporting to the user as it does on the platform.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ RefreshSecuritiesTime

TimeOnly? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RefreshSecuritiesTime
getset

◆ Securities

IEnumerable<Security> ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Securities
get

◆ ServerMode

bool ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ServerMode
getset

◆ ServerUtcNow

DateTime ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ServerUtcNow
getprotected

The current UTC time on the server's clock: the computer's clock corrected by the time sync manager (zero correction until it has measured). Data the server sends without a time of its own (a REST snapshot) is stamped with it, so it compares with the server's event times - the latency manager subtracts a stamp from this same corrected time, and a stamp of the computer's clock gives a negative or a false delay when the clock is off.

◆ SubscriptionStatistics

SubscriptionStatistics? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SubscriptionStatistics
get

Market data subscription load of the connector: subscribed instruments by security type and the number of subscribe/unsubscribe requests sent to the broker. null for connector wrappers that do not own the subscriptions themselves.

Implements ATAS.DataFeedsCore.IDataFeedConnector.

◆ TimeSyncManager

ITimeSyncManager ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.TimeSyncManager = null!
getprotected

Event Documentation

◆ BestBidAskUpdates

ConnectorEventHandler<MarketDepth>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.BestBidAskUpdates

◆ Connected

ConnectorEventHandler? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Connected

◆ ConnectionStateChanged

ConnectorEventHandler<ConnectionStateEventArgs>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.ConnectionStateChanged

◆ Disconnected

ConnectorEventHandler? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Disconnected

◆ Error

ConnectorEventHandler<Exception>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.Error

◆ MarketByOrderChanged

ConnectorEventHandler<MarketByOrder>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketByOrderChanged

◆ MarketByOrdersReset

ConnectorEventHandler<Security>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketByOrdersReset

◆ MarketDepthsReset

ConnectorEventHandler<Security>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketDepthsReset

◆ MarketDepthsUpdate

ConnectorEventHandler<IEnumerable<MarketDepth> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.MarketDepthsUpdate

◆ NewMboTrade

ConnectorEventHandler<Trade>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewMboTrade

◆ NewMyTrades

ConnectorEventHandler<IEnumerable<MyTrade> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewMyTrades

◆ NewNews

ConnectorEventHandler<News>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewNews

◆ NewOrders

ConnectorEventHandler<IEnumerable<Order> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewOrders

◆ NewPortfolios

ConnectorEventHandler<IEnumerable<Portfolio> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewPortfolios

◆ NewPositions

ConnectorEventHandler<IEnumerable<Position> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewPositions

◆ NewSecurities

ConnectorEventHandler<IEnumerable<Security> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewSecurities

◆ NewTrades

ConnectorEventHandler<IEnumerable<Trade> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.NewTrades

◆ OrderChanged

ConnectorEventHandler<Order>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OrderChanged

◆ OrderModifyFailed

ConnectorEventHandler<Order, Order, string>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OrderModifyFailed

◆ OrdersCancelFailed

ConnectorEventHandler<string, Order>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OrdersCancelFailed

◆ OrdersRegisterFailed

ConnectorEventHandler<string, Order>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.OrdersRegisterFailed

◆ PortfoliosChanged

ConnectorEventHandler<IEnumerable<Portfolio> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.PortfoliosChanged

◆ PositionsChanged

ConnectorEventHandler<IEnumerable<Position> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.PositionsChanged

◆ RebateReceived

ConnectorEventHandler<RebateResult>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RebateReceived

◆ RegisterSecurityResult

ConnectorEventHandler<Security, Exception?>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RegisterSecurityResult

◆ RemoveSecurities

ConnectorEventHandler<IEnumerable<Security> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.RemoveSecurities

◆ SearchSecuritiesResult

ConnectorEventHandler<SecurityFilter, Exception?, IEnumerable<Security> >? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SearchSecuritiesResult

◆ SecurityChanged

ConnectorEventHandler<Security>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SecurityChanged

◆ SecuritySummaryChanged

ConnectorEventHandler<SecuritySummary>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SecuritySummaryChanged

◆ SubscribeMarketDataResult

ConnectorEventHandler<IEnumerable<Security>, Exception?>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.SubscribeMarketDataResult

◆ UnsubscribeMarketDataResult

ConnectorEventHandler<IEnumerable<Security>, Exception?>? ATAS.DataFeedsCore.BaseConnector< TMessage, TPortfolioKey, TSecurityKey, TSecurityPositionManager >.UnsubscribeMarketDataResult

The documentation for this class was generated from the following file: