Bloomberg Connector

Overview

The Glue42 Bloomberg Connector offers an API for connecting to the Bloomberg Terminal. Accessing the Bloomberg Terminal through the Bloomberg Connector API means that you can control the Bloomberg Terminal with any JavaScript, .NET, Java or COM technology.

The Bloomberg Connector also offers a Bloomberg Simulator where the API can be used without having an actual Bloomberg Terminal installed.

Several functionalities of the Bloomberg Terminal are available to you through the Bloomberg Connector API:

Bloomberg Groups

  • BBG Group context changed (e.g., instrument update) event;
  • BBG Group context update via a Glue42 invocation method;
  • BBG Group context read (get) via a Glue42 invocation method;
  • BBG Group context update via a Glue42 Channel;
  • Keeping a Glue42 channel synchronized with a BBG Group context;

Bloomberg Worksheets

  • Get a BBG Worksheets list via a Glue42 invocation method;
  • Get the BBG Worksheet context (instrument list) via a Glue42 invocation method;
  • Create BBG worksheets;
  • Update (add/remove/set) BBG Worksheet context via a Glue42 invocation method;

Bloomberg Components

  • Host Bloomberg Components (hosted in WPF windows, can be created on demand) in Glue42 windows that can participate in Glue42 layouts and workspaces;
  • Get/set context properties of the Bloomberg components via a Glue42 invokation method;

Bloomberg Connector API

To check if the Bloomberg Connector is connected to the Bloomberg Terminal (or the Bloomberg Simulator) use:

(bool result) T42.BBG.IsLoggedIn (void)

To force reconnection of the Connector to the Bloomberg Terminal:

(bool reconnected) T42.BBG.Reconnect (void)

Bloomberg Groups Protocol

Glue42 Invokation Methods

Get the known groups as a list of strings with the group names:

(string[] result) T42.BBG.GetGroups (void)

Get the context of a group by name:

(string result) T42.BBG.GetGroupContext (string group)

Update the context of a group by name:

(void) T42.BBG.SetGroupContext (string group, string context)

Streaming Events

A Glue42 enabled app can subscribe for and be notified about group changes:

({string name, Value value}[]) T42.BBG.GroupsChanged

Channels Synchronization

Currently, Glue42 Desktop has channel definitions for the following Bloomberg groups: Group-A, Group-B, Group-C, Group-G and Group-J. All other groups can be easily added. The Glue42 Channels are defined in %LocalAppData%\Tick42\GlueDesktop\config\channels.json.

The binding configuration for the Bloomberg Groups to the Glue42 Channels can be found in the meta property of the Glue42 channel definition:

"blpGroup": {
    "name" : "Group-G",
    "readDataFieldPath" : "data.partyPortfolio.ric",
    "writeDataFieldPath" : "data.partyPortfolio.ric",
    "read" : "ric",
    "write": "ric"
}
  • name - specifies the Bloomberg Group to bind to the respective Glue42 channel;

  • readDataFieldPath - specifies the field path the Glue42 channel data, from where the Bloomberg Connector reads the updated channel value and then updates the Bloomberg Group context.

  • writeDataFieldPath - specifies the field path to the Glue42 channel data, where the Bloomberg Connector writes the updated Bloomberg Group context.

  • read and write - specify whether the type of the context to read/write is RIC or BLP;

Bloomberg Worksheets Protocol

Get the known worksheets - returns an array of composites describing each worksheet:

(Composite:Worksheet{string id, bool isActive, string name}[] worksheets) 
T42.BBG.GetWorksheets (void)

Create a worksheet by name and its initial list of securities. This will create a new worksheet within the Bloomberg Terminal with the given name and securities. This can later be updated by worksheetId, returned in the resulting composite value:

(Composite:Worksheet{string id, bool isActive, string name} worksheet)
T42.BBG.CreateWorksheet (string name, string[] securities)

Retrieve the securities of a worksheet by a given worksheet ID. IDs can be retrieved with a GetWorksheets() call for exisiting worksheets or CreateWorksheet() for new worksheets:

(string[] securities) T42.BBG.GetWorksheetSecurities (string worksheetId)

Replace the securities of a worksheet by a given worksheet ID and a list of securities:

(void) T42.BBG.SetWorksheetSecurities (string[] securities, string worksheetId)

Append securities to a worksheet by a given worksheet ID and a list of securities to be appended to the worksheet:

(void) T42.BBG.AppendWorksheetSecurities (string[] securities, string worksheetId)

Remove securities of a worksheet by a given worksheet ID and a list of securities to be removed from the worksheet:

(void) T42.BBG.RemoveWorksheetSecurities (string[] securities, string worksheetId)

Bloomberg Components Protocol

Get a list of the supported application types (Bloomberg Components) by the Bloomberg Connector:

(Composite:BridgeApplication{string appId, string manifest, string manifestType, string name}[] result) 
T42.BBG.ListApplications (void)

Get a list of application instances (Bloomberg Components) run by the Bloomberg Connector - the appId field can be used in UpdateApplicationContext() to update an application context:

(Composite:BridgeApplication{string appId, string manifest, string manifestType, string name}[] result) 
T42.BBG.ListApplicationInstances (void)

Create an application (Bloomberg Component) and host it in a Glue42 window by either app name as a string, or a composite describing the application. The returned composite describes the started instance. The appId is the ID of the started application, to be used with UpdateApplicationContext(). The instanceId is the Glue42 instance of the newly started application - this is when the application is not hosted in the Bloomberg Connector process. The context is represented by a composite map - property name -> Composite value:

(Composite:StartApplicationResult{Composite:BridgeApplication{string appId, string manifest, string manifestType, string name} app, string instanceId} Result)
T42.BBG.StartApplication (string app, string context)

Update a running application (Bloomberg Component) context by the specified appId and a context, represented by a composite map - property name -> Composite value:

(void) T42.BBG.UpdateApplicationContext (Composite:BridgeApplication{string appId, string manifest, string manifestType, string name} app, string context)