コード例 #1
0
        private void ProcessHistoricalDataResponse(Bloomberglp.Blpapi.Message argvMessage)
        {
            Bloomberglp.Blpapi.Element tElementMsg = argvMessage.AsElement;
            string[] tTargetAttributes             = mHistoricalDataResponseDefaultAttributes;
            if (mHistoricalDataRequestByCorrelationId.ContainsKey(argvMessage.CorrelationID.Value))
            {
                tTargetAttributes = mHistoricalDataRequestByCorrelationId[argvMessage.CorrelationID.Value].GetFieldList();
            }
            else
            {
                InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error);
                tArgs.mMsg = "Unknown historical data response. Correlation ID: " + argvMessage.CorrelationID.Value + ". Will use default attributes to parse the message.";
                mBbgMsgEvent(this, tArgs);
            }

            string[] tFullAttributes = new string[tTargetAttributes.Length + 2];
            tFullAttributes[0] = "security";
            tFullAttributes[1] = "date";
            Array.Copy(tTargetAttributes, 0, tFullAttributes, 2, tTargetAttributes.Length);

            System.Data.DataTable tExtractedValues = this.ExtractValueByName(tElementMsg, tFullAttributes);
            mOutput.PrintDataTable(tExtractedValues);
            InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.HistoricalDataResponse);

            tEventArgvs.mData = tExtractedValues;
            mBbgMsgEvent(this, tEventArgvs);
        }
コード例 #2
0
        private void ProcessAdminMessage(Bloomberglp.Blpapi.Event argvEvent)
        {
            InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error);

            // Loop over all of the messages in this Event
            foreach (Bloomberglp.Blpapi.Message msg in argvEvent)
            {
                tArgs.mMsg += msg.ToString();
            }
            mBbgMsgEvent(this, tArgs);
        }
コード例 #3
0
        private void ProcessReferenceDataResponse(Bloomberglp.Blpapi.Message argvMessage)
        {
            Bloomberglp.Blpapi.Element tElementMsg  = argvMessage.AsElement;
            string[] tTargetAttributes              = mOtherRequestByCorrelationId[argvMessage.CorrelationID.Value].GetFieldList();
            System.Data.DataTable  tExtractedValues = this.ExtractValueByName(tElementMsg, tTargetAttributes);
            System.Data.DataColumn tNewColumn       = new System.Data.DataColumn("SECURITY");
            tNewColumn.DefaultValue = mOtherRequestByCorrelationId[argvMessage.CorrelationID.Value].mTicker;
            tExtractedValues.Columns.Add(tNewColumn);
            tNewColumn.SetOrdinal(0);
            InterfaceEventArgs tRetData = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.ReferenceDataResponse);

            tRetData.mData = tExtractedValues;
            mBbgMsgEvent(this, tRetData);
        }
コード例 #4
0
        private void ProcessRequestResponse(Bloomberglp.Blpapi.Event argvEvent)
        {
            // Loop over all of the messages in this Event
            foreach (Bloomberglp.Blpapi.Message tMsg in argvEvent)
            {
                Bloomberglp.Blpapi.Element tElementMsg         = tMsg.AsElement;
                System.Data.DataTable      tResponseErrorTable = this.ExtractValueByName(tElementMsg, mRequestResponseErrorAttributes);

                if (tResponseErrorTable.Rows.Count > 0)
                {
                    string tErrorMsg = "Message Type: " + tMsg.MessageType.ToString() + Environment.NewLine;
                    for (int i = 0; i < tResponseErrorTable.Rows.Count; i++)
                    {
                        tErrorMsg += "Error Message: " + tResponseErrorTable.Rows[i]["MESSAGE"] + ", Category: " + tResponseErrorTable.Rows[i]["SUBCATEGORY"] + Environment.NewLine;
                    }
                    InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error, tErrorMsg);
                    mBbgMsgEvent(this, tEventArgvs);
                }

                if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("HistoricalDataResponse")))
                {
                    this.ProcessHistoricalDataResponse(tMsg);
                }
                else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("IntradayTickResponse")))
                {
                    this.ProcessIntradayTickResponse(tMsg);
                }
                else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("IntradayBarResponse")))
                {
                    this.ProcessIntradayBarResponse(tMsg);
                }
                else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("ReferenceDataResponse")))
                {
                    this.ProcessReferenceDataResponse(tMsg);
                }
                else
                {
                    mBbgMsgEvent(this, new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Print, tMsg.ToString()));
                }
            }
        }
コード例 #5
0
        private void ProcessSubscriptionStatus(Bloomberglp.Blpapi.Event argEvent)
        {
            foreach (Bloomberglp.Blpapi.Message tMsg in argEvent)
            {
                foreach (CorrelationID tId in tMsg.CorrelationIDs)
                {
                    if (tMsg.MessageType.ToString() == "SubscriptionFailure")
                    {
                        string tTicker = string.Empty;
                        if (mSubscriptionByCorrelationId.ContainsKey(tId.Value))
                        {
                            tTicker = mSubscriptionByCorrelationId[tId.Value].mTicker;
                        }

                        InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error);
                        tArgs.mMsg = "SubscriptionFailure: Ticker '" + tTicker + "'";
                        mBbgMsgEvent(this, tArgs);
                    }
                }
            }
        }
コード例 #6
0
        private void ProcessSubscriptionData(Bloomberglp.Blpapi.Event argEvent)
        {
            foreach (Bloomberglp.Blpapi.Message tMsg in argEvent)
            {
                Bloomberglp.Blpapi.Element tElementMsg  = tMsg.AsElement;
                string[] tTargetAttributes              = mSubscriptionByCorrelationId[tMsg.CorrelationID.Value].GetFieldList();
                System.Data.DataTable  tExtractedValues = this.ExtractValueByName(tElementMsg, tTargetAttributes);
                System.Data.DataColumn tNewColumn       = new System.Data.DataColumn("SECURITY");
                tNewColumn.DefaultValue = tMsg.TopicName;
                tExtractedValues.Columns.Add(tNewColumn);
                tNewColumn.SetOrdinal(0);
                //mOutput.PrintDataTable(tExtractedValues);

                if (tExtractedValues.Rows.Count == 1)
                {
                    mMarketData[tMsg.CorrelationID.Value].UpdateMarketData(tExtractedValues);
                    InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.SubscriptionResponse);
                    tArgs.mCorrelationId = tMsg.CorrelationID.Value;
                    tArgs.mData          = tExtractedValues;
                    mBbgMsgEvent(this, tArgs);
                }
            }
        }
コード例 #7
0
        private void ProcessIntradayBarResponse(Bloomberglp.Blpapi.Message argvMessage)
        {
            if (mIntradayBarRequestByCorrelationId.ContainsKey(argvMessage.CorrelationID.Value))
            {
                string tTicker = mIntradayBarRequestByCorrelationId[argvMessage.CorrelationID.Value].mTicker;
                Bloomberglp.Blpapi.Element tElementMsg      = argvMessage.AsElement;
                System.Data.DataTable      tExtractedValues = this.ExtractValueByName(tElementMsg, mIntradayBarResponseDefaultAttributes);
                System.Data.DataColumn     tNewColumn       = new System.Data.DataColumn("SECURITY");
                tNewColumn.DefaultValue = tTicker;
                tExtractedValues.Columns.Add(tNewColumn);
                tNewColumn.SetOrdinal(0);
                mOutput.PrintDataTable(tExtractedValues);

                InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.IntradayBarResponse);
                tEventArgvs.mData = tExtractedValues;
                mBbgMsgEvent(this, tEventArgvs);
            }
            else
            {
                InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error);
                tArgs.mMsg = "Unknown intraday bar response. Correlation ID: " + argvMessage.CorrelationID.Value + ". Won't parse the message.";
                mBbgMsgEvent(this, tArgs);
            }
        }