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