|
AsyncAwaiterFacade | SwitchToConnectorThreadAsync () |
| Await it to switch to the connector queue thread, does nothing if we on the connector thread already.
|
|
AsyncAwaiterQueueFacade | WaitConnectorQueueAsync () |
| Schedules continuation when all other tasks are done on connector's queue (adds a task itself to the end of the queue)
|
|
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) |
| Найти инструменты по заданному фильтру.
|
|
Task< IEnumerable< Security > > | SearchSecuritiesAsync (SecurityFilter filter) |
|
void | SubscribeToMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes) |
|
void | SubscribeToMarketData (Security security, SubscriptionType subscriptionTypes) |
| Подписка на маркет дату
|
|
void | UnsubscribeFromMarketData (IEnumerable< Security > securities, SubscriptionType subscriptionTypes) |
|
void | UnsubscribeFromMarketData (Security security, SubscriptionType subscriptionTypes) |
| Отписка от маркет даты
|
|
IEnumerable< string > | GetRoutes (Security security) |
|
IEnumerable< Portfolio > | GetPortfolios (Security security) |
|
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) |
| Модификация цены ордера.
|
|
void | CancelOrder (Order order) |
|
Position | GetPosition (Portfolio portfolio, Security security, TPlusLimits? tPlusLimit) |
|
async Task | ClosePositionAsync (Position position) |
|
async Task | ClosePositionsAsync (Portfolio portfolio) |
|
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) |
| 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) |
|
|
| AsyncConnector () |
|
override Task | OnConnectAsync () |
|
sealed override void | OnProcess (AsyncConnectorMessage? message) |
|
void | ProcessPosition (TPortfolioKey portfolioKey, TSecurityKey securityId, Func< bool, ISecurityPositionManager, bool > update) |
|
void | ProcessPortfolio (TPortfolioKey portfolioKey, string accountId, Action< Portfolio > update) |
|
void | ProcessMyTrade (long extId, string tradeId, Action< MyTrade > update) |
|
void | ProcessMyTrade (string orderId, string tradeId, Action< MyTrade > update) |
|
void | ProcessOrder (TPortfolioKey accountId, TSecurityKey securityId, long extId, Action< bool, Order > update) |
|
abstract Task | OnSubscribeMarketDataAsync (Security security, SubscriptionType subscriptionTypes) |
|
sealed override async void | OnSubscribeMarketData (Security security, SubscriptionType subscriptionTypes) |
|
abstract Task | OnUnsubscribeMarketDataAsync (Security security, SubscriptionType subscriptionTypes) |
|
sealed override async void | OnUnsubscribeMarketData (Security security, SubscriptionType subscriptionTypes) |
|
abstract Task | OnSearchSecuritiesAsync (SecurityFilter filter) |
|
sealed override async void | OnSearchSecurities (SecurityFilter filter) |
|
abstract Task | OnRegisterOrderAsync (Order filter) |
|
sealed override async void | OnRegisterOrder (Order order) |
|
abstract Task | OnCancelOrderAsync (Order order, long extId) |
|
sealed override async void | OnCancelOrder (Order order, long extId) |
|
virtual Task | OnModifyOrderAsync (Order order, Order newOrder) |
|
sealed override async void | OnModifyOrder (Order order, Order newOrder) |
|
| BaseConnector () |
|
| BaseConnector (long initialId) |
|
| BaseConnector () |
|
| BaseConnector (long initialId) |
|
virtual Task | OnConnectAsync () |
|
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 | 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 is called.
|
|
void | Enqueue (TMessage message) |
|
void | Enqueue (Action action) |
|
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 | ProcessMarketByOrder (MarketByOrder mbo) |
|
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 | RaiseRegisterSecurityResult (Security security, SubscriptionType subscriptionType, Exception error) |
|
void | RaiseSubscribeMarketDataResult (IEnumerable< Security > securities, Exception error) |
|
void | RaiseUnsubscribeMarketDataResult (IEnumerable< Security > securities, Exception error) |
|
void | RaiseNews (News news) |
|
void | RaiseSecurityChanged (Security security) |
|
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) |
|
abstract void | OnRegisterOrder (Order order) |
|
virtual void | OnModifyOrder (Order order, Order newOrder) |
|
abstract void | OnCancelOrder (Order order, long extId) |
|
void | RememberPendingOrders () |
|
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) |
| 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 () |
|
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) |
|
Connector base that allows to use await
to switch to the connector queue thread.
This connector implements its own SynchronizationContext that allows to call await that will return to the connector thread. This works only if call is made from the connector queue thread
To move to the connector thread in the first place just call:
await SwitchToConnectorThreadAsync();
This class seals the OnProcess method.