コード例 #1
0
        internal void OrderStatusHandle(OrderStatusData data)
        {
            Guid guid = data.OrigClientId;

            _ordersLock.EnterUpgradeableReadLock();
            try
            {
                if (!_orders.ContainsKey(guid))
                {
                    if (data.Status != OrderStatus.Rejected && data.Status != OrderStatus.Canceled)
                    {
                        _ordersLock.EnterWriteLock();
                        try
                        {
                            _orders.Add(guid, data.OrderType == OrderType.Limit ?
                                        (OrderBase) new OrderLimit(data, data.Symbol) :
                                        new OrderMarket(data, data.Symbol));
                            _orders[guid].TimeStamp = data.OrderTimestamp;
                        }
                        finally
                        { _ordersLock.ExitWriteLock(); }
                    }
                }
                else
                {
                    if (data.Status == OrderStatus.Rejected || data.Status == OrderStatus.Canceled)
                    {
                        _orders[guid].TimeStamp = data.OrderTimestamp;
                        _orders[guid].Status    = data.Status;
                        _orders[guid].OrderChanged();

                        _ordersLock.EnterWriteLock();
                        try
                        {
                            _orders[guid].Dispose();
                            _orders.Remove(guid);
                        }
                        finally
                        { _ordersLock.ExitWriteLock(); }
                    }
                    else
                    {
                        _orders[guid].TimeStamp    = data.OrderTimestamp;
                        _orders[guid].OpenTime     = data.OpenTime;
                        _orders[guid].OrigClientId = data.OrigClientId;
                        _orders[guid].OrigQuantity = data.OrigQuantity;
                        _orders[guid].Status       = data.Status;

                        _orders[guid].OrderChanged();
                    }
                }
            }
            finally
            { _ordersLock.ExitUpgradeableReadLock(); }
        }
コード例 #2
0
        private void OrderStatusHandler(OrderStatusData data)
        {
            TraderInfo traderInfo = TraderStatistic.Find(x => x.Symbol.Equals(data.Symbol));

            if (traderInfo != null)
            {
                traderInfo.Update(data);
                TraderInfoChanged?.Invoke(traderInfo);
            }
            _receiver.OrderStatusHandle(data);
        }
コード例 #3
0
 public OrderStatus(OrderStatusData orderStatusData)
 {
     OrderStatusKey  = orderStatusData.OrderStatusKey;
     OrderStatusType = orderStatusData.OrderStatusType;
     OrderStatusCode = orderStatusData.OrderStatusCode;
     OrderStatusName = orderStatusData.OrderStatusName;
     OrderStatusDesc = orderStatusData.OrderStatusDesc;
     AddedUserID     = orderStatusData.AuditAddUserId;
     AddedDateTime   = orderStatusData.AuditAddDatetime;
     UpdateUserID    = orderStatusData.AuditUpdateUserId;
     UpdateDateTime  = orderStatusData.AuditUpdateDatetime;
 }
コード例 #4
0
        } // Map function closer

        public List <SqlParameter> MapParamsForUpsert(OrderStatusData entity)
        {
            var sql_params = new List <SqlParameter>();

            sql_params.Add(new SqlParameter("@order_status_key", entity.OrderStatusKey));
            sql_params.Add(new SqlParameter("@order_status_code", entity.OrderStatusCode));
            sql_params.Add(new SqlParameter("@order_status_name", entity.OrderStatusName));
            sql_params.Add(new SqlParameter("@order_status_type", entity.OrderStatusType));
            sql_params.Add(new SqlParameter("@order_status_desc", entity.OrderStatusDesc));
            sql_params.Add(GetOutParam());
            return(sql_params);
        }
コード例 #5
0
ファイル: DataCore.cs プロジェクト: jjg0519/OA
        public static IList <OrderStatusData> GetOrderStatus()
        {
            List <T_SYS_DICTIONARY> listDict = GetDictionary("CHECKSTATE");

            var result = listDict.CreateList(item =>
            {
                OrderStatusData cbbD = new OrderStatusData();
                cbbD.Value           = item.DICTIONARYVALUE;
                cbbD.Text            = item.DICTIONARYNAME;
                return(cbbD);
            });

            return(result);
        }
 public OrderStatus Map(OrderStatusData order_status_data)
 {
     return(new OrderStatus()
     {
         OrderStatusKey = order_status_data.OrderStatusKey,
         OrderStatusType = order_status_data.OrderStatusType,
         OrderStatusCode = order_status_data.OrderStatusCode,
         OrderStatusName = order_status_data.OrderStatusName,
         OrderStatusDesc = order_status_data.OrderStatusDesc,
         AddedUserID = order_status_data.AuditAddUserId,
         AddedDateTime = order_status_data.AuditAddDatetime,
         UpdateUserID = order_status_data.AuditUpdateUserId,
         UpdateDateTime = order_status_data.AuditUpdateDatetime
     });
 }
コード例 #7
0
 public void orderStatus(int orderId, string status, int filled,
                         int remaining, double avgFillPrice, int permId, int parentId,
                         double lastFillPrice, int clientId, string whyHeld)
 {
     if (OrderStatusDic.ContainsKey(orderId))
     {
         OrderStatusData orderStatus = OrderStatusDic[orderId].Data;
         orderStatus.OrderStatus    = (OrderStatus)Enum.Parse(typeof(OrderStatus), status);
         orderStatus.LastUpdateTime = DateTime.Now;
         orderStatus.LastFillPrice  = lastFillPrice;
         Consumer.Enqueue(orderStatus);
     }
     else
     {
         Logger.Error($"Received order status on request not in OrderStatusDic, orderId is {orderId}");
     }
 }
コード例 #8
0
ファイル: DBWriter.cs プロジェクト: avneraz/IBRTrader
        protected void HandleOrderStatusData(OrderStatusData data)
        {
            SaveContractDetailsIfNeeded <OptionContract>(data.GetContract());

            using (ITransaction transaction = _session.BeginTransaction())
            {
                _session.Evict(data);
                _session.SaveOrMerge(data, data.Id);
                try
                {
                    transaction.Commit();
                }
                catch (Exception exception)
                {
                    Logger.Error("Could not write to DB", exception);
                }
            }
        }
コード例 #9
0
 protected OrderBase(OrderType type, OrderStatusData data, Symbol symbol)
 {
     Type     = data.OrderType;
     ClientId = data.ClientId;
     Quantity = data.Quantity;
     if (Quantity < 0)
     {
         return;
     }
     Side          = data.Side;
     Duration      = data.Duration;
     Leverage      = data.Leverage;
     Price         = data.Price;
     TargetSymbol  = symbol;
     PaidPrice     = data.PaidPrice;
     AccumQuantity = data.AccumQuantity;
     OldContractId = data.OldContractId;
     OpenTime      = data.OpenTime;
     OrderClientId = data.OrderClientId;
     TimeStamp     = data.OrderTimestamp;
     OrigClientId  = data.OrigClientId;
     OrigQuantity  = data.OrigQuantity;
     Status        = data.Status;
 }
コード例 #10
0
 // aktualizacja danych z sieci - nowy status zlecenia
 private void Update(OrderStatusData data)
 {
     StatusReport = new BosOrderStatusReport(data);
 }
コード例 #11
0
 public OrderLimit(OrderStatusData data, Symbol symbol)
     : base(OrderType.Limit, data, symbol)
 {
 }
コード例 #12
0
 public List <SqlParameter> MapParamsForDelete(OrderStatusData entity)
 {
     return(MapParamsForDelete(entity.OrderStatusKey));
 }
コード例 #13
0
ファイル: UIDataManager.cs プロジェクト: avneraz/IBRTrader
 private void OrderManagerOnOrderStatusDataUpdated(OrderStatusData orderStatusData)
 {
     OrderStatusDataUpdated?.Invoke(orderStatusData);
 }
コード例 #14
0
 public OrderMarket(OrderStatusData data, Symbol symbol)
     : base(OrderType.Market, data, symbol)
 {
 }
コード例 #15
0
 public IBOrderStatusWrapper(OrderStatusData data)
 {
     Data = data;
 }
コード例 #16
0
 public void SetOrderStatusData(OrderStatusData orderStatusData)
 {
     OrderStatusData = orderStatusData;
 }
コード例 #17
0
 internal void Update(OrderStatusData data)
 {
     Update(data as CommonFields);
     TraderBalance2 = data.TraderBalance2;
 }