@glue42/bbg-market-data

A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.

Usage no npm install needed!

<script type="module">
  import glue42BbgMarketData from 'https://cdn.skypack.dev/@glue42/bbg-market-data';
</script>

README

Overview

A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.

Initialization

The BBGMarketData API depends on the Glue42 Interop API. It also accepts a config object to control logging behavior and optionally provide a custom logger implementation.

import BBGMarketData, {
  BBGMarketDataAPI,
  HistoricalDataRequestArguments,
  HistoricalDataRequest,
  ResponseData,
  HistoricalData,
  Session,
  PeriodicityAdjustment,
  PeriodicitySelection,
  FillOptions,
  FillMethod
} from "@glue42/bbg-market-data";
import Glue from "@glue42/desktop";

Glue().then(glue => {
  const bbgMarketData: BBGMarketDataAPI = BBGMarketData(glue.interop, {
    debug: false
  });

  // Start using the library.
});

Example (creating a HistoricalData request):

const requestArgs: HistoricalDataRequestArguments = {
  securities: ["IBM US Equity"],
  fields: ["PX_LAST", "OPEN"],
  startDate: "20060101",
  endDate: "20061231",
  periodicityAdjustment: PeriodicityAdjustment.ACTUAL,
  periodicitySelection: PeriodicitySelection.MONTHLY,
  maxDataPoints: 100,
  returnEids: true,
  nonTradingDayFillOption: FillOptions.NON_TRADING_WEEKDAYS,
  nonTradingDayFillMethod: FillMethod.PREVIOUS_VALUE
};

const request: HistoricalDataRequest = bbgMarketData.createHistoricalDataRequest(
  requestArgs
);

request.onData(function handleResponse(
  response: ResponseData<HistoricalData>
): void {
  if (response.isLast) {
    // Handle final response
  } else {
    // Handle partial response
  }
});

// Send the actual request to Bloomberg.
// The API will create a new session which will close immediately after the request completes, fails or is closed.
request
  .open({ session: Session.CreateNew })
  .then((response: HistoricalData[] | undefined) => {
    // Handle aggregated response.
  });