コード例 #1
0
ファイル: GetAllQuotesRequest.cs プロジェクト: BrianGoff/BITS
        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);
            }
        }
コード例 #2
0
        public void run(PerSecurityWSDL.PerSecurityWS ps, ProgramFlag pf)
        {
            try
            {
                // Setting headers
                QuotesHeaders headers = new QuotesHeaders();
                DateRange     dr      = new DateRange();
                DateTime      start   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                if (new DateTime().DayOfWeek == DayOfWeek.Saturday)
                {
                    TimeSpan ts1 = new TimeSpan(1, 0, 0, 0);
                    start = start.Subtract(ts1);
                }
                else if (new DateTime().DayOfWeek == DayOfWeek.Sunday)
                {
                    start.AddDays(-2);
                }

                // 1 days worth of ticks
                Period dRange = new Period();
                dRange.start = start;
                dRange.end   = start;
                dr.period    = dRange;

                headers.daterange            = dr;
                headers.programflag          = pf;
                headers.programflagSpecified = true;

                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 };

                // Sending Request
                SubmitGetQuotesRequest smtGetQtsReq = new SubmitGetQuotesRequest();
                smtGetQtsReq.headers     = headers;
                smtGetQtsReq.instruments = instrs;

                Console.WriteLine("Sending submit get quotes request");

                submitGetQuotesRequestRequest  smtGetQtsReqReq  = new submitGetQuotesRequestRequest(smtGetQtsReq);
                submitGetQuotesRequestResponse smtGetQtsReqResp = ps.submitGetQuotesRequest(smtGetQtsReqReq);
                SubmitGetQuotesResponse        smtGetQtsResp    = smtGetQtsReqResp.submitGetQuotesResponse;;

                Console.WriteLine("Submit get quotes request status: " + smtGetQtsResp.statusCode.description +
                                  " responseId: " + smtGetQtsResp.responseId);

                RetrieveGetQuotesRequest rtrvGetQtsReq = new RetrieveGetQuotesRequest();
                rtrvGetQtsReq.responseId = smtGetQtsResp.responseId;

                retrieveGetQuotesResponseRequest  rtrvGetQtsRespReq = new retrieveGetQuotesResponseRequest(rtrvGetQtsReq);
                retrieveGetQuotesResponseResponse rtrvGetQtsRespResp;

                RetrieveGetQuotesResponse rtrvGetQtsResp;

                Console.WriteLine("Sending retrieve get quotes request");

                // Keep polling for response till the data is available
                do
                {
                    System.Threading.Thread.Sleep(PerSecurity.PollInterval);
                    rtrvGetQtsRespResp = ps.retrieveGetQuotesResponse(rtrvGetQtsRespReq);
                    rtrvGetQtsResp     = rtrvGetQtsRespResp.retrieveGetQuotesResponse;
                } while (rtrvGetQtsResp.statusCode.code == PerSecurity.DataNotAvailable);

                // Display data
                if (rtrvGetQtsResp.statusCode.code == PerSecurity.Success)
                {
                    Console.WriteLine("Retrieve get quotes request successful.  Response ID:" + rtrvGetQtsResp.responseId);
                    for (int i = 0; i < rtrvGetQtsResp.instrumentDatas.Length; i++)
                    {
                        Console.WriteLine("Data for :"
                                          + rtrvGetQtsResp.instrumentDatas[i].instrument.id + " "
                                          + rtrvGetQtsResp.instrumentDatas[i].instrument.yellowkey);
                        for (int j = 0; j < rtrvGetQtsResp.instrumentDatas[i].quotes.Length; j++)
                        {
                            Console.WriteLine("price =  "
                                              + rtrvGetQtsResp.instrumentDatas[i].quotes[j].price
                                              + ", volume =  "
                                              + rtrvGetQtsResp.instrumentDatas[i].quotes[j].volume);
                        }
                    }
                }
                else if (rtrvGetQtsResp.statusCode.code == PerSecurity.RequestError)
                {
                    Console.WriteLine("Error in submitted request");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }