示例#1
0
            public void run(PerSecurityWSDL.PerSecurityWS ps)
            {

            try{
                String responseId = "dummy-response-id";
	        GetPortfolioValidationRequest req = new GetPortfolioValidationRequest();
	        req.responseId = responseId;
			Console.WriteLine("Sending submit portfolio validation request");
	        GetPortfolioValidationResponse resp = ps.getPortfolioValidation(req);

            int count = 0;
			// Keep polling for response till the data is available
			do
			{
				Console.WriteLine("This is a dummy response id. The data is not available");
                System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
				resp = ps.getPortfolioValidation(req);
				count++;
			} while (resp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE && count < 5);
                	// Display data
			if (resp.statusCode.code == PerSecurity.SUCCESS)
			{
				Console.WriteLine("Retrieve get quotes request successful.  Response ID:" + resp.responseId);
				for (int i = 0; i < resp.instrumentDatas.Length; i++)
				{
					Console.WriteLine("Data for :"
                            + resp.instrumentDatas[i].instrument.id + " "
                            + resp.instrumentDatas[i].instrument.yellowkey);

					Console.WriteLine("validation code =  "
                            + resp.instrumentDatas[i].code.ToString()
							+ ", bb unique =  "
							+ resp.instrumentDatas[i].bbUnique);
				}
			}
			else if (resp.statusCode.code == PerSecurity.REQUEST_ERROR)
                Console.WriteLine("Error in submitted request");

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
示例#2
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {

            //Setting request header information
            GetCompanyHeaders gtCompHdrs = new GetCompanyHeaders();
            gtCompHdrs.creditrisk = true;


            //Setting instruments
            Instrument ticker = new Instrument();
            ticker.id = "AAPL US";
            ticker.yellowkey = MarketSector.Equity;
            ticker.yellowkeySpecified = true;


            //Setting the get Company request parameter
            SubmitGetCompanyRequest sbmtGtCompReq = new SubmitGetCompanyRequest();
            sbmtGtCompReq.headers = gtCompHdrs;
            Instruments instrs = new Instruments();
            instrs.instrument = new Instrument[] { ticker };
            sbmtGtCompReq.instruments = instrs;

            //Setting fields for the request
            sbmtGtCompReq.fields = new string[] { "ID_BB_COMPANY", "ID_BB_ULTIMATE_PARENT_CO_NAME" };

            try
            {
                Console.WriteLine("Submit Get Company Request");

                SubmitGetCompanyResponse sbmtGtCompResp = ps.submitGetCompanyRequest(sbmtGtCompReq);

                System.Console.WriteLine("status " + sbmtGtCompResp.statusCode.description);
                System.Console.WriteLine("Submit Get Company request -  response ID = " + sbmtGtCompResp.responseId);

                //retrieve get company request. The response ID sent for the request is the response ID
                //received from SubmitGetCompanyRequest()
                Console.WriteLine("Retrieve Company request");

                RetrieveGetCompanyRequest rtvGrCompReq = new RetrieveGetCompanyRequest();
                rtvGrCompReq.responseId = sbmtGtCompResp.responseId;
                RetrieveGetCompanyResponse rtrvGtCompResp = new RetrieveGetCompanyResponse();

                //Keep sending the request if status is 100
                do
                {
                    System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
                    rtrvGtCompResp = ps.retrieveGetCompanyResponse(rtvGrCompReq);
                }
                while (rtrvGtCompResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);

                if (rtrvGtCompResp.statusCode.code == PerSecurity.SUCCESS)
                {
                    //Displaying the rtrvGtCompResp
                    for (int i = 0; i < rtrvGtCompResp.instrumentDatas.Length; i++)
                    {
                        Console.WriteLine("Data for :" + rtrvGtCompResp.instrumentDatas[i].instrument.id +
                            "  " + rtrvGtCompResp.instrumentDatas[i].instrument.yellowkey);
                        for (int j = 0; j < rtrvGtCompResp.instrumentDatas[i].data.Length; j++)
                        {
                            if (rtrvGtCompResp.instrumentDatas[i].data[j].isArray == true)
                            {
                                //In case this is a bulk field request
                                for (int k = 0; k < rtrvGtCompResp.instrumentDatas[i].data[j].bulkarray.Length; k++)
                                {
                                    Console.WriteLine("-------------------------_");
                                    for (int l = 0; l < rtrvGtCompResp.instrumentDatas[i].data[j].
                                        bulkarray[k].data.Length; l++)
                                        Console.WriteLine(rtrvGtCompResp.instrumentDatas[i].data[j].bulkarray[k].data[l].value);
                                }
                            }
                            else
                                Console.WriteLine("	" + rtrvGtCompResp.fields[j] + " : " + rtrvGtCompResp.instrumentDatas[i].data[j].value);
                        }
                    }
                }
                else if (rtrvGtCompResp.statusCode.code == PerSecurity.REQUEST_ERROR)
                    Console.WriteLine("Error in the submitted request");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
示例#3
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {
            try
            {
                // Setting header for the request
                GetFundamentalsHeaders getFundHeaders = new GetFundamentalsHeaders();
                GetDataHeaders getDataHeaders = new GetDataHeaders();
                getDataHeaders.closingvaluesSpecified = true;
                getDataHeaders.closingvalues = true;
                getDataHeaders.secmasterSpecified = true;
                getDataHeaders.secmaster = true;
                getDataHeaders.derivedSpecified = true;
                getDataHeaders.derived = true;

                // Setting instruments for the request
			Instrument ticker = new Instrument();
			ticker.id = "IBM US";
			ticker.type = InstrumentType.TICKER;
			ticker.yellowkey = MarketSector.Equity;

			Instrument bbUniqueId = new Instrument();
			bbUniqueId.id = "EQ0086119600001000";
			bbUniqueId.type = InstrumentType.BB_UNIQUE;
			Instrument[] instr = new Instrument[] { ticker, bbUniqueId };
			
			String[] field = new String[] { "TOP_ANALYST_PERFORM_RANK_TRR" };


                // Sending submit get data request
			SubmitGetDataRequest sbmtGetDtReq = new SubmitGetDataRequest();
			sbmtGetDtReq.headers = getDataHeaders;
			sbmtGetDtReq.fields = field;
			Instruments instrmnts = new Instruments();
			instrmnts.instrument = instr;
			sbmtGetDtReq.instruments = instrmnts;
			Console.WriteLine("Sending submit get bulk data request");
			SubmitGetDataResponse sbmtGetDtResp = ps
					.submitGetDataRequest(sbmtGetDtReq);
			Console.WriteLine("Submit get data request status: "
					+ sbmtGetDtResp.statusCode.description
					+ "  response ID: " + sbmtGetDtResp.responseId);


                // Sending retrieve get data request
			RetrieveGetDataRequest rtvGetDtReq = new RetrieveGetDataRequest();
			rtvGetDtReq.responseId = sbmtGetDtResp.responseId;
			RetrieveGetDataResponse rtvGetDtResp = new RetrieveGetDataResponse();
            Console.WriteLine("Sending retrieve get data request");
			
			// Keep polling for response till the data is available
			do {
                System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
				rtvGetDtResp = ps.retrieveGetDataResponse(rtvGetDtReq);

			} while (rtvGetDtResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);
			

                // Display data
			if (rtvGetDtResp.statusCode.code == PerSecurity.SUCCESS) {
				Console.WriteLine("Retrieve get data request successful. Response ID: "
						+ rtvGetDtResp.responseId);
				for (int i = 0; i < rtvGetDtResp.instrumentDatas.Length; i++) {
                    InstrumentData data = rtvGetDtResp.instrumentDatas[i];
					Console.WriteLine(data.instrument.id);
					Data[] datas = data.data;
					for (int j = 0; j < datas.Length; j++) {
						//Displaying bulk data
						if (datas[j].isArray) {

							for (int k = 0; k < datas[j].bulkarray.Length; k++)
                                for (int l = 0; l < datas[j].bulkarray[k].data.Length; l++) {
                                    Console.WriteLine(datas[j].bulkarray[k].data[l].type
													+ ": "
                                                    + datas[j].bulkarray[k].data[l].value);
								}
						} 
						//Displaying non-bulk data
						else
							Console.WriteLine(datas[j].value);
                        	}
				}
			} else if (rtvGetDtResp.statusCode.code == PerSecurity.REQUEST_ERROR)
                Console.WriteLine("Error in submitted request");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
示例#4
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {
            try
            {
                //Setting headers
                GetActionsHeaders getActionHeaders = new GetActionsHeaders();
                getActionHeaders.actions_date = ActionsDate.entry;
                String[] actions = new String[] { "DVD_CASH", "DISTRIBUTIONS" };
                getActionHeaders.actions = actions;

                //Setting Instruments 
                Instruments instruments = new Instruments();
                Instrument instr = new Instrument();
                instr.id = "COP US";
                instr.yellowkeySpecified = true;
                instr.typeSpecified = true;
                instr.yellowkey = MarketSector.Equity;
                instr.type = InstrumentType.TICKER;
                instruments.instrument = new Instrument[] { instr };

                //Submitting request
                SubmitGetActionsRequest req = new SubmitGetActionsRequest();
                req.headers = getActionHeaders;
                req.instruments = instruments;
                SubmitGetActionsResponse resp = null;
                resp = ps.submitGetActionsRequest(req);
                String responseId = resp.responseId;
                Console.WriteLine("Submit get actions request status: " + resp.statusCode.description +
                         " responseId: " + responseId);

                //Submit retrieve request
                RetrieveGetActionsRequest rtrvReq = new RetrieveGetActionsRequest();
                rtrvReq.responseId = responseId;
                Console.WriteLine("Sending retrieve get actions request");
                RetrieveGetActionsResponse rtrvResp = new RetrieveGetActionsResponse();

                // Keep polling for response till the data is available
                do
                {
                    System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
                    rtrvResp = ps.retrieveGetActionsResponse(rtrvReq);
                } while (rtrvResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);

                //Display data
                if (rtrvResp.statusCode.code == PerSecurity.SUCCESS)
                {
                    Console.WriteLine("Retrieve get quotes request successful.  Response ID:" + rtrvResp.responseId);
                    for (int i = 0; i < rtrvResp.instrumentDatas.Length; i++)
                    {
                        Console.WriteLine("Data for :"
                                + rtrvResp.instrumentDatas[i].instrument.id + " "
                                + rtrvResp.instrumentDatas[i].instrument.yellowkey
                                );
                        Console.WriteLine(", Company id = " + rtrvResp.instrumentDatas[i].standardFields.companyId.ToString());
                        Console.WriteLine(", Security id = " + rtrvResp.instrumentDatas[i].standardFields.securityId.ToString());
                        if (rtrvResp.instrumentDatas[i].data != null)
                        {
                            for (int j = 0; j < rtrvResp.instrumentDatas[i].data.Length; j++)
                            {
                                Console.WriteLine(": field =  "
                                        + rtrvResp.instrumentDatas[i].data[j].field
                                        + ", value =  "
                                        + rtrvResp.instrumentDatas[i].data[j].value);
                            }
                        }

                    }
                }
                else if (rtrvResp.statusCode.code == PerSecurity.REQUEST_ERROR)
                    Console.WriteLine("Error in submitted request");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
         public void run(PerSecurityWSDL.PerSecurityWS ps)
        {
            try{
                //Setting headers
                GetHistoryHeaders getHistHeaders = new GetHistoryHeaders();
                getHistHeaders.display_pricing_srcSpecified = true;
                getHistHeaders.display_pricing_src = true;

                Instrument ticker = new Instrument();
                ticker.id = "IBM US";
                ticker.typeSpecified = true;
                ticker.yellowkeySpecified = true;
                ticker.type = InstrumentType.TICKER;
                ticker.yellowkey = MarketSector.Equity;
                Instrument[] instr = new Instrument[] { ticker };
                Instruments instrs = new Instruments();
                instrs.instrument = instr;

                String[] fields = new String[] { "PX_LAST" };

                //Sending Request
            SubmitGetHistoryRequest sbmtGtHistReq = new SubmitGetHistoryRequest();
			sbmtGtHistReq.headers = getHistHeaders;
            sbmtGtHistReq.instruments = instrs;
			sbmtGtHistReq.fields = fields;
			Console.WriteLine("Submit Get History request");
			SubmitGetHistoryResponse sbmtGtHistResp = ps
					.submitGetHistoryRequest(sbmtGtHistReq);
            Console.WriteLine("Submit Get Data request - Status: "
					+ sbmtGtHistResp.statusCode.description + " response ID = "
					+ sbmtGtHistResp.responseId);
            Console.WriteLine("Sending retrieve data request");
			RetrieveGetHistoryRequest rtrvGtHistReq = new RetrieveGetHistoryRequest();
			rtrvGtHistReq.responseId=sbmtGtHistResp.responseId;
			RetrieveGetHistoryResponse rtrvGtHistResp = new RetrieveGetHistoryResponse();

                	// Keep polling for response till the data is available
			do {
				System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
				rtrvGtHistResp = ps.retrieveGetHistoryResponse(rtrvGtHistReq);
			} while (rtrvGtHistResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);

			// Displaying data
			if (rtrvGtHistResp.statusCode.code == PerSecurity.SUCCESS) {
				Console.WriteLine("Retrieve get data request successful Response ID: " + rtrvGtHistResp.responseId);
				for (int i = 0; i < rtrvGtHistResp.instrumentDatas.Length; i++) {
					Console.WriteLine("Data for :"
                            + rtrvGtHistResp.instrumentDatas[i].instrument.id
							+ " "
                            + rtrvGtHistResp.instrumentDatas[i].instrument.yellowkey);
                    Console.WriteLine("Time: " + rtrvGtHistResp.instrumentDatas[i].date.Hour.ToString() + ":" + rtrvGtHistResp.instrumentDatas[i].date.Minute.ToString() + ":" + rtrvGtHistResp.instrumentDatas[i].date.Second.ToString());
                    Console.WriteLine("Pricing Source: " + rtrvGtHistResp.instrumentDatas[i].pricingSource);
                    for (int j = 0; j < rtrvGtHistResp.instrumentDatas[i].data.Length; j++)
                    {
						Console.WriteLine(fields[j]
								+ " : "
                                + rtrvGtHistResp.instrumentDatas[i].data[j].value);
					}
				}
			} else if (rtrvGtHistResp.statusCode.code == PerSecurity.REQUEST_ERROR)
				Console.WriteLine(" Error in the submitted request" );

            }catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
         }
示例#6
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {
            try
            {
                //Setting header information
                QuotesHeaders headers = new QuotesHeaders();
                DateTime start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 10, 0);
                DateTime end = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 11, 0);
                if (new DateTime().DayOfWeek == DayOfWeek.Saturday)
                {
                    TimeSpan ts1 = new TimeSpan(1, 0, 0, 0);
                   start= start.Subtract(ts1);
                  end=  end.Subtract(ts1);
                }
                else if (new DateTime().DayOfWeek == DayOfWeek.Sunday)
                {
                    start.AddDays(-2);
                    end.AddDays(-2);
                }

                DateTimeRange dtr = new DateTimeRange();
                dtr.startDateTime = start;
                dtr.endDateTime = end;
				dtr.region = "NY";
                headers.datetimerange = dtr;

                //Setting instruments
                Instrument ticker = new Instrument();
                ticker.id = "IBM US";
                ticker.yellowkeySpecified = true;
                ticker.typeSpecified = true;
                ticker.yellowkey = MarketSector.Equity;
                ticker.type = InstrumentType.TICKER;
                Instruments instrs = new Instruments();
                instrs.instrument = new Instrument[] { ticker };

                 SubmitGetAllQuotesRequest req = new SubmitGetAllQuotesRequest();
                req.headers = headers;
                req.instruments = instrs;
                
			Console.WriteLine("Sending submit get all quotes request");
	        SubmitGetAllQuotesResponse resp = ps.submitGetAllQuotesRequest(req);
	        String responseId = resp.responseId;
            Console.WriteLine("Submit get all quotes request status: " + resp.statusCode.description +
					 " responseId: " + resp.responseId);

            RetrieveGetAllQuotesRequest rreq = new RetrieveGetAllQuotesRequest();
	        rreq.responseId = responseId;
	        RetrieveGetAllQuotesResponse rresp = ps.retrieveGetAllQuotesResponse(rreq);
            Console.WriteLine("Sending retrieve get all quotes request");
			// Keep polling for response till the data is available
			do
			{
                System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
				rresp = ps.retrieveGetAllQuotesResponse(rreq);
			} while (rresp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);


                	// Display data
			if (rresp.statusCode.code == PerSecurity.SUCCESS)
			{
				Console.WriteLine("Retrieve get all quotes request successful.  Response ID:" + rresp.responseId);
				for (int i = 0; i < rresp.instrumentDatas.Length; i++)
				{
					Console.WriteLine("Data for :"
                            + rresp.instrumentDatas[i].instrument.id + " "
                            + rresp.instrumentDatas[i].instrument.yellowkey);
					for (int j = 0; j < rresp.instrumentDatas[i].quotes.Length; j++)
					{
                        for (int k = 0; k < rresp.instrumentDatas[i].quotes[j].matchedQuote.Length; k++)
                        {
								Console.WriteLine(" type = "
                                        + rresp.instrumentDatas[i].quotes[j].matchedQuote[k].type +
										", price =  "
                                        + rresp.instrumentDatas[i].quotes[j].matchedQuote[k].price
										+ ", volume =  "
                                        + rresp.instrumentDatas[i].quotes[j].matchedQuote[k].volume
										        );
							}
					}
				}
			}
			else if (rresp.statusCode.code == PerSecurity.REQUEST_ERROR)
                Console.WriteLine("Error in submitted request");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
示例#7
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {
            try{
            // Setting headers for the request
            GetDataHeaders getDataHeaders = new GetDataHeaders();
            getDataHeaders.closingvaluesSpecified = true;
            getDataHeaders.closingvalues = true;
            getDataHeaders.secmasterSpecified = true;
            getDataHeaders.secmaster = true;
            getDataHeaders.derivedSpecified = true;
            getDataHeaders.derived = true;

            // Setting list of instruments for data request
            Instrument ticker = new Instrument();
            ticker = new Instrument();
            ticker.id = "IBM US";
            ticker.type= InstrumentType.TICKER;
            ticker.yellowkey = MarketSector.Equity;

            Instrument[] instr = new Instrument[] { ticker };

            String[] field = new String[] { "ID_BB_UNIQUE", "TICKER",
					"PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" };

            BvalFieldSet fieldset = new BvalFieldSet();
            fieldset.fieldmacro = BvalFieldMacro.BVAL_BOND;


            // Submit get data request
			SubmitGetDataRequest sbmtGetDtReq = new SubmitGetDataRequest();
			sbmtGetDtReq.headers = getDataHeaders;
			sbmtGetDtReq.fields = field;
			sbmtGetDtReq.fieldsets = new BvalFieldSet[] { fieldset };
			Instruments instrmnts = new Instruments();
            instrmnts.instrument = instr;
			sbmtGetDtReq.instruments = instrmnts ;
			Console.WriteLine("Sending submit get data request");
			SubmitGetDataResponse sbmtGetDtResp = ps
					.submitGetDataRequest(sbmtGetDtReq);
            Console.WriteLine("Submit get data request status: " + sbmtGetDtResp.statusCode.description +
					 " responseId: " + sbmtGetDtResp.responseId);

            // Submit retrieve data
			RetrieveGetDataRequest rtvGetDtReq = new RetrieveGetDataRequest();
			rtvGetDtReq.responseId = sbmtGetDtResp.responseId;
			RetrieveGetDataResponse rtvGetDtResp = new RetrieveGetDataResponse();
            Console.WriteLine("Sending retrieve get data request");

			// Keep polling for response till the data is available
			do
			{
                System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
				rtvGetDtResp = ps.retrieveGetDataResponse(rtvGetDtReq);
			} while (rtvGetDtResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);

            // Display data
			if (rtvGetDtResp.statusCode.code == PerSecurity.SUCCESS)
			{
				Console.WriteLine("Retrieve get data request successful.  Response ID:" + rtvGetDtResp.responseId);
				for (int i = 0; i < rtvGetDtResp.instrumentDatas.Length; i++)
				{
					Console.WriteLine("Data for :"
							+ rtvGetDtResp.instrumentDatas[i].instrument.id + " "
                            + rtvGetDtResp.instrumentDatas[i].instrument.yellowkey);
                    for (int j = 0; j < rtvGetDtResp.instrumentDatas[i].data.Length; j++)
					{
						Console.WriteLine("  "
								+ rtvGetDtResp.fields[j]
								+ ": "
                                + rtvGetDtResp.instrumentDatas[i].data[j].value);
					}
				}
			}
			else if (rtvGetDtResp.statusCode.code == PerSecurity.REQUEST_ERROR)
                Console.WriteLine("Error in submitted request");
        }
            catch (Exception e)
		{
            Console.WriteLine(e.Message);
		}
        }
示例#8
0
        public void run(PerSecurityWSDL.PerSecurityWS ps)
        {

            //Setting request header information	
            GetDataHeaders getDataHeaders = new GetDataHeaders();
            getDataHeaders.secmaster = true;
            getDataHeaders.secmasterSpecified = true;
            getDataHeaders.closingvalues = true;
            getDataHeaders.closingvaluesSpecified = true;
            getDataHeaders.derived = true;
            getDataHeaders.derivedSpecified = true;


            //Setting Instrument information
            //Instrument bbUniqueId = new Instrument();
            //bbUniqueId.id = "EQ0086119600001000";
            //bbUniqueId.type = InstrumentType.BB_UNIQUE;
            //bbUniqueId.typeSpecified = true;

            //Instrument ticker = new Instrument();
            //ticker.id = "IBM";
            //ticker.yellowkey = MarketSector.Equity;
            //ticker.yellowkeySpecified = true;
            //ticker.type = InstrumentType.TICKER;
            //ticker.typeSpecified = true;


            Instrument bbUniqueId = new Instrument();
            bbUniqueId.id = "GB0003252318";
            bbUniqueId.type = InstrumentType.ISIN;
            bbUniqueId.typeSpecified = true;

            //Setting the get data request parameter
            SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest();
            sbmtGtDtreq.headers = getDataHeaders;
         //   sbmtGtDtreq.fields = new string[] { "ID_BB_UNIQUE", "TICKER", "PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" };
            sbmtGtDtreq.fields = new string[] { "ID_BB_UNIQUE", "PX_LAST"};
          Instruments instrs = new Instruments();
            System.Collections.Generic.List<Instrument> instrsList = new System.Collections.Generic.List<Instrument>();
        //    instrsList.Add(ticker);
            instrsList.Add(bbUniqueId);
            //instrs.instrument = new Instrument[] { ticker, bbUniqueId };
            instrs.instrument = new Instrument[] {bbUniqueId };
            sbmtGtDtreq.instruments = new Instruments();
            sbmtGtDtreq.instruments = instrs;

            try
            {
                Console.WriteLine("Submit Get Data Request");
                SubmitGetDataResponse sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq);
                System.Console.WriteLine("status " + sbmtGtDtresp.statusCode.description);
                System.Console.WriteLine("Submit Get Data request -  response ID = " + sbmtGtDtresp.responseId);

                //retrieve get data request. The response ID sent for the request is the response ID
                //received from SubmitGetDataRequest()
                Console.WriteLine("Retrieve data request");
                RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest();
                rtrvGtDrReq.responseId = sbmtGtDtresp.responseId;
                RetrieveGetDataResponse rtrvGtDrResp = new RetrieveGetDataResponse();

                //Keep sending the request if status is 100
                do
                {
                    System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL);
                    rtrvGtDrResp = ps.retrieveGetDataResponse(rtrvGtDrReq);
                }
                while (rtrvGtDrResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE);

                if (rtrvGtDrResp.statusCode.code == PerSecurity.SUCCESS)
                {
                    //Displaying the RetrieveGetDataResponse
                    for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++)
                    {
                        Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id +
                            "  " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey);
                        for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++)
                        {
                            if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true)
                            {
                                //In case this is a bulk field request
                                for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++)
                                {
                                    Console.WriteLine("-------------------------");
                                    for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j].
                                        bulkarray[k].data.Length; l++)
                                        Console.WriteLine(rtrvGtDrResp.
                                            instrumentDatas[i].data[j].bulkarray[k].data[l].value);
                                }
                            }
                            else
                                Console.WriteLine("	" + sbmtGtDtreq.fields[j] + " : " + rtrvGtDrResp.
                                    instrumentDatas[i].data[j].value);
                        }
                    }
                }
                else if (rtrvGtDrResp.statusCode.code == PerSecurity.REQUEST_ERROR)
                    Console.WriteLine("Error in the submitted request");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message + "   " + e.StackTrace);
            }
        }