Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Bloomberg API Emulator Examples");
            Console.WriteLine("http://bemu.codeplex.com/");
            Console.WriteLine("By: Robinson664");
            Console.WriteLine();

            Console.WriteLine("To send a historical data request, push 1");
            Console.WriteLine("To send a intraday bar data request, push 2");
            Console.WriteLine("To send a intraday tick data request, push 3");
            Console.WriteLine("To send a market data request, push 4");
            Console.WriteLine("To send a reference data request, push 5");

            string input = Console.ReadLine();

            Console.WriteLine();
            Console.WriteLine();
            bool informationReturned = true;

            switch (input)
            {
            case "1":
                HistoricalDataRequest.RunExample();
                break;

            case "2":
                IntradayBarDataRequest.RunExample();
                break;

            case "3":
                IntradayTickDataRequest.RunExample();
                break;

            case "4":
                MarketDataRequest.RunExample();
                break;

            case "5":
                ReferenceDataRequest.RunExample();
                break;

            default:
                informationReturned = false;
                break;
            }

            if (informationReturned)
            {
                Console.WriteLine();
                Console.WriteLine("Please note that the data in this request is completely random: it is not real data.");
                Console.WriteLine("Do not make any trading or investment decisions using the data shown here.");
            }
            Console.WriteLine();
            Console.WriteLine("Push enter to quit the application.");
            Console.ReadLine();
        }
Esempio n. 2
0
        /// <summary>
        /// This example Bloomberg request starts a session meant for Reference Requests and requests a few fields for several securities.
        /// I pulled this example code almost line-for-line from section C.1 of the Bloomberg API Developer's Guide
        /// </summary>
        public static void RunExample()
        {
            SessionOptions sessionOptions = new SessionOptions();

            sessionOptions.ServerHost = "127.0.0.1";
            sessionOptions.ServerPort = 8194;

            Session session = new Session(sessionOptions);

            if (session.Start() && session.OpenService("//blp/refdata"))
            {
                Service refDataService = session.GetService("//blp/refdata");
                if (refDataService == null)
                {
                    Console.WriteLine("Cannot get service");
                }
                else
                {
                    Request request = refDataService.CreateRequest("IntradayTickRequest");

                    string security = "SPY US Equity";
                    //security = "ZYZZ US EQUITY";  //the code treats securities that start with a "Z" as non-existent
                    request.Set("security", security);

                    request.Append("eventTypes", "TRADE"); //One of TRADE (default), BID, ASK, BID_BEST, ASK_BEST, MID_PRICE, AT_TRADE, BEST_BID, BEST_ASK (see documentation A.2.6 for explanations)
                    request.Append("eventTypes", "BID");   //A request can have multiple eventTypes
                    //Note 1) refDataService.ToString() using the Bloomberg API indicates an additional eventType called "SETTLE".  "SETTLE" doesn't seem to produce any results.
                    //Note 2) If you request an eventType that isn't supported, the API will throw a KeyNotSupportedException at the "request.Append("eventType", "XXX")" line
                    //Note 3) eventType values are case-sensitive.  Requesting "bid" instead of "BID" will throw a KeyNotSupportedException at the "request.Append("eventType", "bid")" line

                    DateTime dtYesterday = DateTime.Today.AddDays(-1);
                    while (dtYesterday.DayOfWeek == DayOfWeek.Saturday || dtYesterday.DayOfWeek == DayOfWeek.Sunday)
                    {
                        dtYesterday = dtYesterday.AddDays(-1);
                    }

                    request.Set("startDateTime", new Datetime(dtYesterday.AddHours(9.5).ToUniversalTime()));
                    request.Set("endDateTime", new Datetime(dtYesterday.AddHours(11).ToUniversalTime())); //goes back at most 140 days (documentation section 7.2.3)

                    //A comma delimited list of exchange condition codes associated with the event. Review QR<GO> for more information on each code returned.
                    request.Set("includeConditionCodes", false); //Optional bool. Valid values are true and false (default = false)

                    //Returns all ticks, including those with condition codes.
                    request.Set("includeNonPlottableEvents", false); //Optional bool. Valid values are true and false (default = false)

                    //The exchange code where this tick originated. Review QR<GO> for more information.
                    request.Set("includeExchangeCodes", false); //Optional bool. Valid values are true and false (default = false)

                    //Option on whether to return EIDs for the security.
                    request.Set("returnEids", false); //Optional bool. Valid values are true and false (default = false)

                    //The broker code for Canadian, Finnish, Mexican, Philippine, and Swedish equities only.
                    //  The Market Maker Lookup screen, MMTK<GO>, displays further information on market makers and their corresponding codes.
                    request.Set("includeBrokerCodes", false); //Optional bool. Valid values are true and false (default = false)

                    //The Reporting Party Side. The following values appear:
                    //  -B: A customer transaction where the dealer purchases securities from the customer.
                    //  -S: A customer transaction where the dealer sells securities to the customer.
                    //  -D: An inter-dealer transaction (always from the sell side).
                    request.Set("includeRpsCodes", false); //Optional bool. Valid values are true and false (default = false)

                    //The BIC, or Bank Identifier Code, as a 4-character unique identifier for each bank that executed and reported the OTC trade, as required by MiFID.
                    //  BICs are assigned and maintained by SWIFT (Society for Worldwide Interbank Financial Telecommunication).
                    //  The MIC is the Market Identifier Code, and this indicates the venue on which the trade was executed.
                    request.Set("includeBicMicCodes", false); //Optional bool. Valid values are true and false (default = false)

                    CorrelationID corr = new CorrelationID(17);
                    session.SendRequest(request, corr);

                    bool continueToLoop = true;
                    while (continueToLoop)
                    {
                        Event evt = session.NextEvent();

                        switch (evt.Type)
                        {
                        case Event.EventType.RESPONSE:
                            IntradayTickDataRequest.ProcessResponse(evt, security);
                            continueToLoop = false;
                            break;

                        case Event.EventType.PARTIAL_RESPONSE:
                            IntradayTickDataRequest.ProcessResponse(evt, security);
                            break;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("Cannot connect to server.  Check that the server host is \"localhost\" or \"127.0.0.1\" and that the server port is 8194.");
            }
        }