示例#1
0
        private void InitializeRequest()
        {
            this.appendTickers();
            this.appendFields();
            this.SetRequestDates();
            this.InitializeRequestOptions();

            // conditionally, append overrides into request object
            if (overrideFields.Count > 0)
            {
                BbergAPI.Element requestOverrides = request.GetElement(OVERRIDES);
                for (int i = 0; i < overrideFields.Count; i++)
                {
                    BbergAPI.Element requestOverride = requestOverrides.AppendElement();
                    requestOverride.SetElement(FIELD_ID, overrideFields[i]);
                    requestOverride.SetElement(VALUE, overrideValues[i]);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Gets the Bloomberg data via the specified request type
        /// </summary>
        /// <param name="instruments">The list of instruments to retrieve data for</param>
        /// <param name="dataFromDate">The start date of the data being requested</param>
        /// <param name="dataToDate">The end date of the data being requested</param>
        /// <param name="requestType">The type of request i.e. Reference/Historical</param>
        private void GetBloombergData(List <BloombergDataInstrument> instruments, DateTime dataFromDate, DateTime dataToDate, string requestType)
        {
            try {
                sentLimitEmail = false;
                Initialise(BLP_REF, instruments.Count);
                BB.Service service = session.GetService(BLP_REF);

                guids    = new List <Guid>();
                sentToBB = instruments;                 // new List<BloombergDataInstrument>();
                ShowCompletionPercentage(0, instruments.Count);

                foreach (BloombergDataInstrument bbdi in instruments)
                {
                    BB.Request request = service.CreateRequest(requestType);

                    if (requestType == BLP_HISTORICAL_REQUEST)
                    {
                        request.Set("startDate", dataFromDate.ToString("yyyyMMdd"));
                        request.Set("endDate", dataToDate.ToString("yyyyMMdd"));
                    }
                    BB.Element securities = request.GetElement(BLP_SECURITIES);

                    // check for sedol ticker which must be in the correct format
                    string ticker = bbdi.Ticker;
                    if (ticker.EndsWith("SEDOL1"))
                    {
                        ticker = @"/SEDOL1/" + ticker.Replace(" SEDOL1", string.Empty);
                    }

                    // set all the securities to fetch
                    securities.AppendValue(ticker);

                    // set all the fields
                    BB.Element fields = request.GetElement(BLP_FIELDS);
                    foreach (string field in bbdi.BBFields.Keys)
                    {
                        fields.AppendValue(field);

                        // now do the overrides - if they exist
                        if (bbdi.BBFields[field].FieldOverrides != null)
                        {
                            BB.Element requestOverrides = request.GetElement(BLP_OVERRIDES);
                            foreach (string oField in bbdi.BBFields[field].FieldOverrides.Keys)
                            {
                                object oValue = bbdi.BBFields[field].FieldOverrides[oField];
                                // now add in the override oField and oValue
                                BB.Element ovr = requestOverrides.AppendElement();
                                ovr.SetElement(FIELD_ID, oField);
                                ovr.SetElement(VALUE, oValue.ToString());
                            }
                        }
                    }
                    session.SendRequest(request, new BB.CorrelationID(bbdi.GUID));
                }

                UpdateStatus(string.Format("Sent {0} instruments\\requests to Bloomberg", sentToBB.Count));
            } catch (Exception ex) {
                UpdateStatus(ex.Message);
                throw new Exception("An error occurred whilst sending requests to Bloomberg - " + ex.Message, ex);
            }
        }