Forewords: gRPC


Ganymede API is built using gRPC from the Cloud Native Computing Foundation.


gRPC was chosen over JSON because of its high speed streaming performance (usually one order of magnitude quicker than JSON, see this or this or this .
It is of utmost importance when it comes to handling tick-by-tick data where volumes are usually higher than a few GiB per trading day and per ticker. gRPC improves bandwidth and reduces required CPU cycles greatly.


gRPC comes with a lot of important features:

  • inter-operable: across several programming languages and platforms
  • high performance: thanks to protobuf efficient binary encoding
  • defined: proto files describe exactly how circulating objects are made and allow for type safety and idiomatic clients code generation
  • rich: from unary calls to bi-directional streaming calls
  • secure: authentication and encryption thanks to HTTP/2 and TLS
  • open-source: everything is out in the open, with permissive licensing
  • ubiquitous: widely adopted and well maintained


Ganymede is cloud native and the API can be accessed both from within our Web hosted Jupyter Lab or using Remote Access.

Web hosted Jupyter Lab


The Web hosted Jupyter Lab is 100% online and provides easy access to Ganymede API. The only requirement is a device equiped with a modern web browser, everything else is provided for the user (CPU, memory, disk and data). This allows quick prototyping of ideas with up-to-date data, all in the same place.


The subscribed plan determines both the provided computing resources and the particular API and available data. At minima, the following specs are guaranted:

  • per user private docker container.
  • support for python notebooks.
  • support for dotnet-interactive notebooks (C#, F# and VB)
  • pre-cloned git repository packed with examples.


As users in tier-3 plan gain access to tick-by-tick data, it implies beefier and dedicated infrastructure (highest vCPU counts per instance, much more memory, higher number of instances, GPU options, etc..)


Users can access their private Web hosted Jupyter Lab from the dashboard.

Remote access


Users can access Ganymede API from anywhere thanks to public API endpoints. Communication to the public endpoints are encrypted using TLS for guaranteed security and privacy. The Ganymede engine propelling the remote services is running on a shared infrastructure (tier-1 and tier-2 plans) or a dedicated infrastructure (tier-3 plan).


Remote access allows to:

  • Use your own infrastructure (cloud or on-premises)
  • Use your own development environment.
  • Integrate Ganymede API into your own software, services and business processes.


Walkthrough documents to leverage remote access capabilities are available:

Document Platform Notebooks Remarks
sample-notebooks-remote-access-walkthrough-windows Windows Python Python stock installer, easy
sample-notebooks-remote-access-walkthrough-anaconda-windows Windows Python, C#, F# Anaconda 3, recommended
sample-notebooks-remote-access-walkthrough-unix Linux, including WSL2. OSX Python, C#, F# Docker, recommended

Authorization model


Independently of the way Ganymede API is accessed (remotely or from hosted Jupyter Lab) the authorization mechanism works the same, each user:

  • Is entitled to access a pre-defined set of services, capabilities and data sources in accordance to his currently subscribed plan.
  • Must have a valid non expired JWT authorization token that must be presented to the services on each call.

Packages


In order to facilitate Ganymede API access, we provide a set of pre-generated packages:


The packages contain:

  • auto-generated client/stubs for each and every Ganymede service, along with the related circulating types for requests and responses.
  • a few helpers to facilitate the retrieval of authorization tokens and the creation of communication channels.


Have a look at how those helpers are used in Template API call.

Template API call


The following code snippet is a template pseudo-code. Its purpose is to illustrate the ubiquitous steps required to communicate with Ganymede services.
This template is used in each and every example available from our Github notebook-examples repository and is the recommended way to operate.


In particular, you will notice that:

  • the channel creation doesn't seem to require any explicit connection FQDN or IP address nor port number.
  • the token retrieval doesn't seem to require any sensitive or secret data.


The helpers behavior is determined by environment variables, which brings a few advantages:

  • uncouples the code from the infrastructure it is running from (Web hosted Jupyter Lab or Remote Access)
  • prevents the storage of sensitive secrets in source code repositories.


For an exhaustive explanation of the involved environment variables see Environment variables section.


# grpc modules and well known types
import grpc
import google.type.date_pb2 as date
import google.type.timeofday_pb2 as timeofday
import google.type.dayofweek_pb2 as dayofweek
import google.protobuf.duration_pb2 as duration
from datetime import datetime
from datetime import timedelta

# systemathics modules, request/response types, shared types and helpers
import systemathics.apis.services.api_service_group.v1.some_service_pb2_grpc as some_service_grpc # stub
import systemathics.apis.services.api_service_group.v1.some_service_pb2 as some_service # service types
import systemathics.apis.type.shared.v1.some_shared_type as some_shared_type # shared types
import systemathics.apis.helpers.token_helpers as token_helpers
import systemathics.apis.helpers.channel_helpers as channel_helpers

try:
  # open a gRPC channel (notice the use of channel_helpers)
  with channel_helpers.get_grpc_channel() as channel:  
        
    # create stub for some_service
    stub = some_service_grpc.SomeServiceStub(channel)

    # create the request
    request = some_service.SomeServiceRequest(
      # request parameters here
    )

    # call the service (notice the use of token_helpers)
    response = stub.Request(request = request, metadata = token_helpers.get_token_as_metadata())

    # exploit the response
    print(response)

except grpc.RpcError as e:
  # error handling
  print(e.code().name)
  print(e.details())

// grpc and well known types
using Grpc.Core;
using Grpc.Net.Client;
using Google.Protobuf.WellKnownTypes;
using Google.Type;

// systemathics request/response types, shared types and helpers
using Systemathics.Apis.Services.SomeService.V1;
using Systemathics.Apis.Type.Shared.V1;
using Systemathics.Apis.Helpers;

try
{    
  // open a gRPC channel (notice the use of ChannelHelpers)
  using(var channel = ChannelHelpers.GetChannel())
  {   
      // create client stub for SomeService
      var client = new SomeService.SomeServiceClient(channel);

      // create request
      var request = new SomeServiceRequest 
                      { 
                          // request parameters here
                      };    

      // call the service (notice the use of TokenHelpers)           
      var response = client.SomeService(request, TokenHelpers.GetTokenAsMetaData());
      
      // Exploit response
      Console.WriteLine(response);
  }
}
catch (GrpcException ge)
{
  // Error handling
}

// grpc and well known types
open Grpc.Core
open Grpc.Net.Client
open Google.Protobuf.WellKnownTypes
open Google.Type

// systemathics request/response types, shared types and helpers
open Systemathics.Apis.Services.SomeService.V1
open Systemathics.Apis.Type.Shared.V1
open Systemathics.Apis.Helpers

try    
  // open a gRPC channel (notice the use of ChannelHelpers)
  use channel = ChannelHelpers.GetChannel()

  // create client stub for SomeService
  let client = SomeService.SomeServiceClient(channel)

  // create request
  let request = SomeServiceRequest( 
                          // request parameters here
                        )

  // call the service (notice the use of TokenHelpers)           
  let response = client.SomeService(request, TokenHelpers.GetTokenAsMetaData())
      
  // Exploit response
  printf $"{response}"
  
with 
  | ex -> printf $"got exception {ex}" // Error handling

Environment Variables


The following tables describe how environment variables are relevant in the context of Web hosted Jupyter Lab and in Remote Access.


When using Web hosted Jupyter Lab, everything is pre-populated for users behind the scenes.

Name Function Affects Remarks
GRPC_APIS Cloud internal URL of Ganymede API endpoint channel helpers Automatically set at logon
AUTH0_TOKEN JWT authorization token token helpers Automatically set at logon

When using Remote Access, the authentication token must be requested to auth0 using a REST API call. For that to happen, the user has to set at minimum client id and client secret (generated from dashboard in the tokens section).

Name Function Affects Remarks
GRPC_APIS URL of public Ganymede API endpoint channel helpers if not set, helpers use default https://grpc.ganymede.cloud
AUTH0_TOKEN JWT authorization token token helpers Requested using REST API call to auth0, then set
CLIENT_ID JWT token retrieval (mandatory) token helpers Must be generated from user's dashboard
CLIENT_SECRET JWT token retrieval (mandatory) token helpers Must be generated from user's dashboard
AUDIENCE JWT token retrieval (optional) token helpers Must be generated from user's dashboard
If not set, helpers use default value https://prod.ganymede-prod
TENANT JWT token retrieval (optional) token helpers Must be generated from user's dashboard
If not set, helpers use default value ganymede-prod.eu.auth0.com

Updates

Services

date

Represents a whole or partial calendar date, e.g. a birthday. The time of day and time zone are either specified elsewhere or are not significant.
The date is relative to the Proleptic Gregorian Calendar. This can represent:
- A full date, with non-zero year, month and day values
- A month and day value, with a zero year, e.g. an anniversary
- A year on its own, with zero month and day values
- A year and month value, with a zero day, e.g. a credit card expiration date
Related types are google.type.TimeOfDay and google.type.DayOfWeek.

Date Message

Contains the date.

Field Name
year
Field Description

Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year

Field Type
int32
Field is Repeated ?
No
Field Name
month
Field Description

Month of year. Must be from 1 to 12, or 0 if specifying a year without a month and day

Field Type
int32
Field is Repeated ?
No
Field Name
day
Field Description

Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year by itself or a year and month where the day is not significant.

Field Type
int32
Field is Repeated ?
No

dayofweek

Represents a day of week.

DayOfWeek Enum

Contains the day of week values.

Number Name
0 DAY_OF_WEEK_UNSPECIFIED
1 MONDAY
2 TUESDAY
3 WEDNESDAY
4 THURSDAY
5 FRIDAY
6 SATURDAY
7 SUNDAY

timeofday

Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds.
Related types are google.type.Date and google.type.DayOfWeek.

TimeOfDay Message

Field Name
hours
Field Description

Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value “24:00:00” for scenarios like business closing time.

Field Type
int32
Field is Repeated ?
No
Field Name
minutes
Field Description

Minutes of hour of day. Must be from 0 to 59.

Field Type
int32
Field is Repeated ?
No
Field Name
seconds
Field Description

Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.

Field Type
int32
Field is Repeated ?
No
Field Name
nanos
Field Description

Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.

Field Type
int32
Field is Repeated ?
No

changes

Up-to-date symbol changes annoucements including effective date, old and new symbols.

ChangesService Service

Called to request symbol changes data.

Name
Changes
Description
Gets symbol changes historical data
Packages
systemathics.apis.services.corporate_actions.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Change Message

Contains the symbol changes data: date, old and new symbols.

Field Name
date
Field Description

Effective date

Field Type
Date
Field is Repeated ?
No
Field Name
new_symbol
Field Description

New symbol

Field Type
string
Field is Repeated ?
No
Field Name
old_symbol
Field Description

Old symbol

Field Type
string
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

ChangesRequest Message

The required input to request the ChangesService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No

ChangesResponse Message

Represents a change response.

Field Name
data
Field Description

The changes: an array of symbol change objects

Field Type
Change
Field is Repeated ?
Yes

dividends

Up-to-date dividend annoucements including effective date, dividend type and amount.

DividendsService Service

Called to request dividends data.

Name
Dividends
Description
Gets dividends historical data
Packages
systemathics.apis.services.corporate_actions.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Dividend Message

Contains the dividends data: date, type and amount.

Field Name
date
Field Description

Effective payment date

Field Type
Date
Field is Repeated ?
No
Field Name
type
Field Description

Dividend type

Field Type
DividendType
Field is Repeated ?
No
Field Name
amount
Field Description

Dividend amount

Field Type
double
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

DividendsRequest Message

The required input to request the DividendsService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No

DividendsResponse Message

Represents a dividend response.

Field Name
data
Field Description

The dividends: an array of Dividend objects

Field Type
Dividend
Field is Repeated ?
Yes

DividendType Enum

Contains the dividend types.

Number Name
0 DIVIDEND_TYPE_UNSPECIFIED
1 DIVIDEND_TYPE_CASH
2 DIVIDEND_TYPE_STOCK

splits

Up-to-date split annoucements including effective date, old and new shares.

SplitsService Service

Called to request splits data.

Name
Splits
Description
Gets splits historical data
Packages
systemathics.apis.services.corporate_actions.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Split Message

Contains the splits data: date, old and new shares.

Field Name
date
Field Description

Effective date

Field Type
Date
Field is Repeated ?
No
Field Name
new_shares
Field Description

New shares

Field Type
double
Field is Repeated ?
No
Field Name
old_shares
Field Description

Old shares

Field Type
double
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

SplitsRequest Message

The required input to request the SplitsService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No

SplitsResponse Message

Represents a split response.

Field Name
data
Field Description

The splits: an array of Split objects

Field Type
Split
Field is Repeated ?
Yes

daily bars

Daily bars are widely used to illustrate price movements for an instrument over a look back period. Commonly used in financial analysis and trading strategies as a technical indicator.

DailyBarsService Service

Called to request daily bars data.

Name
DailyBars
Description
Gets daily historical data: date, open, high, low, close and volume
Packages
systemathics.apis.services.daily.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyBar Message

Contains the daily bar's data: date, open, high, low, close and volume.

Field Name
date
Field Description

Date of the bar

Field Type
Date
Field is Repeated ?
No
Field Name
open
Field Description

Open price of the day

Field Type
double
Field is Repeated ?
No
Field Name
high
Field Description

Highest price of the day

Field Type
double
Field is Repeated ?
No
Field Name
low
Field Description

Lowest price of the day

Field Type
double
Field is Repeated ?
No
Field Name
close
Field Description

Close price of the day

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the day

Field Type
int64
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

DailyBarsRequest Message

The required input to request the DailyBarsService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyBarsResponse Message

The daily bars response contains an array of daily bars.

Field Name
data
Field Description

The daily bars: an array of DailyBar objects

Field Type
DailyBar
Field is Repeated ?
Yes

daily prices

Daily prices illustrates daily price movements for an instrument over a look back period.

DailyPricesService Service

Called to request daily prices data.

Name
DailyPrices
Description
Gets daily historical prices
Packages
systemathics.apis.services.daily.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyPrice Message

Contains the daily prices data: date, price and volume.

Field Name
date
Field Description

Date of the price

Field Type
Date
Field is Repeated ?
No
Field Name
price
Field Description

Last price of the day

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the day

Field Type
int64
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

DailyPricesRequest Message

The required input to request the DailyPricesService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyPricesResponse Message

Represents a daily prices response.

Field Name
data
Field Description

The daily prices: an array of DailyPrice objects

Field Type
DailyPrice
Field is Repeated ?
Yes

daily vwap

The Volume Weighted Average Price is similar to a moving average, except volume is included to weight the average price over a one trading day period.
It serves as a reference point for one trading day prices. Comparing current prices with the VWAP values enables to:
- mesure trading efficiency by comparing individual trades to VWAP
- highlight liquidity points as vwap reflects prices levels weighted by volume
- determine the market trend, etc.

DailyVwapsService Service

Called to request daily VWAP data.

Name
DailyVwaps
Description
Gets daily historical VWAPs
Packages
systemathics.apis.services.daily.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyVwap Message

Contains the daily vwaps data: date, vwap and volume.

Field Name
date
Field Description

Date of the vwap

Field Type
Date
Field is Repeated ?
No
Field Name
price
Field Description

Vwap of the day

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the day

Field Type
int64
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

DailyVwapsRequest Message

The required input to request the DailyVwapsService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyVwapsResponse Message

Represents a daily VWAPs response.

Field Name
data
Field Description

The daily vwaps: an array of DailyVwap objects

Field Type
DailyVwap
Field is Repeated ?
Yes

daily bollinger

Bollinger bands were created by John Bollinger, they are envelopes and plotted around the moving average.
The width of the bands is based on the standard deviaton of the closing prices from a moving average as follows:
- Middle band = n-period moving average
- Upper band = Middle band + (k * n-period standard deviation)
- Lower band = Middle band - (k * n-period standard deviation)
Where n is the number of periods and k is factor to apply to the standard deviation value, k=2 as default value.

DailyBollingerService Service

Called to request daily Bollinger bands data.

Name
DailyBollinger
Description
Gets daily Bollinger bands data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyBollingerData Message

Contains the daily Bollinger bands data: date, lower, middle and upper.

Field Name
date
Field Description

Date of Bollinger bands

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the Bollinger bands of the day

Field Type
double
Field is Repeated ?
No
Field Name
lower
Field Description

Bollinger lower band value of the day
Lower band = Middle band - (k * n-period standard deviation)

Field Type
DoubleValue
Field is Repeated ?
No
Field Name
upper
Field Description

Bollinger upper band value of the day
Upper band = Middle band + (k * n-period standard deviation)

Field Type
DoubleValue
Field is Repeated ?
No
Field Name
middle
Field Description

Bollinger middle band value of the day
Middle band = n-period moving average

Field Type
DoubleValue
Field is Repeated ?
No

DailyBollingerRequest Message

The required input to request the DailyBollingerService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The simple moving average window length (period: data points number)

Field Type
int32
Field is Repeated ?
No
Field Name
deviation
Field Description

[Mandatory] The standard deviation window length

Field Type
double
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyBollingerResponse Message

The daily bars response contains an array of Bollinger bands.

Field Name
data
Field Description

The daily Bollinger bands: an array of DailyBollingerData objects

Field is Repeated ?
Yes

daily cma

Moving averages smooth the price movements by filtering out the “noise” caused by short-term price fluctuations.
They also form the building blocks for a wide range of technical indicators. Computing moving averages over a defined number of time periods is useful to:
- identify the trend direction
- determine support and resistance levels
CMA is the average of all the data points.

DailyCmaService Service

Called to request daily cumulative moving average data.

Name
DailyCma
Description
Gets daily cumulative moving average data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyCmaData Message

Contains the daily cumulative moving average data: date and value.

Field Name
date
Field Description

Date of the cumulative moving average

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The cumulative moving average value of the day for all the data points

Field Type
double
Field is Repeated ?
No

DailyCmaRequest Message

The required input to request the DailyCmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyCmaResponse Message

Represents a daily cumulative moving average response.

Field Name
data
Field Description

The daily cumulative moving averages: an array of DailyCmaData objects

Field Type
DailyCmaData
Field is Repeated ?
Yes

daily ema

EMA reduces the lag by applying greater weight to recent data points.
The weighting applied to the most recent price depends on the number of points in the moving average; The smaller the point count is, the more weight is applied to the most recent price.
N-points EMA data point is computed using the previous’ EMA value and the weighting multiplier as follows: \(EMA = (Close-EMAp)*k+EMAp\) Where:
- Close is the close price
- EMAp is the previous point’ EMA value; SMA is used as the EMAp in the first calculation
- N is the count of points
- k = 2 / N+1 is the Weighting Multiplier

DailyEmaService Service

Called to request daily exponential moving average data.

Name
DailyEma
Description
Gets daily exponential moving average data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyEmaData Message

Contains the daily exponential moving average data: date and value.

Field Name
date
Field Description

Date of the exponential moving average

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The exponential moving average value of the day

Field Type
double
Field is Repeated ?
No

DailyEmaRequest Message

The required input to request the DailyEmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The exponential moving average window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyEmaResponse Message

Represents a daily exponential moving average response.

Field Name
data
Field Description

The daily exponential moving averages: an array of DailyEmaData objects

Field Type
DailyEmaData
Field is Repeated ?
Yes

daily macd

Moving Average Convergence/Divergence Oscillator was developed by Gerald Appel and represents the difference between two moving averages of different lengths.
As its name implies, MACD is all about convergence and divergence of the two moving averages. MACD oscilaltes around the zero line as follows:
- positive values increase as the shorter moving average diverges further from the longer one
- negative values indicate that the shorter moving average is below the longer one

MACD is computed as follows: \(MACD = short EMA - long EMA\)

DailyMacdService Service

Called to request daily moving average convergence divergence data.

Name
DailyMacd
Description
Gets daily moving average convergence divergence data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyMacdData Message

Contains the daily moving average convergence/divergence data: date and value.

Field Name
date
Field Description

Date of the moving average convergence/divergence

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average convergence/divergence of the day

Field Type
double
Field is Repeated ?
No
Field Name
macd
Field Description

The moving average convergence/divergence value of the day

Field Type
double
Field is Repeated ?
No
Field Name
short
Field Description

The short exponential moving average value of the day

Field Type
double
Field is Repeated ?
No
Field Name
long
Field Description

The long exponential moving average value of the day

Field Type
double
Field is Repeated ?
No

DailyMacdRequest Message

The required input to request the DailyMacdService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
long
Field Description

[Mandatory] The long EMA window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
short
Field Description

[Mandatory] The short EMA window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyMacdResponse Message

Represents a daily moving average convergence divergence response.

Field Name
data
Field Description

The daily moving average convergence/divergence: an array of DailyMacdData objects

Field Type
DailyMacdData
Field is Repeated ?
Yes

daily rsi

The Relative Strength Index, developed by J. Welles Wilder measures the speed and change of price movements.
RSI oscillates between zero and 100. Traditionally the RSI is considered overbought when above 70 and oversold when below 30.

RSI is computed as follows: \(RSI = 100 - \frac{100}{1 + RS}\) Where:
- RS = AvgU/AvgD is the relative strength
- AvgU average of last N close prices up moves
- AvgD average of last N close prices down moves
- N is the period of the RSI

DailyRsiService Service

Called to request daily relative strength index data.

Name
DailyRsi
Description
Gets daily relative strength index data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyRsiData Message

Contains the daily relative strength index data: date and value.

Field Name
date
Field Description

Date of the relative strength index

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the relative strength index of the day

Field Type
double
Field is Repeated ?
No
Field Name
rsi
Field Description

Relative strength index value of the day

Field Type
double
Field is Repeated ?
No

DailyRsiRequest Message

The required input to request the DailyRsiService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The relative strength index window length (period: points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyRsiResponse Message

Represents a daily relative strength index response.

Field Name
data
Field Description

The daily relative strength index: an array of DailyRsiData objects

Field Type
DailyRsiData
Field is Repeated ?
Yes

daily sma

SMA is formed by computing the average price of a security over a specific number of points.
As its name implies, simple moving average is an average that moves. Old data is dropped and new data becomes available, causing the average to move along the time.
N-points SMA data point is computed by adding up the last N period’s trade prices and then dividing by N as follows: \(SMA = \frac{\Sigma Close_n}{N}\)
Where:
- Close n is the close price of the period n
- N is the count of time periods

DailySmaService Service

Called to request daily simple moving average data.

Name
DailySma
Description
Gets daily simple moving average data
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailySmaData Message

Contains the daily simple moving average data: date and value.

Field Name
date
Field Description

Date of the simple moving average

Field Type
Date
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The simple moving average value of the day for the last n data points (length)

Field Type
DoubleValue
Field is Repeated ?
No

DailySmaRequest Message

The required input to request the DailySmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The simple moving average window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailySmaResponse Message

Represents a daily simple moving average response.

Field Name
data
Field Description

The daily simple moving averages: an array of DailySmaData objects

Field Type
DailySmaData
Field is Repeated ?
Yes

daily volatility


N-points volatility is computed as follows: \(Volatility_N = \sqrt \frac{\sum_{i=1}^N(P_a - P_i)^2}{N}\)
Where:
- \(P_a\) is the average price of the N prices
- \(P_i\) is price i

DailyVolatilityService Service

Called to request daily volatility data.

Name
DailyVolatility
Description
Gets daily historical volatility
Packages
systemathics.apis.services.daily_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

DailyVolatilityRequest Message

The required input to request the DailyVolatilityService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends). By default the value is set to false : the split is applied in all cases

Field Type
bool
Field is Repeated ?
No

DailyVolatilityResponse Message

Represents a daily volatility response.

Field Name
value
Field Description

Volatility value

Field Type
double
Field is Repeated ?
No

components

Up-to-date index components weights

ComponentsService Service

Called to request index weights data.

Name
Components
Description
Gets index components data
Packages
systemathics.apis.services.indices.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Component Message

Contains the weight data for one component: identifier and weight value.

Field Name
identifier
Field Description

The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
weight
Field Description

The weight value

Field Type
double
Field is Repeated ?
No

ComponentsRequest Message

The required input to request the ComponentsService

Field Name
identifier
Field Description

[Mandatory] The index name

Field Type
string
Field is Repeated ?
No

ComponentsResponse Message

Represents a components response.

Field Name
components
Field Description

The index components: an array of component objects

Field Type
Component
Field is Repeated ?
Yes

intraday bars

Intraday bars are widely used to illustrate price movements for an instrument over a look back period. Commonly used in financial analysis and trading strategies as a technical indicator.

IntradayBarsService Service

Called to request intraday bars data.

Name
IntradayBars
Description
Gets intraday historical data: date, open, high, low, close and volume
Packages
systemathics.apis.services.intraday.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayBar Message

Contains the intraday bar's data: date, open, high, low, close, volume, count, vwap and score.

Field Name
time_stamp
Field Description

Time stamp of the intraday bar : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
open
Field Description

Open price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
high
Field Description

Highest price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
low
Field Description

Lowest price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
close
Field Description

Close price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the sampling period

Field Type
int64
Field is Repeated ?
No
Field Name
count
Field Description

Tick count of the sampling period

Field Type
int32
Field is Repeated ?
No
Field Name
vwap
Field Description

Volume weighted average price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

IntradayBarsRequest Message

The required input to request the IntradayBarsService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayBarsResponse Message

The intraday bars response contains an array of intraday bars.

Field Name
data
Field Description

The intraday bars: an array of IntradayBar objects

Field Type
IntradayBar
Field is Repeated ?
Yes

intraday prices

Intraday prices illustrates intraday price movements for an instrument over a look back period.

IntradayPricesService Service

Called to request intraday prices data.

Name
IntradayPrices
Description
Gets intraday historical prices
Packages
systemathics.apis.services.intraday.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayPrice Message

Contains the intraday prices data: date, price, volume and score.

Field Name
time_stamp
Field Description

Time stamp of the intraday price : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
price
Field Description

Last price of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the sampling period

Field Type
int64
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

IntradayPricesRequest Message

The required input to request the IntradayPricesService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayPricesResponse Message

Represents a intraday prices response.

Field Name
data
Field Description

The intraday prices: an array of IntradayPrice objects

Field Type
IntradayPrice
Field is Repeated ?
Yes

intraday vwap

The Volume Weighted Average Price is similar to a moving average, except volume is included to weight the average price over a one trading day period.
It serves as a reference point for one trading day prices. Comparing current prices with the VWAP values enables to:
- mesure trading efficiency by comparing individual trades to VWAP
- highlight liquidity points as vwap reflects prices levels weighted by volume
- determine the market trend, etc.

IntradayVwapsService Service

Called to request intraday VWAP data.

Name
IntradayVwaps
Description
Gets intraday historical VWAPs
Packages
systemathics.apis.services.intraday.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayVwap Message

Contains the intraday vwaps data: date, vwap and volume.

Field Name
time_stamp
Field Description

Time stamp of the intraday vwap : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
price
Field Description

Vwap of the sampling period

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the sampling period

Field Type
int64
Field is Repeated ?
No
Field Name
score
Field Description

The data quality scoring : from 0 (bad) to 100 (good)

Field Type
double
Field is Repeated ?
No

IntradayVwapsRequest Message

The required input to request the IntradayVwapsService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayVwapsResponse Message

Represents a intraday VWAPs response.

Field Name
data
Field Description

The intraday vwaps: an array of IntradayVwap objects

Field Type
IntradayVwap
Field is Repeated ?
Yes

intraday bollinger

Bollinger bands were created by John Bollinger, they are envelopes and plotted around the moving average.
The width of the bands is based on the standard deviaton of the closing prices from a moving average as follows:
- Middle band = n-period moving average
- Upper band = Middle band + (k * n-period standard deviation)
- Lower band = Middle band - (k * n-period standard deviation)
Where n is the number of periods and k is factor to apply to the standard deviation value, k=2 as default value.

IntradayBollingerService Service

Called to request intraday Bollinger bands data.

Name
IntradayBollinger
Description
Gets intraday Bollinger bands data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayBollingerData Message

Contains the intraday Bollinger bands data: date, lower, middle and upper.

Field Name
time_stamp
Field Description

Time stamp of Bollinger bands : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the Bollinger bands of the day

Field Type
double
Field is Repeated ?
No
Field Name
lower
Field Description

Bollinger lower band value of the day
Lower band = Middle band - (k * n-period standard deviation)

Field Type
DoubleValue
Field is Repeated ?
No
Field Name
upper
Field Description

Bollinger upper band value of the day
Upper band = Middle band + (k * n-period standard deviation)

Field Type
DoubleValue
Field is Repeated ?
No
Field Name
middle
Field Description

Bollinger middle band value of the day
Middle band = n-period moving average

Field Type
DoubleValue
Field is Repeated ?
No

IntradayBollingerRequest Message

The required input to request the IntradayBollingerService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The simple moving average window length (period: data points number)

Field Type
int32
Field is Repeated ?
No
Field Name
deviation
Field Description

[Mandatory] The standard deviation window length

Field Type
double
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayBollingerResponse Message

The intraday bars response contains an array of Bollinger bands.

Field Name
data
Field Description

The intraday Bollinger bands: an array of IntradayBollingerData objects

Field is Repeated ?
Yes

intraday cma

Moving averages smooth the price movements by filtering out the “noise” caused by short-term price fluctuations.
They also form the building blocks for a wide range of technical indicators. Computing moving averages over a defined number of time periods is useful to:
- identify the trend direction
- determine support and resistance levels
CMA is the average of all the data points.

IntradayCmaService Service

Called to request intraday cumulative moving average data.

Name
IntradayCma
Description
Gets intraday cumulative moving average data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayCmaData Message

Contains the intraday cumulative moving average data: date and value.

Field Name
time_stamp
Field Description

Time stamp of the cumulative moving average : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The cumulative moving average value of the day for all the data points

Field Type
double
Field is Repeated ?
No

IntradayCmaRequest Message

The required input to request the IntradayCmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayCmaResponse Message

Represents a intraday cumulative moving average response.

Field Name
data
Field Description

The intraday cumulative moving averages: an array of IntradayCmaData objects

Field is Repeated ?
Yes

intraday ema

EMA reduces the lag by applying greater weight to recent data points.
The weighting applied to the most recent price depends on the number of points in the moving average; The smaller the point count is, the more weight is applied to the most recent price.
N-points EMA data point is computed using the previous’ EMA value and the weighting multiplier as follows: \(EMA = (Close-EMAp)*k+EMAp\) Where:
- Close is the close price
- EMAp is the previous point’ EMA value; SMA is used as the EMAp in the first calculation
- N is the count of points
- k = 2 / N+1 is the Weighting Multiplier

IntradayEmaService Service

Called to request intraday exponential moving average data.

Name
IntradayEma
Description
Gets intraday exponential moving average data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayEmaData Message

Contains the intraday exponential moving average data: date and value.

Field Name
time_stamp
Field Description

Time stamp of the exponential moving average : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The exponential moving average value of the day

Field Type
double
Field is Repeated ?
No

IntradayEmaRequest Message

The required input to request the IntradayEmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The exponential moving average window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayEmaResponse Message

Represents a intraday exponential moving average response.

Field Name
data
Field Description

The intraday exponential moving averages: an array of IntradayEmaData objects

Field is Repeated ?
Yes

intraday macd

Moving Average Convergence/Divergence Oscillator was developed by Gerald Appel and represents the difference between two moving averages of different lengths.
As its name implies, MACD is all about convergence and divergence of the two moving averages. MACD oscilaltes around the zero line as follows:
- positive values increase as the shorter moving average diverges further from the longer one
- negative values indicate that the shorter moving average is below the longer one

MACD is computed as follows: \(MACD = short EMA - long EMA\)

IntradayMacdService Service

Called to request intraday moving average convergence divergence data.

Name
IntradayMacd
Description
Gets intraday moving average convergence divergence data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayMacdData Message

Contains the intraday moving average convergence/divergence data: date and value.

Field Name
time_stamp
Field Description

Time stamp of the moving average convergence/divergence : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average convergence/divergence of the day

Field Type
double
Field is Repeated ?
No
Field Name
macd
Field Description

The moving average convergence/divergence value of the day

Field Type
double
Field is Repeated ?
No
Field Name
short
Field Description

The short exponential moving average value of the day

Field Type
double
Field is Repeated ?
No
Field Name
long
Field Description

The long exponential moving average value of the day

Field Type
double
Field is Repeated ?
No

IntradayMacdRequest Message

The required input to request the IntradayMacdService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
long
Field Description

[Mandatory] The long EMA window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
short
Field Description

[Mandatory] The short EMA window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayMacdResponse Message

Represents a intraday moving average convergence divergence response.

Field Name
data
Field Description

The intraday moving average convergence/divergence: an array of IntradayMacdData objects

Field is Repeated ?
Yes

intraday rsi

The Relative Strength Index, developed by J. Welles Wilder measures the speed and change of price movements.
RSI oscillates between zero and 100. Traditionally the RSI is considered overbought when above 70 and oversold when below 30.

RSI is computed as follows: \(RSI = 100 - \frac{100}{1 + RS}\) Where:
- RS = AvgU/AvgD is the relative strength
- AvgU average of last N close prices up moves
- AvgD average of last N close prices down moves
- N is the period of the RSI

IntradayRsiService Service

Called to request intraday relative strength index data.

Name
IntradayRsi
Description
Gets intraday relative strength index data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayRsiData Message

Contains the intraday relative strength index data: date and value.

Field Name
time_stamp
Field Description

Time stamp of the relative strength index : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the relative strength index of the day

Field Type
double
Field is Repeated ?
No
Field Name
rsi
Field Description

Relative strength index value of the day

Field Type
double
Field is Repeated ?
No

IntradayRsiRequest Message

The required input to request the IntradayRsiService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The relative strength index window length (period: points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayRsiResponse Message

Represents a intraday relative strength index response.

Field Name
data
Field Description

The intraday relative strength index: an array of IntradayRsiData objects

Field is Repeated ?
Yes

intraday sma

SMA is formed by computing the average price of a security over a specific number of points.
As its name implies, simple moving average is an average that moves. Old data is dropped and new data becomes available, causing the average to move along the time.
N-points SMA data point is computed by adding up the last N period’s trade prices and then dividing by N as follows: \(SMA = \frac{\Sigma Close_n}{N}\)
Where:
- Close n is the close price of the period n
- N is the count of time periods

IntradaySmaService Service

Called to request intraday simple moving average data.

Name
IntradaySma
Description
Gets intraday simple moving average data
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradaySmaData Message

Contains the intraday simple moving average data: date and value.

Field Name
time_stamp
Field Description

Time stamp of the simple moving average : open time of the sampling interval

Field Type
Timestamp
Field is Repeated ?
No
Field Name
value
Field Description

The data used to calculate the average of the day

Field Type
double
Field is Repeated ?
No
Field Name
average
Field Description

The simple moving average value of the day for the last n data points (length)

Field Type
DoubleValue
Field is Repeated ?
No

IntradaySmaRequest Message

The required input to request the IntradaySmaService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
length
Field Description

[Mandatory] The simple moving average window length (period : points number)

Field Type
int32
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradaySmaResponse Message

Represents a intraday simple moving average response.

Field Name
data
Field Description

The intraday simple moving averages: an array of IntradaySmaData objects

Field is Repeated ?
Yes

intraday volatility


N-points volatility is computed as follows: \(Volatility_N = \sqrt \frac{\sum_{i=1}^N(P_a - P_i)^2}{N}\)
Where:
- \(P_a\) is the average price of the N prices
- \(P_i\) is price i

IntradayVolatilityService Service

Called to request intraday volatility data.

Name
IntradayVolatility
Description
Gets intraday historical volatility
Packages
systemathics.apis.services.intraday_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
No

IntradayVolatilityRequest Message

The required input to request the IntradayVolatilityService

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The sampling interval

Field Type
Sampling
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment (dividends and splits). By default the value is set to false

Field Type
bool
Field is Repeated ?
No

IntradayVolatilityResponse Message

Represents a intraday volatility response.

Field Name
value
Field Description

Volatility value

Field Type
double
Field is Repeated ?
No

static data

Reference data encompasses a wide range of specification data about:
- financial instrument such as asset class, symbol, maturity, etc.
- counterparties such as issuer information.
- pricing such as open, high low and close prices.
- The challenge with reference data is that it tends to be sourced from multiple sources: internal, counterparties and providers.
- Reference data dedicated service is a result of various data sources and fields sourcing, validation, cross-checking and normalization.

StaticDataService Service

Called to request reference data.

Name
StaticData
Description
Gets reference data
Packages
systemathics.apis.services.static_data.v1
systemathics.apis.type.shared.v1
Output Streaming
No

EquityEntry Message

Contains the reference data for equities.

Field Name
identifier
Field Description

Identifiers: asset identifier

Field Type
Identifier
Field is Repeated ?
No
Field Name
type
Field Description

General information: asset class

Field Type
string
Field is Repeated ?
No
Field Name
country
Field Description

General information: asset country code (ISO 3166)

Field Type
string
Field is Repeated ?
No
Field Name
name
Field Description

General information: asset full name

Field Type
string
Field is Repeated ?
No
Field Name
currency
Field Description

General information: asset currency code (ISO 4217)

Field Type
string
Field is Repeated ?
No
Field Name
primary
Field Description

General information: asset primary exchange code (mic)

Field Type
string
Field is Repeated ?
No
Field Name
tick_size_rule
Field Description

General information: asset tick size rule table

Field Type
string
Field is Repeated ?
No
Field Name
mapping
Field Description

General information: asset mapping codes

Field Type
MappingEntry
Field is Repeated ?
Yes
Field Name
index
Field Description

General information: asset index if it belongs to an index

Field Type
string
Field is Repeated ?
No
Field Name
open
Field Description

Trading hours: open time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
close
Field Description

Trading hours: close time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
time_zone
Field Description

Trading hours: time zone

Field Type
string
Field is Repeated ?
No
Field Name
lot_size
Field Description

Specifications: lot size (minimum quantity to trade)

Field Type
int64
Field is Repeated ?
No
Field Name
point_value
Field Description

Specifications: point value

Field Type
double
Field is Repeated ?
No
Field Name
isin
Field Description

Specific values for the equity: isin code (International Securities Identifying Number)

Field Type
string
Field is Repeated ?
No
Field Name
cusip
Field Description

Specific values for the equity: cusip code : Committee on Uniform Security Identification Procedures

Field Type
string
Field is Repeated ?
No
Field Name
sedol
Field Description

Specific values for the equity: sedol code : Stock Exchange Daily Official List

Field Type
string
Field is Repeated ?
No
Field Name
sectors
Field Description

Specific values for the equity: sectors definitions

Field Type
SectorsEntry
Field is Repeated ?
Yes
Field Name
capitalization
Field Description

Specific values for the equity: market capitalization

Field Type
DoubleValue
Field is Repeated ?
No

MappingEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

SectorsEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

EtfEntry Message

Contains the reference data for exchange traded fund (ETF).

Field Name
identifier
Field Description

Identifiers: asset identifier

Field Type
Identifier
Field is Repeated ?
No
Field Name
type
Field Description

General information: asset class

Field Type
string
Field is Repeated ?
No
Field Name
country
Field Description

General information: asset country code (ISO 3166)

Field Type
string
Field is Repeated ?
No
Field Name
name
Field Description

General information: asset full name

Field Type
string
Field is Repeated ?
No
Field Name
currency
Field Description

General information: asset currency code (ISO 4217)

Field Type
string
Field is Repeated ?
No
Field Name
primary
Field Description

General information: asset primary exchange code (mic)

Field Type
string
Field is Repeated ?
No
Field Name
tick_size_rule
Field Description

General information: asset tick size rule table

Field Type
string
Field is Repeated ?
No
Field Name
mapping
Field Description

General information: asset mapping codes

Field Type
MappingEntry
Field is Repeated ?
Yes
Field Name
index
Field Description

General information: asset index if it belongs to an index

Field Type
string
Field is Repeated ?
No
Field Name
open
Field Description

Trading hours: open time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
close
Field Description

Trading hours: close time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
time_zone
Field Description

Trading hours: time zone

Field Type
string
Field is Repeated ?
No
Field Name
lot_size
Field Description

Specifications: lot size (minimum quantity to trade)

Field Type
int64
Field is Repeated ?
No
Field Name
point_value
Field Description

Specifications: point value

Field Type
double
Field is Repeated ?
No
Field Name
isin
Field Description

Specific values for the equity: isin code (International Securities Identifying Number)

Field Type
string
Field is Repeated ?
No
Field Name
cusip
Field Description

Specific values for the equity: cusip code : Committee on Uniform Security Identification Procedures

Field Type
string
Field is Repeated ?
No
Field Name
sedol
Field Description

Specific values for the equity: sedol code : Stock Exchange Daily Official List

Field Type
string
Field is Repeated ?
No
Field Name
sectors
Field Description

Specific values for the equity: sectors definitions

Field Type
SectorsEntry
Field is Repeated ?
Yes
Field Name
capitalization
Field Description

Specific values for the equity: market capitalization

Field Type
DoubleValue
Field is Repeated ?
No

MappingEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

SectorsEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

FutureEntry Message

Contains the reference data for futures.

Field Name
identifier
Field Description

Identifiers: asset identifier

Field Type
Identifier
Field is Repeated ?
No
Field Name
type
Field Description

General information: asset class

Field Type
string
Field is Repeated ?
No
Field Name
country
Field Description

General information: asset country code (ISO 3166)

Field Type
string
Field is Repeated ?
No
Field Name
name
Field Description

General information: asset full name

Field Type
string
Field is Repeated ?
No
Field Name
currency
Field Description

General information: asset currency code (ISO 4217)

Field Type
string
Field is Repeated ?
No
Field Name
primary
Field Description

General information: asset primary exchange code (mic)

Field Type
string
Field is Repeated ?
No
Field Name
tick_size_rule
Field Description

General information: asset tick size rule table

Field Type
string
Field is Repeated ?
No
Field Name
mapping
Field Description

General information: asset mapping codes

Field Type
MappingEntry
Field is Repeated ?
Yes
Field Name
index
Field Description

General information: asset index if it belongs to an index

Field Type
string
Field is Repeated ?
No
Field Name
open
Field Description

Trading hours: open time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
close
Field Description

Trading hours: close time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
time_zone
Field Description

Trading hours: time zone

Field Type
string
Field is Repeated ?
No
Field Name
lot_size
Field Description

Specifications: lot size (minimum quantity to trade)

Field Type
int64
Field is Repeated ?
No
Field Name
point_value
Field Description

Specifications: point value

Field Type
double
Field is Repeated ?
No
Field Name
underlying
Field Description

Specific values for the future: underlying asset code

Field Type
string
Field is Repeated ?
No
Field Name
contract
Field Description

Specific values for the future: contract code

Field Type
string
Field is Repeated ?
No
Field Name
category
Field Description

Specific values for the future: category

Field Type
CategoryEntry
Field is Repeated ?
Yes
Field Name
chain
Field Description

Specific values for the future: chain

Field Type
string
Field is Repeated ?
No
Field Name
maturity
Field Description

Specific values for the future: maturity date

Field Type
Date
Field is Repeated ?
No
Field Name
month
Field Description

Specific values for the future: month code

Field Type
string
Field is Repeated ?
No
Field Name
year
Field Description

Specific values for the future: year

Field Type
int32
Field is Repeated ?
No

CategoryEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

MappingEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

IndexEntry Message

Contains the reference data for indices.

Field Name
identifier
Field Description

Identifiers: asset identifier

Field Type
Identifier
Field is Repeated ?
No
Field Name
type
Field Description

General information: asset class

Field Type
string
Field is Repeated ?
No
Field Name
country
Field Description

General information: asset country code (ISO 3166)

Field Type
string
Field is Repeated ?
No
Field Name
name
Field Description

General information: asset full name

Field Type
string
Field is Repeated ?
No
Field Name
currency
Field Description

General information: asset currency code (ISO 4217)

Field Type
string
Field is Repeated ?
No
Field Name
primary
Field Description

General information: asset primary exchange code (mic)

Field Type
string
Field is Repeated ?
No
Field Name
tick_size_rule
Field Description

General information: asset tick size rule table

Field Type
string
Field is Repeated ?
No
Field Name
mapping
Field Description

General information: asset mapping codes

Field Type
MappingEntry
Field is Repeated ?
Yes
Field Name
index
Field Description

General information: asset index if it belongs to an index

Field Type
string
Field is Repeated ?
No
Field Name
open
Field Description

Trading hours: open time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
close
Field Description

Trading hours: close time (continuous trading)

Field Type
string
Field is Repeated ?
No
Field Name
time_zone
Field Description

Trading hours: time zone

Field Type
string
Field is Repeated ?
No
Field Name
lot_size
Field Description

Specifications: lot size (minimum quantity to trade)

Field Type
int64
Field is Repeated ?
No
Field Name
point_value
Field Description

Specifications: point value

Field Type
double
Field is Repeated ?
No
Field Name
description
Field Description

Specific values for the index: the description of the index

Field Type
string
Field is Repeated ?
No

MappingEntry Message

Field Name
key
Field Description
Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description
Field Type
string
Field is Repeated ?
No

StaticDataRequest Message

The required input to request the StaticDataService.

Field Name
asset_type
Field Description

[Optional] Asset type

Field Type
AssetType
Field is Repeated ?
No
Field Name
name
Field Description

[Optional] Asset name

Field Type
StringValue
Field is Repeated ?
No
Field Name
exchange
Field Description

[Optional] Asset exchange (mic code)

Field Type
StringValue
Field is Repeated ?
No
Field Name
ticker
Field Description

[Optional] Asset ticker (code as provided by the exchange)

Field Type
StringValue
Field is Repeated ?
No
Field Name
future_contract
Field Description

[Optional] Future contract code

Field Type
StringValue
Field is Repeated ?
No
Field Name
future_category
Field Description

[Optional] Future category

Field Type
StringValue
Field is Repeated ?
No
Field Name
equity_sector
Field Description

[Optional] Equity sector

Field Type
StringValue
Field is Repeated ?
No
Field Name
index
Field Description

[Optional] Index if the asset belongs to an index components

Field Type
StringValue
Field is Repeated ?
No
Field Name
code
Field Description

[Optional] Mapping codes: isin, cusip, sedol, ric, figi, etc.

Field Type
StringValue
Field is Repeated ?
No
Field Name
start
Field Description

[Optional] Define the first element index to be retrieved

Field Type
Int32Value
Field is Repeated ?
No
Field Name
count
Field Description

[Optional] Select the first elements retrieved, by default count is set to 100

Field Type
Int32Value
Field is Repeated ?
No

StaticDataResponse Message

Represents a reference data response grouped by asset type.

Field Name
futures
Field Description

The reference data for futures: an array of FutureEntry objects

Field Type
FutureEntry
Field is Repeated ?
Yes
Field Name
equities
Field Description

The reference data for equities: an array of EquityEntry objects

Field Type
EquityEntry
Field is Repeated ?
Yes
Field Name
etfs
Field Description

The reference data for etfs: an array of EtfEntry objects

Field Type
EtfEntry
Field is Repeated ?
Yes
Field Name
indices
Field Description

The reference data for indices: an array of IndexEntry objects

Field Type
IndexEntry
Field is Repeated ?
Yes

AssetType Enum

Contains the asset type for the reference data request.

Number Name
0 ASSET_TYPE_UNSPECIFIED
1 ASSET_TYPE_ALL
2 ASSET_TYPE_EQUITY
3 ASSET_TYPE_FUTURE
4 ASSET_TYPE_ETF
5 ASSET_TYPE_INDEX

static sector

The sector and industry classification decoder.
Available classifications :
- ICB : Industry Classification Benchmark is a comprehensive and rules based, transparent classification methodology based on research and market trends designed to support investment solutions. It was launched in 2005 and enhanced in 2019 with the integration of the Russell Global Sectors (RGS) classification scheme and additional structural enhancements.
- SIC : The Standard Industrial Classification is a system for classifying industries by a four-digit code. Established in the United States in 1937, it is used by government agencies to classify industry areas. The SIC system is also used by agencies in other countries, e.g., by the United Kingdom’s Companies House.
- TRBC : The Refinitiv Business Classification is an industry classification of global companies. It was developed by the Reuters Group under the name Reuters Business Sector Scheme (RBSS), was rebranded to Thomson Reuters Business Classification (TRBC) when the Thomson Corporation acquired the Reuters Group in 2008, forming Thomson Reuters, and was rebranded again, to The Refinitiv Business Classification (TRBC), in 2020. Since the creation of Refinitiv in October 2018, TRBC has been owned and operated by Refinitiv and is the basis for Refinitiv Indices.
- GICS : In 1999, MSCI and S&P Dow Jones Indices developed the Global Industry Classification Standard, seeking to offer an efficient investment tool to capture the breadth, depth and evolution of industry sectors.GICS is a four-tiered, hierarchical industry classification system. Companies are classified quantitatively and qualitatively.Each company is assigned a single GICS classification at the Sub-Industry level according to its principal business activity. MSCI and S&P Dow Jones Indices use revenues as a key factor in determining a firm�s principal business activity. Earnings and market perception, however, are also recognized as important and relevant information for classification purposes, and are taken into account during the annual review process.

StaticSectorService Service

Called to request static sector and industry classification data.

Name
StaticSector
Description
Gets static sector and industry data
Packages
systemathics.apis.services.static_data.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Level Message

Contains the sector classification structure at a specified level.

Field Name
name
Field Description

The sector classification level’s name

Field Type
string
Field is Repeated ?
No
Field Name
index
Field Description

The sector classification level’s index (order of the strcture)

Field Type
int32
Field is Repeated ?
No
Field Name
code
Field Description

The sector classification level’s code

Field Type
string
Field is Repeated ?
No
Field Name
definition
Field Description

The sector classification level’s definition

Field Type
string
Field is Repeated ?
No
Field Name
label
Field Description

The sector classification level’s label

Field Type
string
Field is Repeated ?
No

StaticSectorRequest Message

The required inputs to request the StaticSectorService.

Field Name
provider
Field Description

[Mandatory] The classification provider or taxonomy
Available classifications : ICB, SIC, TRBC and GICS

Field Type
string
Field is Repeated ?
No
Field Name
code
Field Description

[Mandatory] The classification code

Field Type
string
Field is Repeated ?
No
Field Name
level
Field Description

[Mandatory] The classification level (strating from 0 : the top structure or group)

Field Type
int32
Field is Repeated ?
No

StaticSectorResponse Message

Represents a sector classifcation response.

Field Name
data
Field Description

The sector classification levels: an array of Level objects

Field Type
Level
Field is Repeated ?
Yes
Field Name
description
Field Description

The classification description

Field Type
string
Field is Repeated ?
No
Field Name
count
Field Description

The classification levels count

Field Type
int32
Field is Repeated ?
No

sustainability

The sustainability provides Environmental, Social, and Corporate Governance data.

SustainabilityService Service

Called to request sustainability data.

Name
Sustainability
Description
Gets sustainability data
Packages
systemathics.apis.services.sustainability.v1
systemathics.apis.type.shared.v1
Output Streaming
No

Sustainability Message

Contains the sustainabilitys's data.

Field Name
provider
Field Description

The sustainability provider

Field Type
string
Field is Repeated ?
No
Field Name
name
Field Description

The sustainability name or label

Field Type
string
Field is Repeated ?
No
Field Name
id
Field Description

The sustainability identifier

Field Type
string
Field is Repeated ?
No
Field Name
parent
Field Description

The sustainability parent identifier

Field Type
string
Field is Repeated ?
No
Field Name
value
Field Description

The sustainability value

Field Type
double
Field is Repeated ?
No
Field Name
min
Field Description

The sustainability minimum value

Field Type
double
Field is Repeated ?
No
Field Name
max
Field Description

The sustainability maximum value

Field Type
double
Field is Repeated ?
No
Field Name
description
Field Description

The sustainability description

Field Type
string
Field is Repeated ?
No

SustainabilityRequest Message

The required inputs to request the SustainabilityService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No

SustainabilityResponse Message

Represents a sustainability response.

Field Name
data
Field Description

The sustainabilities: an array of sustainability objects

Field Type
Sustainability
Field is Repeated ?
Yes

tick book

Normalized tick by tick Market Book by Price (MBP) also known as Market Book by Limit (MBL), is the price-based data of the book.
MBL restricts updates to a maximum of specified depth price levels and consolidates all the quantity (size) into a single update for each price level, which includes the total quantity (size).

TickBookService Service

Called to request tick by tick normalized book data.

Name
TickBook
Description
Get tick by tick normalized historical book
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickBookRequest Message

The required inputs to request the TickBookService.

Field Name
identifiers
Field Description

[Mandatory] The instrument identifiers: a list of tickers and exchanges

Field Type
Identifier
Field is Repeated ?
Yes
Field Name
book_updates
Field Description

[Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates)

Field Type
BookUpdates
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No
Field Name
max_depth
Field Description

[Optional] The maximum number of depth, if not set use the default (10).

Field Type
Int32Value
Field is Repeated ?
No
Field Name
contributors
Field Description

[Optional] The contributors: get the quotes foreach depth, by default the value is set to false

Field Type
bool
Field is Repeated ?
No

TickBookResponse Message

Contains the tick by tick normalized book : data or mapping.

Field Name
data
Field Description

The limit data

Field Type
BookData
Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick quotes

Normalized tick by tick Market By Order (MBO):
-The MBO describes an order-based (or quote-based) data feed that provides the ability to view individual queue position, the full order book (all the depths) and the details of each individual order or quote at each price level.

TickQuotesService Service

Called to request tick by tick normalized quotes data (MBO).

Name
TickQuotes
Description
Get tick by tick normalized quotes
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickQuotesRequest Message

The required inputs to request the TickQuotesService.

Field Name
identifiers
Field Description

[Mandatory] The instrument identifiers: a list of tickers and exchanges

Field Type
Identifier
Field is Repeated ?
Yes
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No

TickQuotesResponse Message

Contains the tick by tick normalized quotes: key and data

Field Name
data
Field Description

The quotes data

Field Type
QuotesData
Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick raw

Raw tick by tick data is the primary data delivred by a specific data provider (exchange, third party, partner, in-house …) and has not been processed or normalized yet.
Raw data can be useful to:
- Audit provider raw data reception and completion
- Compare provider’s data formats
- Compare raw provider’s format data to normalized (processsed) data

TickRawService Service

Called to request tick by tick raw data.

Name
TickRaw
Description
Gets tick by tick raw data.
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickRawRequest Message

The required inputs to request the TickRawService.

Field Name
identifiers
Field Description

[Mandatory] The instruments and streams identifiers: a list of tickers, exchanges and streams.

Field is Repeated ?
Yes
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No

TickRawResponse Message

Represents the raw data response.

Field Name
raw
Field Description

The raw data

Field Type
Raw
Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick trades and book

Normalized tick by tick data extraction for a given watchlist and a specific look-back period. This can be useful to:
- Get specific historical dataset such as trades, top of book data…
- Compute analytics on the top of preselected tick by tick data dataset
- Feed best execution reports for a given watchlist over the time

TickTradesAndBookService Service

Called to request tick by tick normalized trades and book historical data.

Name
TickTradesAndBook
Description
Get tick by tick normalized trades and book historical
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickTradesAndBookRequest Message

The required inputs to request the TickTradesAndBookService.

Field Name
identifiers
Field Description

[Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams

Field is Repeated ?
Yes
Field Name
book_updates
Field Description

[Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates)

Field Type
BookUpdates
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No
Field Name
max_depth
Field Description

[Optional] The maximum number of depth, if not set use the default (10).

Field Type
Int32Value
Field is Repeated ?
No
Field Name
contributors
Field Description

[Optional] The contributors: get the quotes foreach depth, by default the value is set to false

Field Type
bool
Field is Repeated ?
No

TickTradesAndBookResponse Message

Contains the tick by tick normalized trades data: key, time stamp, price, size, condition.

Field Name
data
Field Description

The trade and book data

Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick trades

Normalized tick by tick trades extraction for a given watchlist and a specific look-back period. This can be useful to:
- Get specific historical dataset such as trades, top of book data…
- Compute analytics on the top of preselected tick by tick data dataset
- Feed best execution reports for a given watchlist over the time

TickTradesService Service

Called to request tick by tick normalized trades historical data.

Name
TickTrades
Description
Get tick by tick normalized trades historical Trades
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickTradesRequest Message

The required inputs to request the TickTradesService.

Field Name
identifiers
Field Description

[Mandatory] The instrument identifiers: a list of tickers and exchanges

Field Type
Identifier
Field is Repeated ?
Yes
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No

TickTradesResponse Message

Contains the tick by tick normalized trades data: key, time stamp, price, size, condition.

Field Name
data
Field Description

The trade data

Field Type
TradeData
Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick updates

Normalized tick by tick data updates:
- Fields : open, close, trade, high …
- MBL : Market Book by Limit (contains the depth information)
- MBO : Market Book by Order (contains the quotes or order details)

TickUpdatesService Service

Called to request tick by tick normalized historical data.

Name
TickUpdates
Description
Get tick by tick normalized historical Updates
Packages
systemathics.apis.services.tick.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickUpdatesRequest Message

The required inputs to request the TickUpdatesService.

Field Name
identifiers
Field Description

[Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams

Field is Repeated ?
Yes
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No

TickUpdatesResponse Message

Contains the tick by tick normalized historical data.

Field Name
fields_updates
Field Description

The fields update

Field is Repeated ?
No
Field Name
mbl_book_updates
Field Description

The MBL books update

Field is Repeated ?
No
Field Name
mbo_book_updates
Field Description

The MBO books update

Field is Repeated ?
No
Field Name
mapping
Field Description

The mapping data

Field Type
Keys
Field is Repeated ?
No

tick bars

Tick bars are widely used to illustrate price movements for an instrument over a look back period. Commonly used in financial analysis and trading strategies as a technical indicator.

TickBarsService Service

Called to request tick by tick bars data.

Name
TickBars
Description
Gets tick by tick bars data
Packages
systemathics.apis.services.tick_analytics.v1
systemathics.apis.type.shared.v1
Output Streaming
Yes

TickBarsRequest Message

The required inputs to request the TickBarService.

Field Name
identifier
Field Description

[Mandatory] The instrument identifier: a ticker and exchange

Field Type
Identifier
Field is Repeated ?
No
Field Name
constraints
Field Description

[Optional] The time constraints used to define the look-back period. If empty, then all the available data is retrieved.

Field Type
Constraints
Field is Repeated ?
No
Field Name
field
Field Description

[Optional] The price used to calculate the bar

Field Type
BarPrice
Field is Repeated ?
No
Field Name
sampling
Field Description

[Mandatory] The duration of the bar

Field Type
Duration
Field is Repeated ?
No
Field Name
period
Field Description

[Optional] The period of the bars, by default the period is set to one day

Field Type
Duration
Field is Repeated ?
No
Field Name
offset
Field Description

[Optional] The offset time when the bars is reset, by default the offset is set to 00:00:00

Field Type
Duration
Field is Repeated ?
No
Field Name
adjustment
Field Description

[Optional] The corporate action adjustment, by default the value is set to false

Field Type
bool
Field is Repeated ?
No
Field Name
accept
Field Description

[Optional] Accept trading / quote conditions, by default the accept is set to null : accept all

Field Type
string
Field is Repeated ?
Yes
Field Name
reject
Field Description

[Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject

Field Type
string
Field is Repeated ?
Yes

TickBarsResponse Message

Contains the tick bar's data: time, open, high, low, close, volume, count and vwap.

Field Name
time_stamp
Field Description

The time stamp

Field Type
Timestamp
Field is Repeated ?
No
Field Name
open
Field Description

Open price of the current bar

Field Type
double
Field is Repeated ?
No
Field Name
high
Field Description

Highest price of the current bar

Field Type
double
Field is Repeated ?
No
Field Name
low
Field Description

Lowest price of the current bar

Field Type
double
Field is Repeated ?
No
Field Name
close
Field Description

Close price of the current bar

Field Type
double
Field is Repeated ?
No
Field Name
volume
Field Description

Total traded volume of the current bar

Field Type
int64
Field is Repeated ?
No
Field Name
count
Field Description

Tick count of the current bar

Field Type
int32
Field is Repeated ?
No
Field Name
vwap
Field Description

Volume weighted average price of the current bar

Field Type
double
Field is Repeated ?
No

BarPrice Enum

The price types used to compute the bars

Number Name
0 BAR_PRICE_UNSPECIFIED
1 BAR_PRICE_TRADE
2 BAR_PRICE_BID
3 BAR_PRICE_ASK

tick bollinger

Bollinger bands were created by John Bollinger, they are envelopes and plotted around the moving average.
The width of the bands is based on the standard deviaton of the closing prices from a moving average as follows:
- Middle band = n-period moving average
- Upper band = Middle band + (k * n-period standard deviation)
- Lower band = Middle band - (k * n-period standard deviation)
Where n is the number of periods and k is factor to apply to the standard deviation value, k=2 as default value.

TickBollingerService Service

Called to request tick by tick Bollinger bands data.