Market Data

Use the MarketDataService to subscribe enumerate all available securities.

using System;
using System.Threading;
using bts.api;
using bts.api.core;

namespace sample {
   class Program {
      static void Main(string[] args) {
         using var context = new ServiceContext();
         var md = context.locate<MarketDataService>();
         using var sub = md.subscribe_securities().Subscribe(update => {
            foreach (var security in update.added) {
               Console.WriteLine($"Added security {security.Id}: {security.Symbol}");
            }
         });

         Thread.Sleep(TimeSpan.FromMinutes(5));
      }
   }
}
#include "lib/api/public/ServiceContext.h"
#include "spark/lib/domain_model/Security.h"
#include "lib/api/services/MarketDataService.client.pb.h"
#include <thread>

using namespace bts::api;

int main(int argc, char** argv) {
   ServiceContext ctx;
   auto md_service = ctx.locate<bts::api::MarketDataService>();
   auto sub = md_service.subscribe_securities().subscribe([](const auto& update) {
      for (const auto& s : update.added()) {
         std::cout << "Added security: " << s->id() << ": " << s->symbol() << std::endl;
      }
   });

   std::this_thread::sleep_for(std::chrono::minutes(5));
   return 0;
}