public void Execute()
        {
            try
            {
                // podpięcie zdarzenia zmiany notowań
                Bossa.OnUpdate += HandleBossaUpdate;

                // włączenie odbioru notowań dla wybranych instrumentów
                // (wystarczy samo odwołanie się do konkretnego obiektu 'Bossa.Instruments[...]')
                Bossa.Instruments["KGHM"].UpdatesEnabled    = true;
                Bossa.Instruments["WIG20"].UpdatesEnabled   = true;
                Bossa.Instruments["FW20M12"].UpdatesEnabled = true;

                // własnoręczne przygotowanie obiektu do komunikacji z NOL'em...
                var client = new NolClient();
                // i podpięcie się bezpośrednio do jednego z jego wewnętrznych zdarzeń
                client.SessionStatusMsgEvent += HandleSessionStatusMsgEvent;

                // uruchomienie połączenia (to zamiast standardowego "ConnectNOL3")
                Bossa.Connect(client);

                // w tle odbieramy zdarzenia i wyświetlamy bieżące notowania
                Console.WriteLine("Press any key... to exit");
                Console.ReadKey(true);
            }
            finally
            {
                Bossa.OnUpdate -= HandleBossaUpdate;
                Bossa.Disconnect();
                Bossa.Clear();
            }
        }
Пример #2
0
        public void Execute()
        {
            // połączenie z NOLem, zalogowanie użytkownika
            Bossa.ConnectNOL3();
            try
            {
                // podpięcie zdarzenia zmiany notowań
                Bossa.OnUpdate += HandleBossaUpdate;

                // włączenie odbioru notowań dla wybranych instrumentów
                // (wystarczy samo odwołanie się do konkretnego obiektu 'Bossa.Instruments[...]')
                Bossa.Instruments["KGHM"].UpdatesEnabled    = true;
                Bossa.Instruments["WIG20"].UpdatesEnabled   = true;
                Bossa.Instruments["FW20M12"].UpdatesEnabled = true;

                // w tle odbieramy zdarzenia i wyświetlamy notowania... na początek ze szczegółami...
                Console.WriteLine("Press any key... to disable OHLC details   (Esc - exit)");
                if (Console.ReadKey(true).Key == ConsoleKey.Escape)
                {
                    return;
                }

                showStats = false;                  // wystarczy już tych "statystyk" sesji, bez tego będzie czytelniej

                // w tle odbieramy zdarzenia i wyświetlamy bieżące notowania
                Console.WriteLine("Press any key... to exit");
                Console.ReadKey(true);
            }
            finally
            {
                Bossa.OnUpdate -= HandleBossaUpdate;
                Bossa.Disconnect();
                Bossa.Clear();
            }
        }
Пример #3
0
        public void Execute()
        {
            // połączenie z NOLem, zalogowanie użytkownika
            Bossa.ConnectNOL3();
            try
            {
                // tu powinniśmy chwilę zaczekać, aż NOL przyśle nam "wyciąg"
                Console.WriteLine("Press any key... to read account info");
                Console.ReadKey(true);
                Console.WriteLine();

                // wyświetlenie informacji o dostępnych rachunkach
                foreach (var account in Bossa.Accounts)
                {
                    Trace.WriteLine(string.Format("Account: {0}", account.Number));
                    Trace.WriteLine(string.Format("- porfolio value: {0}", account.PortfolioValue));
                    Trace.WriteLine(string.Format("- deposit blocked: {0}", account.DepositBlocked));
                    Trace.WriteLine(string.Format("- available funds: {0}", account.AvailableFunds));
                    Trace.WriteLine(string.Format("- available cash: {0}", account.AvailableCash));
                    // spis papierów wartościowych na danym rachunku
                    if (account.Papers.Count > 0)
                    {
                        Trace.WriteLine("- papers: ");
                        foreach (var paper in account.Papers)
                        {
                            Trace.WriteLine(string.Format(" {0,5} x {1}", paper.Quantity, paper.Instrument));
                        }
                    }
                    // spis aktywnych zleceń na tym rachunku
                    if (account.Orders.Count > 0)
                    {
                        Trace.WriteLine("- orders: ");
                        foreach (var order in account.Orders)
                        {
                            Trace.WriteLine(string.Format("  {0}: {1} {2} x {3} - {4}",
                                                          order.Instrument, order.Side, order.Quantity, order.Price, order.StatusReport));
                        }
                    }
                    Trace.WriteLine("");
                }

                Console.WriteLine("Press any key... to exit");
                Console.ReadKey(true);
            }
            finally
            {
                Bossa.Disconnect();
                Bossa.Clear();
            }
        }
        public void Execute()
        {
            // połączenie z NOLem, zalogowanie użytkownika
            Bossa.ConnectNOL3();
            try
            {
                // podpięcie zdarzenia, po którym będziemy mogli odczytać nowy stan rachunku
                Bossa.OnUpdate += HandleBossaUpdate;

                // w tle odbieramy zdarzenia i wyświetlamy informacje o zmienionym stanie rachunku
                Console.WriteLine("Press any key... to exit");
                Console.ReadKey(true);
            }
            finally
            {
                Bossa.OnUpdate -= HandleBossaUpdate;
                Bossa.Disconnect();
                Bossa.Clear();
            }
        }