public void DBGUpdUSerPosMon(int traderId, CUserPosMonitorUpdate userPosUpd)
        {
            string msg = String.Format("[UsePosMon_Update] => botId={0}", traderId);

            lock (userPosUpd.MonitorUserPos)
            {
                foreach (var kvp in userPosUpd.MonitorUserPos)
                {
                    msg += String.Format("[Instrument={0} Amount={1}  AvPos={2}]",
                                         kvp.Key,          //0
                                         kvp.Value.Amount, //1
                                         kvp.Value.AvPos   //2
                                         );
                }
            }

            Log(msg);
        }
예제 #2
0
        private void ProcessUserUpdatePositionMonitor(byte[] arrMsgBody)
        {
            CUserPosMonitorUpdate userPosUpdate = CUtilProto.DeserializeProto <CUserPosMonitorUpdate>(arrMsgBody);
            //changed 2018-05-27
            string msg = "[UserUpdatePositionMonitor]";

            if (userPosUpdate.MonitorUserPos == null)
            {
                msg += " MonitorUserPos==null";
            }
            else
            {
                foreach (var poses in userPosUpdate.MonitorUserPos)
                {
                    msg += String.Format("instr={0} amount={1} avPos={2}",
                                         poses.Key, poses.Value.Amount, poses.Value.AvPos);
                }
            }
            Log(msg);
            _kernelTerminal.UpdateUserMonitorPos(userPosUpdate);
        }
        public void EnqueueUpdatUserPositionsMonitor(CBotBase bb, int traderId)
        {
            int connId = -1;

            lock (_dictBotIdConnId)
            {
                if (!_dictBotIdConnId.ContainsKey(traderId))
                {
                    return;
                }

                connId = _dictBotIdConnId[traderId];
            }
            if (connId != -1)
            {
                CUserPosMonitorUpdate userPosUpdate = new CUserPosMonitorUpdate();
                userPosUpdate.MonitorUserPos = new Dictionary <string, CUserPos>();
                lock (bb.MonitorPositionsAll)
                {
                    foreach (var v in bb.MonitorPositionsAll)
                    {
                        string isin = v.Key;
                        userPosUpdate.MonitorUserPos[isin] = new CUserPos
                        {
                            Amount = v.Value.Amount,
                            AvPos  = v.Value.AvPos
                        };
                    }
                }

                _bqTraderData.Add(new CTradingData
                {
                    Data   = (object)userPosUpdate,
                    Event  = enmTradingEvent.UserUpdatePositionMonitor,
                    ConnId = connId
                }
                                  );
                _dbg.DBGUpdUSerPosMon(traderId, userPosUpdate);
            }
        }
 private void SendUpdateUserPosMonitor(int connId, CUserPosMonitorUpdate userPosUpdate)
 {
     SendDataToClients(userPosUpdate, enmTradingEvent.UserUpdatePositionMonitor, "", connId);
 }