public void  DBGUserordersUpdate(int traderId, CUserOrdersUpdate ordUpdate)
        {
            string msg = String.Format("[User_Ord_Update] => botId={0}", traderId);

            lock (ordUpdate.MonitorOrders)
            {
                foreach (var kvp in ordUpdate.MonitorOrders)
                {
                    foreach (var kvp2 in kvp.Value)
                    {
                        msg += String.Format("[Instrument={0} Id={1} Price={2} Amount={3} Dir={4} ]",
                                             kvp.Key,           //0
                                             kvp2.Key,          //1
                                             kvp2.Value.Price,  //2
                                             kvp2.Value.Amount, //3
                                             kvp2.Value.Dir


                                             );
                    }
                }
            }

            Log(msg);
        }
Example #2
0
        private void ProcessUserOrdersUpdate(byte[] arrMsgBody)
        {
            CUserOrdersUpdate userOrdersUpdate = CUtilProto.DeserializeProto <CUserOrdersUpdate>(arrMsgBody);

            Log("[UserOrdersUpdate]");
            _kernelTerminal.UpdateUserOrders(userOrdersUpdate);
        }
        /// <summary>
        /// Generates user orders for traders
        ///
        /// Call from processRawOrdLogStruct
        /// </summary>
        public void EnqueueUserOrdersUpdate(int traderId, CBotBase bb)
        {
            int connId = -1;

            lock (_dictBotIdConnId)
            {
                //update 2017-02-07
                if (!_dictBotIdConnId.ContainsKey(traderId))
                {
                    return;
                }

                connId = _dictBotIdConnId[traderId];
            }
            if (connId != -1)
            {
                CUserOrdersUpdate ob = new CUserOrdersUpdate();
                ob.MonitorOrders = new Dictionary <string, Dictionary <long, COrder> >();

                lock (bb.MonitorOrdersAll)
                {
                    foreach (var v in bb.MonitorOrdersAll)
                    {
                        string isin = v.Key;
                        ob.MonitorOrders[isin] = new Dictionary <long, COrder>();
                        foreach (var t in v.Value)
                        {
                            long   orderId = t.Key;
                            COrder ord     = t.Value;
                            ob.MonitorOrders[isin][orderId] = (COrder)ord.Copy();
                        }
                    }
                }

                _bqTraderData.Add(new CTradingData
                {
                    ConnId = connId,
                    Data   = (object)ob,
                    Event  = enmTradingEvent.UserOrdersUpdate
                }
                                  );
                //SendDataToClients(ob, enmTradingEvent.UserOrdersUpdate, "", connId);
                _dbg.DBGUserordersUpdate(traderId, ob);
            }
        }
 private void SendUpdateUserOrders(int connId, CUserOrdersUpdate userOrdersUpdate)
 {
     SendDataToClients(userOrdersUpdate, enmTradingEvent.UserOrdersUpdate, "", connId);
 }