Ejemplo n.º 1
0
 internal void TraderStatusHandle(TraderStatusData data)
 {
     _ordersLock.EnterUpgradeableReadLock();
     try
     {
         foreach (OrderBase order in data.Orders)
         {
             if (!_orders.ContainsKey(order.OrigClientId))
             {
                 _ordersLock.EnterWriteLock();
                 try
                 { _orders.Add(order.OrigClientId, order); }
                 finally
                 { _ordersLock.ExitWriteLock(); }
             }
         }
         foreach (Guid guid in _orders.Keys)
         {
             if (_orders[guid].TargetSymbol.MarketId != data.MarketId)
             {
                 continue;
             }
             if (data.Orders.FirstOrDefault(x => x.OrigClientId == guid) is null)
             {
                 _orders[guid].Status = OrderStatus.StatusUndefined;
                 _orders[guid].OrderChanged();
                 _orders.Remove(guid);
             }
         }
     }
     finally
     { _ordersLock.ExitUpgradeableReadLock(); }
 }
Ejemplo n.º 2
0
 internal void Update(TraderStatusData data)
 {
     Update(data as CommonFields);
     LastTradePrice            = data.LastTradePrice;
     LastTradeQuantity         = data.LastTradeQuantity;
     Leverage                  = data.Leverage;
     PositionContracts         = data.PositionContracts;
     PositionLiquidationVolume = data.PositionLiquidationVolume;
     PositionType              = data.PositionType;
     PositionVolume            = data.PositionVolume;
     TraderBalance2            = data.TraderBalance2;
 }
Ejemplo n.º 3
0
        private void TraderStatusHandler(TraderStatusData data)
        {
            TraderInfo traderInfo = TraderStatistic.Find(x => x.Symbol.Equals(data.Symbol));

            if (traderInfo != null)
            {
                traderInfo.Update(data);
                TraderInfoChanged?.Invoke(traderInfo);
            }
            _receiver.TraderStatusHandle(data);

            // Code below is usefull?
            List <Trade> allTrades = new List <Trade>();

            foreach (Trade trade in data.Trades)
            {
                trade.Symbol = data.Symbol; allTrades.Add(trade);
            }
            NewTrades?.Invoke(new List <Trade>(), allTrades);
        }