The Speed Guide utility allows users and developers, who do not have access to LSEG Workspace/Eikon desktop applications, a simple and quick way to easily browse market data content available within Refinitiv's Data Platform. The following guide outlines the fundamental purpose of speed guides and provides basic instructions to use the utility. In addition, outlines the components and basic instructions to build the tool using the source code available within this project.
The Speed Guide utility allows users and developers who do not have access to the desktop application to browse market data content available from Refinitiv's Data Platform. The utility provides access to either cloud-based, Real-Time -- Optimized services or directly to your deployed Real-Time servers.
When building applications consuming streaming market data, developers often need a list of RICs (Refinitiv Instrument Codes), and the values they contain, for certain market, exchange, or instrument types. The list of fields provided for these instrument types will differ depending on the type of asset. To aid in the discovery and understanding of these assets, the Speed Guide utility is a graphical tool presenting data screen displays. These data screens, or speed guides, help users navigate through the universe of RICs and list the fields available for the specific asset. Developers will be presented with a simple organization of the data to gain a better understanding which includes complex structures such as Option Chains, Indices, Futures, etc.
The Speed Guide tool registers for Snapshot only data content (i.e, non-streaming).
The executable program and Readme is available for Download within the LSEG Developer Platform.
The Speed Guide utility provides the ability to connect directly to the Refinitiv Data Platform, via Refinitiv Real-Time -- Optimized or access through your deployed Real-Time streaming server (ADS) available within the Refinitiv RTDS (Real-Time Distribution System).
The package includes 2 components offering multiple ways to launch the tool. Packaged are:
- SpeedGuide.jar: An executable JAR available for Windows, Mac or Linux
- SpeedGuide.exe: A convenient windows wrapper
Note: Because the package was built using JDK 1.8. which conveniently packages the JavaFx package, user must ensure they install Java 8 runtime.
Double-clicking either the .jar or .exe file will not pass any required connection parameters to the application. However, users can create a shortcut on their desktop and apply parameters there - see Command-line Options below.
If the required parameters are not specified, the application will present a Connection Dialog requesting for the required connection details. In either case, no console is involved thus no additional messages, such as log messages, can be viewed.
Note: Launching the executable JAR requires the Javaw program to open it. When not associated, you will be presented with a request such as:
You will need to choose the Javaw program within your Java installation.
At the console, you can pass command-line parameters to the utility:
-
> java -jar SpeedGuide.jar [connection parameters]
When launching the executable JAR, users optionally specify command-line options and have the opportunity to see the output on the console.
-
> SpeedGuide.exe [options]
The windows wrapper is strictly a GUI based facility that does not have an explicit console attached. Thus, no output can be viewed on the console. However, users can capture the output within a file. for example:
> SpeedGuide.exe>output.txt [connection parameters]
--service=serviceName Optional. Service Name providing market data content.
Eg: ELEKTRON_DD. Default: Determined from Directory response.
************* ADS Connection Parameters **************
--host=hostname:port Required. ADS Server address/hostname and port of your Market Data
server. Syntax: <host/ip>:<port>. Eg: elektron:14002 or 192.168.1.1:14002
--user=userName Optional. DACS User name required if authentication is enabled on server.
Note: if no user name is provided, the utility will use your desktop login
--appid=ApplicationId Optional. DACS Application ID if authentication is enabled on server.
Application ID has no default.
--position=Position Optional. DACS Position if authentication is enabled on server.
Position has no default.
************* Real-Time -- Optimized Connection Parameters **************
--region=location Optional. Specify the location to connect within the cloud.
Eg: ap-northeast-1 (Asia) eu-west-1 (EU) us-east-2 (US). Default: us-east-1
**** Version 1 Authentication >
--machineId=machine ID Required. Real-Time -- Optimized Machine ID/User required for OAuth Password Grant.
Eg: GE-A-00000000-1-8888
--password=password Required. Real-Time -- OPtimized password required for OAuth Password Grant.
Eg: Sunshine_1_UserPass
--appKey=App Key Required. Real-Time -- Optimized AppKey or Client ID required for server authentication.
Eg: x888x8x88888888x88888x88x8888xx88x88888x
**** Version 2 Authentication >
--clientId=Client ID Required. Real-Time -- Optimized Client/Service Account ID required for OAuth Client Credentials.
Eg: GE-XXXXXXXXXXXX
--clientSecret=secret Required. Real-Time -- Optimized Client secret required for OAuth Client Credentials.
Eg: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
--keyStore=keystorefile Optional. A Java KeyStore (JKS) required for secure package exchange.
Default: SpeedGuide provides a file for convenience.
--keyStorePasswd=passwd Optional. Password associated with the specified keystore file.
Default: SpeedGuide includes the password for the default keystore file.
--d[ebug] Debug Mode. Display verbose messages to the console
--h[elp] Prints this screen
The following example shows the command-line parameters to connect to either an ADS or directly to Real-Time -- Optimized in the cloud.
- SpeedGuide.exe --host=myserver:14002 --service=ELEKTRON_AD --user=testuser --appid=256 --position=127.0.0.1
- SpeedGuide.exe --clientId=GE-XXXX1234XXXX --clientSecret=9x999999-9xxx-9999-9x99-9x9xx99x9x99
- SpeedGuide.exe --clientId=GE-123X9ABCDE9Z --clientSecret=9z123456-9abc-5555-9a12-1a2bc34d5e67 --region=eu-west-1
When launching the utility specifying insufficient command-line options, the user will be presented with a Connection dialog. The user can choose how they want to access the platform, i.e. through their deployed real-time services, via ADS:
Or directly to the cloud via Real-Time -- Optimized (Version 1 authentication):
Or directly to the cloud via Real-Time -- Optimized (Version 2 authentication):
The Status Pane at the bottom of the main window provides some general feedback, whether success or failure. In the case where a successful connection can be made to your specified server, the utility will launch the root Speed Guide item, i.e. REFINITIV.
Note: While the utility will launch the "REFINITIV" RIC, which represents the root code of the Speed Guide pages, the utility is extremely useful for developers to visualize any other instrument available as well as optionally selecting an appropriate Region when connecting to the cloud.
The Home button takes the user back to this page at any time.
To navigate through the guide, double click on any text nested between < > characters. Although suggested within the guides, this utility does not presently support NEWS codes nested between [ ] characters.
The top navigation menu provides:
- A Home button to go back to the initial main page.
- A Previous button to go back to the previous page (if it exists).
- A Next button to go to next page (if it exists).
- An input text field that displays the RIC for the current page, and allows entering a RIC to request.
- A Connect button when no connection has been established
- For cloud-based connections, the RTO Region provides the opportunity to switch your region
- A Service specification drop-down providing the list of services available within the connected server
During normal operation, or possibly at startup, the Status Pane will highlight issues appropriately. In the case where the user specifies an incorrect service, the Service drop-down will give them the opportunity to select a valid one.
As you navigate through the guide, double-clicking on <nested items>, you may be presented with a simple fieldlist display of the IDs, or Field IDs (FIDs) for a given RIC.
For example:
Although not presented in a user-friendly display form, the native list of fields not only provides the user the ability to research all available fields for a given asset, but also the opportunity to better understand the structure of LSEG Data.
Navigating through the guide, you will likely come across some more complex data structures. For example, some market data elements, such as the Nasdaq Top 25, are represented as a collection of elements referred to as a Chain. A Chain contains a dynamically-sized collection of elements represented within a static list of underlying fields within a market data record. In the case of the Nasdaq Top 25, there will be a total of 25 links. Because a Chain is represented within a simple MarketPrice structure containing a static number of links, the structure offers the ability to pull up the next link within this collection to allow applications to navigate through the chain to retrieve the desired collection.
To demonstrate, we manually entered the Nasdaq Top 25 index .AV.O:
We can see from above, the record contains a preset number of elements (1-14) and the ability to pull up the next group of elements within the next link. For a detailed outline of Chains, refer to the article: Simple Chain Objects within the Developer Community.
Feel free to navigate through the guide to discover many other assets and data elements offered by Refinitiv.
The utility was developed using the Refinitiv Real-Time SDK - Java and Java's GUI library Java 8 - JavaFx.
Required software components:
- Refinitiv Real-Time SDK - Java (2.0.1.L1 or greater) - Refinitiv interface to streaming, real-time services.
- JDK 8 - Java Development Kit - version 8.
- VScode - Visual Studio Code
The Java FXML project is a Maven-based solution that generates the desired package for distribution. As defined within the pom.xml configuration file, the packaging uses the Launch4j plugin to help prepare a Windows package. Users can optionally remove this stanza if there is no desire to generate an EXE file for Windows. If there is a desire to use this plugin, it assumes the following JDK installation (Note: you can update to suit your environment)
<jre>
<path>C:\Program Files\Common Files\Oracle\javapath</path>
<minVersion>1.8.0</minVersion>
</jre>
The project was built using VS Code and Maven.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Name | Release | Details |
---|---|---|
Nick Zincone | Release 4.1.0 | Ability to specify region |
Default service based on Directory interrogation | ||
Nick Zincone | Release 4.0.0 | Added access to Real-Time -- Optimized v2 authentication. Rebranded (LSEG) |
Nick Zincone | Release 3.2 | Fixed dictionary download issue; rebuilt using newly branded (Refinitiv) SDK |
Nick Zincone | Release 3.1 | Fixed connectivity issues and re branded. |
Nick Zincone | Release 3.0 | Added access to Real-Time -- Optimized, formally ERT in Cloud, streaming services. |
Nick Zincone | Release 2.1 | Added DACS fields required for login to Elektron. |
Nick Zincone | Release 2.0 | Additional error checking |
Utilized JavaFX Scene Builder to generate FXML | ||
Susana Chang | Release 1.1 | Initial implementation |
This project is licensed under the MIT License - see the LICENSE.md file for details