From aa11c6865bba4725367e58f3e8f8e77ceb40c313 Mon Sep 17 00:00:00 2001 From: Build System Date: Fri, 12 Jul 2024 07:10:54 +0000 Subject: [PATCH] 'Protobuf files change' --- .../services/daily/v1/daily_market_data.proto | 217 ++++++++++++++++++ .../apis/services/indices/v1/components.proto | 66 ------ .../services/intraday/v1/intraday_bars.proto | 102 -------- .../intraday/v1/intraday_prices.proto | 86 ------- .../services/intraday/v1/intraday_vwap.proto | 90 -------- .../v1/intraday_bollinger.proto | 104 --------- .../intraday_analytics/v1/intraday_cma.proto | 81 ------- .../intraday_analytics/v1/intraday_ema.proto | 92 -------- .../intraday_analytics/v1/intraday_macd.proto | 99 -------- .../intraday_analytics/v1/intraday_rsi.proto | 92 -------- .../intraday_analytics/v1/intraday_sma.proto | 92 -------- .../v1/intraday_volatility.proto | 71 ------ .../apis/services/static_data/v1/sector.proto | 2 +- .../services/static_data/v1/static_data.proto | 94 +++++--- .../sustainability/v1/sustainability.proto | 82 ------- .../apis/services/tick/v1/tick_book.proto | 82 ------- .../apis/services/tick/v1/tick_quotes.proto | 71 ------ .../apis/services/tick/v1/tick_raw.proto | 71 ------ .../apis/services/tick/v1/tick_trades.proto | 73 ------ .../tick/v1/tick_trades_and_book.proto | 84 ------- .../apis/services/tick/v1/tick_updates.proto | 82 ------- .../tick_analytics/v1/tick_bars.proto | 118 ---------- .../tick_analytics/v1/tick_bollinger.proto | 124 ---------- .../services/tick_analytics/v1/tick_cma.proto | 107 --------- .../services/tick_analytics/v1/tick_ema.proto | 113 --------- .../tick_analytics/v1/tick_priips.proto | 199 ---------------- .../tick_analytics/v1/tick_priips_batch.proto | 81 ------- .../services/tick_analytics/v1/tick_sma.proto | 112 --------- .../tick_analytics/v1/tick_spread.proto | 119 ---------- .../v1/tick_trade_condition_statistics.proto | 76 ------ .../v1/tick_trade_conditions.proto | 104 --------- .../tick_analytics/v1/tick_vwap.proto | 93 -------- .../tick_conditions/v1/tick_conditions.proto | 57 ----- .../services/topology/v1/topologies.proto | 100 -------- .../apis/services/v1/artifacts.proto | 43 ---- 35 files changed, 276 insertions(+), 3003 deletions(-) create mode 100644 src/systemathics/apis/services/daily/v1/daily_market_data.proto delete mode 100644 src/systemathics/apis/services/indices/v1/components.proto delete mode 100644 src/systemathics/apis/services/intraday/v1/intraday_bars.proto delete mode 100644 src/systemathics/apis/services/intraday/v1/intraday_prices.proto delete mode 100644 src/systemathics/apis/services/intraday/v1/intraday_vwap.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_bollinger.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_cma.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_ema.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_macd.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_rsi.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_sma.proto delete mode 100644 src/systemathics/apis/services/intraday_analytics/v1/intraday_volatility.proto delete mode 100644 src/systemathics/apis/services/sustainability/v1/sustainability.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_book.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_quotes.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_raw.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_trades.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_trades_and_book.proto delete mode 100644 src/systemathics/apis/services/tick/v1/tick_updates.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_bars.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_bollinger.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_cma.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_ema.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_priips.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_priips_batch.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_sma.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_spread.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_trade_condition_statistics.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_trade_conditions.proto delete mode 100644 src/systemathics/apis/services/tick_analytics/v1/tick_vwap.proto delete mode 100644 src/systemathics/apis/services/tick_conditions/v1/tick_conditions.proto delete mode 100644 src/systemathics/apis/services/topology/v1/topologies.proto delete mode 100644 src/systemathics/apis/services/v1/artifacts.proto diff --git a/src/systemathics/apis/services/daily/v1/daily_market_data.proto b/src/systemathics/apis/services/daily/v1/daily_market_data.proto new file mode 100644 index 0000000..1fd63bf --- /dev/null +++ b/src/systemathics/apis/services/daily/v1/daily_market_data.proto @@ -0,0 +1,217 @@ +// Copyright (c) 2021 Systemathics +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// This service provides access to an daily marketdata market data service, +// enabling users to retrieve historical market data for various financial instruments. +// MarketData represents a comprehensive aggregation of all pertinent market information, +// encompassing various data points such as bar data, best limit data, Greeks, and more. +syntax = "proto3"; + + +import "google/api/annotations.proto"; +import "google/type/date.proto"; + +import "systemathics/apis/type/shared/v1/identifier.proto"; +import "systemathics/apis/type/shared/v1/date_interval.proto"; + +package systemathics.apis.services.daily.v1; + +// Called to request daily MarketData data. +service DailyMarketDataService +{ + // Gets daily historical marketdata + rpc DailyMarketData(DailyMarketDataRequest) returns (DailyMarketDataResponse) + { + option (google.api.http) = { + get: "/v1/daily/marketdata" + }; + } +} + +// The required input to request the DailyMarketDataService +message DailyMarketDataRequest +{ + // [Mandatory] The instrument identifier: a ticker and exchange + systemathics.apis.type.shared.v1.Identifier identifier = 1; + + // [Optional] The date interval used to define the look-back period. + // If empty, then all the available data is retrieved. + systemathics.apis.type.shared.v1.DateInterval date_interval = 2; +} + +// Represents a daily marketdata response. +message DailyMarketDataResponse +{ + // The daily marketdata : an array of DailyMarketData objects + repeated DailyMarketData data = 1; +} + +// Contains the daily marketdatas information. +message DailyMarketData +{ + // Date of the marketdata + google.type.Date date = 1; + + // Open price of the sampling period + double open = 2; + + // Highest price of the sampling period + double high = 3; + + // Lowest price of the sampling period + double low = 4; + + // Close price of the sampling period + double close = 5; + + // Total traded volume of the sampling period + double volume = 6; + + // The best bid price of the sampling period + double BidPrice = 7; + + // The best bid size of the sampling period + double BidSize = 8; + + // The best ask price of the sampling period + double AskPrice = 9; + + // The best ask size of the sampling period + double AskSize = 10; + + // Measures the sensitivity of an option's theoretical value to a change in the price of the underlying asset. + //
It indicates the expected change in the option price for a one-point change in the underlying asset. + //
For example, if an option has a delta of 0.7, it suggests that the option's price will increase by $0.70 for every $1 increase in the underlying asset. + double delta = 11; + + // Measeure sthe rate of change in the delta for each one-point increase in the underlying asset. + //
It measures how much the delta of an option will change as the price of the underlying asset changes. + //
Gamma is particularly important for assessing how delta might change as the underlying asset's price fluctuates. + double gamma = 12; + + // A measure of the time decay on an option, the amount that an option willl lose each day due to the passage of time. + //
It represents the change in the option price for a one-day decrease in the time to expiration. + //
Theta is often referred to as time decay. As the expiration date approaches, the time value of an option tends to decrease, and theta quantifies that decay. + double theta = 13; + + // Measures the sensitivity of the price of an option to changes in implied volatility. + //
Implied volatility reflects the market's expectations for future price fluctuations. + //
Vega indicates how much the option price is expected to change for a one-percentage-point change in implied volatility. + double vega = 14; + + // The rate at which the price of a derivative changes relative to a change in the risk-free rate of interest. + //
It represents the change in the option price for a one-percentage-point change in interest rates. + //
Rho is more relevant for options with longer time to expiration. + double rho = 15; + + // ImpliedVolatility value of the sampling period + double implied_volatility = 16; + + // OpenInterest value of the sampling period + double open_interest = 17; + + // Underlying value of the sampling period + double underlying = 18; + + // The implied volatility for a 30-day call option + double implied_volatility_30_call = 19; + + // The implied volatility for a 30-day put option + double implied_volatility_30_put = 20; + + // The mean implied volatility for a 30-day period. + double implied_volatility_30_mean = 21; + + // The implied volatility for a 60-day call option + double implied_volatility_60_call = 22; + + // The implied volatility for a 60-day put option + double implied_volatility_60_put = 23; + + // The mean implied volatility for a 60-day period. + double implied_volatility_60_mean = 24; + + // The implied volatility for a 90-day call option + double implied_volatility_90_call = 25; + + // The implied volatility for a 90-day put option + double implied_volatility_90_put = 26; + + // The mean implied volatility for a 90-day period. + double implied_volatility_90_mean = 27; + + // The implied volatility for a 120-day call option + double implied_volatility_120_call = 28; + + // The implied volatility for a 120-day put option + double implied_volatility_120_put = 29; + + // The mean implied volatility for a 120-day period. + double implied_volatility_120_mean = 30; + + // The implied volatility for a 150-day call option + double implied_volatility_150_call = 31; + + // The implied volatility for a 150-day put option + double implied_volatility_150_put = 32; + + // The mean implied volatility for a 150-day period. + double implied_volatility_150_mean = 33; + + // The implied volatility for a 180-day call option + double implied_volatility_180_call = 34; + + // The implied volatility for a 180-day put option + double implied_volatility_180_put = 35; + + // The mean implied volatility for a 180-day period. + double implied_volatility_180_mean = 36; + + // The implied volatility for a 360-day call option + double implied_volatility_360_call = 37; + + // The implied volatility for a 360-day put option + double implied_volatility_360_put = 38; + + // The mean implied volatility for a 360-day period. + double implied_volatility_360_mean = 39; + + // The volume of call options traded for the current day. + double call_volume = 40; + + // The volume of put options traded for the current day. + double put_volume = 41; + + // The total volume of options traded for the current day. + double total_volume = 42; + + // The call Open Interest (number of open call contracts) at the beginning of the trading session. + double call_open_interest = 43; + + // The put Open Interest (number of open put contracts) at the beginning of the trading session. + double put_open_interest = 44; + + // The Open Interest (number of open put and call contracts) at the beginning of the trading session. + double total_open_interest = 45; + + // The data quality scoring : from 0 (bad) to 100 (good) + double score = 46; +} + diff --git a/src/systemathics/apis/services/indices/v1/components.proto b/src/systemathics/apis/services/indices/v1/components.proto deleted file mode 100644 index f7a3122..0000000 --- a/src/systemathics/apis/services/indices/v1/components.proto +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Up-to-date index components weights -syntax = "proto3"; - - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.indices.v1; - -// Called to request index weights data. -service ComponentsService -{ - // Gets index components data - rpc Components(ComponentsRequest) returns (ComponentsResponse){ - option (google.api.http) = { - get: "/v1/staticdata/components" - }; - } -} - -// The required input to request the ComponentsService -message ComponentsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; -} - -// Represents a components response. -message ComponentsResponse -{ - // The index components: an array of component objects - repeated Component components = 1; -} - -// Contains the weight data for one component: identifier and weight value. -message Component -{ - // The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // The weight value - double weight = 2; -} - - diff --git a/src/systemathics/apis/services/intraday/v1/intraday_bars.proto b/src/systemathics/apis/services/intraday/v1/intraday_bars.proto deleted file mode 100644 index 1562290..0000000 --- a/src/systemathics/apis/services/intraday/v1/intraday_bars.proto +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday.v1; - -// Called to request intraday bars data. -service IntradayBarsService -{ - // Gets intraday historical data: date, open, high, low, close and volume - rpc IntradayBars(IntradayBarsRequest) returns (IntradayBarsResponse) - { - option (google.api.http) = { - get: "/v1/intraday/bars" - }; - } -} - -// The required input to request the IntradayBarsService. -message IntradayBarsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 4; -} - -// The intraday bars response contains an array of intraday bars. -message IntradayBarsResponse -{ - // The intraday bars: an array of IntradayBar objects - repeated IntradayBar data = 1; -} - -// Contains the intraday bar's data: date, open, high, low, close, volume, count, vwap and score. -message IntradayBar -{ - // Time stamp of the intraday bar : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // Open price of the sampling period - double open = 2; - - // Highest price of the sampling period - double high = 3; - - // Lowest price of the sampling period - double low = 4; - - // Close price of the sampling period - double close = 5; - - // Total traded volume of the sampling period - double volume = 6; - - // Tick count of the sampling period - int32 count = 7; - - // Volume weighted average price of the sampling period - double vwap = 8; - - // The data quality scoring : from 0 (bad) to 100 (good) - double score = 9; -} - diff --git a/src/systemathics/apis/services/intraday/v1/intraday_prices.proto b/src/systemathics/apis/services/intraday/v1/intraday_prices.proto deleted file mode 100644 index 491b548..0000000 --- a/src/systemathics/apis/services/intraday/v1/intraday_prices.proto +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Intraday prices illustrates intraday price movements for an instrument over a look back period. -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday.v1; - -// Called to request intraday prices data. -service IntradayPricesService -{ - // Gets intraday historical prices - rpc IntradayPrices(IntradayPricesRequest) returns (IntradayPricesResponse) - { - option (google.api.http) = { - get: "/v1/intraday/prices" - }; - } -} - -// The required input to request the IntradayPricesService -message IntradayPricesRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 4; -} - -// Represents a intraday prices response. -message IntradayPricesResponse -{ - // The intraday prices: an array of IntradayPrice objects - repeated IntradayPrice data = 1; -} - -// Contains the intraday prices data: date, price, volume and score. -message IntradayPrice -{ - // Time stamp of the intraday price : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // Last price of the sampling period - double price = 2; - - // Total traded volume of the sampling period - double volume = 3; - - // The data quality scoring : from 0 (bad) to 100 (good) - double score = 4; -} - diff --git a/src/systemathics/apis/services/intraday/v1/intraday_vwap.proto b/src/systemathics/apis/services/intraday/v1/intraday_vwap.proto deleted file mode 100644 index 1c241fe..0000000 --- a/src/systemathics/apis/services/intraday/v1/intraday_vwap.proto +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday.v1; - -// Called to request intraday VWAP data. -service IntradayVwapsService -{ - // Gets intraday historical VWAPs - rpc IntradayVwaps(IntradayVwapsRequest) returns (IntradayVwapsResponse) - { - option (google.api.http) = { - get: "/v1/intraday/vwap" - }; - } -} - -// The required input to request the IntradayVwapsService -message IntradayVwapsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 4; -} - -// Represents a intraday VWAPs response. -message IntradayVwapsResponse -{ - // The intraday vwaps: an array of IntradayVwap objects - repeated IntradayVwap data = 1; -} - -// Contains the intraday vwaps data: date, vwap and volume. -message IntradayVwap -{ - // Time stamp of the intraday vwap : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // Vwap of the sampling period - double price = 2; - - // Total traded volume of the sampling period - double volume = 3; - - // The data quality scoring : from 0 (bad) to 100 (good) - double score = 4; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_bollinger.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_bollinger.proto deleted file mode 100644 index f626f2b..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_bollinger.proto +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday Bollinger bands data. -service IntradayBollingerService -{ - // Gets intraday Bollinger bands data - rpc IntradayBollinger(IntradayBollingerRequest) returns (IntradayBollingerResponse) - { - option (google.api.http) = { - get: "/v1/intraday/bollinger" - }; - } -} - -// The required input to request the IntradayBollingerService. -message IntradayBollingerRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Mandatory] The simple moving average window length (period: data points number) - int32 length = 4; - - // [Mandatory] The standard deviation window length - double deviation = 5; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 6; -} - -// The intraday bars response contains an array of Bollinger bands. -message IntradayBollingerResponse -{ - // The intraday Bollinger bands: an array of IntradayBollingerData objects - repeated IntradayBollingerData data = 1; -} - -// Contains the intraday Bollinger bands data: date, lower, middle and upper. -message IntradayBollingerData -{ - // Time stamp of Bollinger bands : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the Bollinger bands of the day - double value = 2; - - // Bollinger lower band value of the day - //
Lower band = Middle band - (k * n-period standard deviation) - google.protobuf.DoubleValue lower = 3; - - // Bollinger upper band value of the day - //
Upper band = Middle band + (k * n-period standard deviation) - google.protobuf.DoubleValue upper = 4; - - // Bollinger middle band value of the day - //
Middle band = n-period moving average - google.protobuf.DoubleValue middle = 5; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_cma.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_cma.proto deleted file mode 100644 index 27dccfb..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_cma.proto +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - - -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday cumulative moving average data. -service IntradayCmaService -{ - // Gets intraday cumulative moving average data - rpc IntradayCma(IntradayCmaRequest) returns (IntradayCmaResponse); -} - -// The required input to request the IntradayCmaService. -message IntradayCmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 4; -} - -// Represents a intraday cumulative moving average response. -message IntradayCmaResponse -{ - // The intraday cumulative moving averages: an array of IntradayCmaData objects - repeated IntradayCmaData data = 1; -} - -// Contains the intraday cumulative moving average data: date and value. -message IntradayCmaData -{ - // Time stamp of the cumulative moving average : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average of the day - double value = 2; - - // The cumulative moving average value of the day for all the data points - double average = 3; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_ema.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_ema.proto deleted file mode 100644 index 7858bfc..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_ema.proto +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday exponential moving average data. -service IntradayEmaService -{ - // Gets intraday exponential moving average data - rpc IntradayEma(IntradayEmaRequest) returns (IntradayEmaResponse) - { - option (google.api.http) = { - get: "/v1/intraday/ema" - }; - } -} - -// The required input to request the IntradayEmaService. -message IntradayEmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Mandatory] The exponential moving average window length (period : points number) - int32 length = 4; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 5; -} - -// Represents a intraday exponential moving average response. -message IntradayEmaResponse -{ - // The intraday exponential moving averages: an array of IntradayEmaData objects - repeated IntradayEmaData data = 1; -} - -// Contains the intraday exponential moving average data: date and value. -message IntradayEmaData -{ - // Time stamp of the exponential moving average : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average of the day - double value = 2; - - // The exponential moving average value of the day - double average = 3; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_macd.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_macd.proto deleted file mode 100644 index f7aaa78..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_macd.proto +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 $$ -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday moving average convergence divergence data. -service IntradayMacdService -{ - // Gets intraday moving average convergence divergence data - rpc IntradayMacd(IntradayMacdRequest) returns (IntradayMacdResponse) - { - option (google.api.http) = { - get: "/v1/intraday/macd" - }; - } -} - -// The required input to request the IntradayMacdService. -message IntradayMacdRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Mandatory] The long EMA window length (period : points number) - int32 long = 4; - - // [Mandatory] The short EMA window length (period : points number) - int32 short = 5; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 6; -} - -// Represents a intraday moving average convergence divergence response. -message IntradayMacdResponse -{ - // The intraday moving average convergence/divergence: an array of IntradayMacdData objects - repeated IntradayMacdData data = 1; -} - -// Contains the intraday moving average convergence/divergence data: date and value. -message IntradayMacdData -{ - // Time stamp of the moving average convergence/divergence : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average convergence/divergence of the day - double value = 2; - - // The moving average convergence/divergence value of the day - double macd = 3; - - // The short exponential moving average value of the day - double short = 4; - - // The long exponential moving average value of the day - double long = 5; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_rsi.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_rsi.proto deleted file mode 100644 index 076b6d7..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_rsi.proto +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday relative strength index data. -service IntradayRsiService -{ - // Gets intraday relative strength index data - rpc IntradayRsi(IntradayRsiRequest) returns (IntradayRsiResponse) - { - option (google.api.http) = { - get: "/v1/intraday/rsi" - }; - } -} - -// The required input to request the IntradayRsiService. -message IntradayRsiRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Mandatory] The relative strength index window length (period: points number) - int32 length = 4; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 5; -} - -// Represents a intraday relative strength index response. -message IntradayRsiResponse -{ - // The intraday relative strength index: an array of IntradayRsiData objects - repeated IntradayRsiData data = 1; -} - -// Contains the intraday relative strength index data: date and value. -message IntradayRsiData -{ - // Time stamp of the relative strength index : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the relative strength index of the day - double value = 2; - - // Relative strength index value of the day - double rsi = 3; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_sma.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_sma.proto deleted file mode 100644 index 133be67..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_sma.proto +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday simple moving average data. -service IntradaySmaService -{ - // Gets intraday simple moving average data - rpc IntradaySma(IntradaySmaRequest) returns (IntradaySmaResponse) - { - option (google.api.http) = { - get: "/v1/intraday/sma" - }; - } -} - -// The required input to request the IntradaySmaService. -message IntradaySmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Mandatory] The simple moving average window length (period : points number) - int32 length = 4; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 5; -} - -// Represents a intraday simple moving average response. -message IntradaySmaResponse -{ - // The intraday simple moving averages: an array of IntradaySmaData objects - repeated IntradaySmaData data = 1; -} - -// Contains the intraday simple moving average data: date and value. -message IntradaySmaData -{ - // Time stamp of the simple moving average : open time of the sampling interval - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average of the day - double value = 2; - - // The simple moving average value of the day for the last n data points (length) - google.protobuf.DoubleValue average = 3; -} - diff --git a/src/systemathics/apis/services/intraday_analytics/v1/intraday_volatility.proto b/src/systemathics/apis/services/intraday_analytics/v1/intraday_volatility.proto deleted file mode 100644 index 177f2a9..0000000 --- a/src/systemathics/apis/services/intraday_analytics/v1/intraday_volatility.proto +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -//
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 -syntax = "proto3"; - - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/sampling.proto"; - -package systemathics.apis.services.intraday_analytics.v1; - -// Called to request intraday volatility data. -service IntradayVolatilityService -{ - // Gets intraday historical volatility - rpc IntradayVolatility(IntradayVolatilityRequest) returns (IntradayVolatilityResponse) - { - option (google.api.http) = { - get: "/v1/intraday/volatility" - }; - } -} - -// The required input to request the IntradayVolatilityService -message IntradayVolatilityRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The sampling interval - systemathics.apis.type.shared.v1.Sampling sampling = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment (dividends and splits). - // By default the value is set to false - bool adjustment = 4; -} - -// Represents a intraday volatility response. -message IntradayVolatilityResponse -{ - // Volatility value - double value = 1; -} diff --git a/src/systemathics/apis/services/static_data/v1/sector.proto b/src/systemathics/apis/services/static_data/v1/sector.proto index 6ae34db..3a4d25c 100644 --- a/src/systemathics/apis/services/static_data/v1/sector.proto +++ b/src/systemathics/apis/services/static_data/v1/sector.proto @@ -23,7 +23,7 @@ //
- 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. +//
- 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. syntax = "proto3"; import "google/api/annotations.proto"; diff --git a/src/systemathics/apis/services/static_data/v1/static_data.proto b/src/systemathics/apis/services/static_data/v1/static_data.proto index 131dd08..0ac6a43 100644 --- a/src/systemathics/apis/services/static_data/v1/static_data.proto +++ b/src/systemathics/apis/services/static_data/v1/static_data.proto @@ -57,7 +57,7 @@ message StaticDataRequest // [Optional] Define the first element index to be retrieved google.protobuf.Int32Value start = 2; - // [Optional] Select the first elements retrieved, by default count is set to 100 + // [Optional] Select the first elements retrieved, by default count is set to 500, and the max count value is set to 500 google.protobuf.Int32Value count = 3; // [Optional] Bloomberg @@ -132,11 +132,29 @@ message StaticDataRequest // [Optional] Classification : CFI (Classification of Financial Instruments) google.protobuf.StringValue classification = 27; - // [Optional] Maturity for bond, future and options. For options, it's the maturity of the option, not the maturity of the underlying. + // [Optional] Maturity for bond, future. StaticDataDateRange maturity = 28; // [Optional] Capitalization for equity, etf and index StaticDataDoubleRange capitalization = 29; + + // [Optional] Expiry for option + StaticDataDateRange expiry = 30; + + // [Optional] Option type for option (Call/Put) + OptionType option_type = 31; + + // [Optional] Exercise type for option (European/American/Bermudan) + ExerciseType exercise_type = 32; + + // [Optional] Bond type (Gov/Corp/...) + BondType bond_type = 33; + + // [Optional] Seniority for bond + google.protobuf.StringValue seniority = 34; + + // [Optional] issuer + google.protobuf.StringValue issuer = 35; } // Used to specify a date range search @@ -332,13 +350,13 @@ message EquityEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -348,10 +366,10 @@ message EquityEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; - // Specific values for the equity: The�Central Index Key�(CIK)�number is a unique number assigned to an individual, company, filing agent or foreign government by the�United States Securities and Exchange Commission. The numbers are up to ten digits in length and are permanent identifiers that may not be changed + // Specific values for the equity: The Central Index Key (CIK) number is a unique number assigned to an individual, company, filing agent or foreign government by the United States Securities and Exchange Commission. The numbers are up to ten digits in length and are permanent identifiers that may not be changed string cik = 33; // Specific values for the equity: sectors definitions: The market sector assigned to the instrument in the commonly used market sector classification. The output is presented as a collection of pairs of classification description (BICS, SIC, GICS, TRBC, etc) with its code. map sectors = 34; @@ -422,13 +440,13 @@ message EtfEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -438,10 +456,10 @@ message EtfEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; - // Specific values for the etf: The�Central Index Key�(CIK)�number is a unique number assigned to an individual, company, filing agent or foreign government by the�United States Securities and Exchange Commission. The numbers are up to ten digits in length and are permanent identifiers that may not be changed + // Specific values for the etf: The Central Index Key (CIK) number is a unique number assigned to an individual, company, filing agent or foreign government by the United States Securities and Exchange Commission. The numbers are up to ten digits in length and are permanent identifiers that may not be changed string cik = 33; // Specific values for the etf: sectors definitions: The market sector assigned to the instrument in the commonly used market sector classification. The output is presented as a collection of pairs of classification description (BICS, SIC, GICS, TRBC, etc) with its code. map sectors = 34; @@ -516,23 +534,23 @@ message FutureEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; - // Mapping: + // Mapping: The International Securities Identification Number (ISIN) is a twelve-character number assigned by the local national numbering agency. It consists of a two-letter country code, followed by the nine character alphanumerical national security identifier, and a check digit. string isin = 29; // Mapping: The Committee on Uniform Security Identification Procedures (CUSIP) number is aSecurity identification number for the U.S. and Canada. It consists of nine alpha-numeric characters. The first six characters identify the issuer, the following two identify the issue, and the final character is a check digit. string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the future: Ticker of the underling instrument. @@ -604,13 +622,13 @@ message IndexEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -620,7 +638,7 @@ message IndexEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the index: Category group (Energies, Metals, Agriculture, etc.) where belongs the future contract. @@ -636,7 +654,7 @@ message IndexEntry // Specific values for the index: List of components identified by their ticker and exchange. map components = 38; // Specific values for the index: Number of components in the index. - int64 count = 39; + int64 components_count = 39; } // Contains the reference data for crypto currencies. @@ -692,13 +710,13 @@ message CryptoEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -708,7 +726,7 @@ message CryptoEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the crypto: Currency in which the instrument is priced (ISO 4217) @@ -717,7 +735,7 @@ message CryptoEntry repeated string consensus = 34; // Specific values for the crypto: Date the instrument is issued. google.type.Date issue_date = 35; - // Specific values for the crypto: The total value of a�publicly traded company's�outstanding common shares�owned by stockholders. Market capitalization is equal to the�market price per common share�multiplied by the number of common shares outstanding. + // Specific values for the crypto: The total value of a publicly traded company's outstanding common shares owned by stockholders. Market capitalization is equal to the market price per common share multiplied by the number of common shares outstanding. google.protobuf.DoubleValue capitalization = 36; //The number of coins that are circulating in the market and in the general public's hands int32 circulating_supply = 37; @@ -780,13 +798,13 @@ message ForexEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -796,7 +814,7 @@ message ForexEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the Forex: Currency in which the instrument is priced (ISO 4217) @@ -856,13 +874,13 @@ message OptionEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -872,7 +890,7 @@ message OptionEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the option: Ticker of the underling instrument. @@ -884,7 +902,7 @@ message OptionEntry // Specific values for the option: Indicates whether the security is a put or call. OptionType option_type = 36; // Specific values for the option: The way the option can be exercised: American, European or Bermudan. - ExerciseType exercise = 37; + ExerciseType exercise_type = 37; } // Contains the reference data for bonds. @@ -940,13 +958,13 @@ message BondEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -956,7 +974,7 @@ message BondEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the bond: Name of the issuing entity of the instrument. @@ -979,6 +997,10 @@ message BondEntry double issue_price = 41; // Specific values for the bond: Current amount of the issue outstanding. double total = 42; + // Specific values for the bond: The face amount. + double face_amount = 43; + // Specific values for the bond: The seniority or guarantee. + string seniority = 44; } // Contains the reference data for Credit default swap (CDS). @@ -1034,13 +1056,13 @@ message CdsEntry map mapping = 22; // Mapping: The bloomberg ticker. string bloomberg = 23; - // Mapping: The Reuters Instrument Code (RIC) is a�ticker-like code used to identify�financial instruments�and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. + // Mapping: The Reuters Instrument Code (RIC) is a ticker-like code used to identify financial instruments and indices. The RIC is made up primarily of the security's ticker symbol, optionally followed by a period and exchange code based on the name of the stock exchange using that ticker. string reuters = 24; // Mapping: The Morningstar ticker used to identify an instrument. string morningstar = 25; // Mapping: The Markit code, also known as RED Code. string markit = 26; - // Mapping: The Financial Instrument Global Identifier� (FIGI�) is an established global standard of the Object Management Group� (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. + // Mapping: The Financial Instrument Global Identifier (FIGI) is an established global standard of the Object Management Group (www.OMG.org, an international non-profit technology standards consortium founded in 1989) and an identification standard adopted by the American National Committee X9. The FIGI standard is issued and distributed by Bloomberg L.P. as a Registration Authority and Certified Provider under the auspice of OMG. The Financial Instrument Global Identifier (FIGI) is a twelve character, alphanumeric identifier. The first 2 characters are upper-case consonants (including "Y"), the third character is the upper-case "G", characters 4 -11 are any upper-case consonant (including "Y") or integer between 0 and 9, and the last character is a check-digit. string figi = 27; // Mapping: The Composite Financial Instrument Global Identifier (FIGI) enables users to link multiple FIGIs at the Trading Venue-level within the same country or market in order to obtain an aggregated view for that instrument. string figic = 28; @@ -1050,7 +1072,7 @@ message CdsEntry string cusip = 30; // Mapping: The Stock Exchange Daily Official List number (SEDOL) identifier. Numbers issued prior to March 8, 2004 consist of 7 digits. SEDOLs issued after this date consist of 7 alphanumeric characters, where the first character is always a letter. string sedol = 31; - // Mapping: �The Classification of Financial Instruments (CFI), is a�six-letter-code�used in the financial services industry to classify and describe the structure and function of a�financial instrument.�(ISO 10962) + // Mapping: The Classification of Financial Instruments (CFI), is a six-letter-code used in the financial services industry to classify and describe the structure and function of a financial instrument. (ISO 10962) string classification = 32; // Specific values for the cds: Ticker of the underling instrument. @@ -1170,7 +1192,7 @@ enum ExerciseType EXERCISE_TYPE_EUROPEAN = 2; // The Bermudan-style options contracts may only be exercised on specified dates. - EXERCISE_TYPE_BERMUDEAN = 3; + EXERCISE_TYPE_BERMUDAN = 3; } // Contains the bond types. diff --git a/src/systemathics/apis/services/sustainability/v1/sustainability.proto b/src/systemathics/apis/services/sustainability/v1/sustainability.proto deleted file mode 100644 index 0b5cef2..0000000 --- a/src/systemathics/apis/services/sustainability/v1/sustainability.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// The sustainability provides Environmental, Social, and Corporate Governance data. -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.sustainability.v1; - -// Called to request sustainability data. -service SustainabilityService -{ - // Gets sustainability data - rpc Sustainability(SustainabilityRequest) returns (SustainabilityResponse) - { - option (google.api.http) = { - get: "/v1/sustainability" - }; - } -} - -// The required inputs to request the SustainabilityService. -message SustainabilityRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; -} - -// Represents a sustainability response. -message SustainabilityResponse -{ - // The sustainabilities: an array of sustainability objects - repeated Sustainability data = 1; -} - -// Contains the sustainabilitys's data. -message Sustainability -{ - // The sustainability provider - string provider = 1; - - // The sustainability name or label - string name = 2; - - // The sustainability identifier - string id = 3; - - // The sustainability parent identifier - string parent = 4; - - // The sustainability value - double value = 5; - - // The sustainability minimum value - double min = 6; - - // The sustainability maximum value - double max = 7; - - // The sustainability description - string description = 8; -} diff --git a/src/systemathics/apis/services/tick/v1/tick_book.proto b/src/systemathics/apis/services/tick/v1/tick_book.proto deleted file mode 100644 index 194b4c2..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_book.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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). -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/book_updates.proto"; -import "systemathics/apis/type/shared/v1/book_data.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick normalized book data. -service TickBookService -{ - // Get tick by tick normalized historical book - rpc TickBook(TickBookRequest) returns (stream TickBookResponse) - { - option (google.api.http) = { - get: "/v1/tick/book" - }; - } -} - -// The required inputs to request the TickBookService. -message TickBookRequest -{ - // [Mandatory] The instrument identifiers: a list of tickers and exchanges - repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1; - - // [Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates) - systemathics.apis.type.shared.v1.BookUpdates book_updates = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 4; - - // [Optional] The maximum number of depth, if not set use the default (10). - google.protobuf.Int32Value max_depth = 5; - - // [Optional] The contributors: get the quotes foreach depth, by default the value is set to false - bool contributors = 6; -} - -// Contains the tick by tick normalized book : data or mapping. -message TickBookResponse -{ - oneof payload - { - // The limit data - systemathics.apis.type.shared.v1.BookData data = 1; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 2; - } -} diff --git a/src/systemathics/apis/services/tick/v1/tick_quotes.proto b/src/systemathics/apis/services/tick/v1/tick_quotes.proto deleted file mode 100644 index f08c628..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_quotes.proto +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/quotes_data.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick normalized quotes data (MBO). -service TickQuotesService -{ - // Get tick by tick normalized quotes - rpc TickQuotes(TickQuotesRequest) returns (stream TickQuotesResponse) - { - option (google.api.http) = { - get: "/v1/tick/quotes" - }; - } -} - -// The required inputs to request the TickQuotesService. -message TickQuotesRequest -{ - // [Mandatory] The instrument identifiers: a list of tickers and exchanges - repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 3; -} - -// Contains the tick by tick normalized quotes: key and data -message TickQuotesResponse -{ - oneof payload - { - // The quotes data - systemathics.apis.type.shared.v1.QuotesData data = 1; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 2; - } -} diff --git a/src/systemathics/apis/services/tick/v1/tick_raw.proto b/src/systemathics/apis/services/tick/v1/tick_raw.proto deleted file mode 100644 index f44e251..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_raw.proto +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier_and_level.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/raw.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick raw data. -service TickRawService -{ - // Gets tick by tick raw data. - rpc TickRaw(TickRawRequest) returns (stream TickRawResponse) - { - option (google.api.http) = { - get: "/v1/tick/raw" - }; - } -} - -// The required inputs to request the TickRawService. -message TickRawRequest -{ - // [Mandatory] The instruments and streams identifiers: a list of tickers, exchanges and streams. - repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; -} - -// Represents the raw data response. -message TickRawResponse -{ - oneof payload - { - // The raw data - systemathics.apis.type.shared.v1.Raw raw = 1; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 2; - } -} diff --git a/src/systemathics/apis/services/tick/v1/tick_trades.proto b/src/systemathics/apis/services/tick/v1/tick_trades.proto deleted file mode 100644 index b5850a4..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_trades.proto +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/trade_data.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick normalized trades historical data. -service TickTradesService -{ - // Get tick by tick normalized trades historical Trades - rpc TickTrades(TickTradesRequest) returns (stream TickTradesResponse) - { - option (google.api.http) = { - get: "/v1/tick/trades" - }; - } -} - -// The required inputs to request the TickTradesService. -message TickTradesRequest -{ - // [Mandatory] The instrument identifiers: a list of tickers and exchanges - repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 3; -} - -// Contains the tick by tick normalized trades data: key, time stamp, price, size, condition. -message TickTradesResponse -{ - oneof payload - { - // The trade data - systemathics.apis.type.shared.v1.TradeData data = 1; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 2; - } -} diff --git a/src/systemathics/apis/services/tick/v1/tick_trades_and_book.proto b/src/systemathics/apis/services/tick/v1/tick_trades_and_book.proto deleted file mode 100644 index 3d70529..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_trades_and_book.proto +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier_and_level.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/book_updates.proto"; -import "systemathics/apis/type/shared/v1/trade_and_book_data.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick normalized trades and book historical data. -service TickTradesAndBookService -{ - // Get tick by tick normalized trades and book historical - rpc TickTradesAndBook(TickTradesAndBookRequest) returns (stream TickTradesAndBookResponse) - { - option (google.api.http) = { - get: "/v1/tick/trades-and-book" - }; - } -} - -// The required inputs to request the TickTradesAndBookService. -message TickTradesAndBookRequest -{ - // [Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams - repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1; - - // [Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates) - systemathics.apis.type.shared.v1.BookUpdates book_updates = 2; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 3; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 4; - - // [Optional] The maximum number of depth, if not set use the default (10). - google.protobuf.Int32Value max_depth = 5; - - // [Optional] The contributors: get the quotes foreach depth, by default the value is set to false - bool contributors = 6; -} - -// Contains the tick by tick normalized trades data: key, time stamp, price, size, condition. -message TickTradesAndBookResponse -{ - oneof payload - { - // The trade and book data - systemathics.apis.type.shared.v1.TradeAndBookData data = 1; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 2; - } -} diff --git a/src/systemathics/apis/services/tick/v1/tick_updates.proto b/src/systemathics/apis/services/tick/v1/tick_updates.proto deleted file mode 100644 index 81f9342..0000000 --- a/src/systemathics/apis/services/tick/v1/tick_updates.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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) -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/keys.proto"; -import "systemathics/apis/type/shared/v1/identifier_and_level.proto"; -import "systemathics/apis/type/shared/v1/market_fields_updates.proto"; -import "systemathics/apis/type/shared/v1/mbl_market_book_updates.proto"; -import "systemathics/apis/type/shared/v1/mbo_market_book_updates.proto"; - -package systemathics.apis.services.tick.v1; - -// Called to request tick by tick normalized historical data. -service TickUpdatesService -{ - // Get tick by tick normalized historical Updates - rpc TickUpdates(TickUpdatesRequest) returns (stream TickUpdatesResponse) - { - option (google.api.http) = { - get: "/v1/tick/updates" - }; - } -} - -// The required inputs to request the TickUpdatesService. -message TickUpdatesRequest -{ - // [Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams - repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 3; -} - -// Contains the tick by tick normalized historical data. -message TickUpdatesResponse -{ - // Payload: that can be a mapping (event source and instrument identifier), the fields update or the books update - oneof payload - { - // The fields update - systemathics.apis.type.shared.v1.MarketFieldsUpdates fields_updates = 1; - - // The MBL books update - systemathics.apis.type.shared.v1.MblMarketBookUpdates mbl_book_updates = 2; - - // The MBO books update - systemathics.apis.type.shared.v1.MboMarketBookUpdates mbo_book_updates = 3; - - // The mapping data - systemathics.apis.type.shared.v1.Keys mapping = 4; - } -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_bars.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_bars.proto deleted file mode 100644 index 5b4a450..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_bars.proto +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick bars data. -service TickBarsService -{ - // Gets tick by tick bars data - rpc TickBars(TickBarsRequest) returns (stream TickBarsResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/bars" - }; - } -} - -// The required inputs to request the TickBarService. -message TickBarsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The price used to calculate the bar - BarPrice field = 3; - - // [Mandatory] The duration of the bar - google.protobuf.Duration sampling = 4; - - // [Optional] The period of the bars, by default the period is set to one day - google.protobuf.Duration period = 5; - - // [Optional] The offset time when the bars is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 6; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 7; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 8; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 9; -} - -// Contains the tick bar's data: time, open, high, low, close, volume, count and vwap. -message TickBarsResponse -{ - // The time stamp - google.protobuf.Timestamp time_stamp = 1; - - // Open price of the current bar - double open = 2; - - // Highest price of the current bar - double high = 3; - - // Lowest price of the current bar - double low = 4; - - // Close price of the current bar - double close = 5; - - // Total traded volume of the current bar - int64 volume = 6; - - // Tick count of the current bar - int32 count = 7; - - // Volume weighted average price of the current bar - double vwap = 8; -} - -// The price types used to compute the bars -enum BarPrice -{ - // The unspecfied field - BAR_PRICE_UNSPECIFIED = 0; - // The last trade price - BAR_PRICE_TRADE = 1; - // The best bid price - BAR_PRICE_BID = 2; - // The best ask price - BAR_PRICE_ASK = 3; -} - diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_bollinger.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_bollinger.proto deleted file mode 100644 index eb20d20..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_bollinger.proto +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "google/protobuf/wrappers.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick Bollinger bands data. -service TickBollingerService -{ - // Gets tick by tick Bollinger bands data - rpc TickBollinger(TickBollingerRequest) returns (stream TickBollingerResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/bollinger" - }; - } -} - -// The required inputs to request the TickBollingerService. -message TickBollingerRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Mandatory] The field used to build the Bollinger bands - BollingerPrice field = 3; - - // [Mandatory] The simple moving average window length (period: data points number) - int32 length = 4; - - // [Mandatory] The standard deviation window length - double deviation = 5; - - // [Optional] The period of the Bollinger bands, by default the period is set to one day - google.protobuf.Duration period = 6; - - // [Optional] The offset time when the Bollinger bands is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 7; - - // [Optional] The sampling of the tick data. - // If not set then the tick by tick data is used. - // If set, then the sma is built using sampled data. - google.protobuf.Duration sampling = 8; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 9; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 10; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 11; -} - -// Contains the tick Bollinger bands data: date, lower, middle and upper. -message TickBollingerResponse -{ - // The time stamp of the bollinger bands - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the Bollinger bands of the day - double value = 2; - - // Bollinger lower band value of the day - //
Lower band = Middle band - (k * n-period standard deviation) - google.protobuf.DoubleValue lower = 3; - - // Bollinger upper band value of the day - //
Upper band = Middle band + (k * n-period standard deviation) - google.protobuf.DoubleValue upper = 4; - - // Bollinger middle band value of the day - //
Middle band = n-period moving average - google.protobuf.DoubleValue middle = 5; -} - -// The price types used to compute the bollinger bands -enum BollingerPrice -{ - // The unspecfied field - BOLLINGER_PRICE_UNSPECIFIED = 0; - // The last trade price - BOLLINGER_PRICE_TRADE = 1; - // The best bid price - BOLLINGER_PRICE_BID = 2; - // The best ask price - BOLLINGER_PRICE_ASK = 3; -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_cma.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_cma.proto deleted file mode 100644 index 89eed89..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_cma.proto +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick cumulative moving average data. -service TickCmaService -{ - // Gets tick by tick cumulative moving average data - rpc TickCma(TickCmaRequest) returns (stream TickCmaResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/cma" - }; - } -} - -// The required inputs to request the TickCmaService. -message TickCmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period - // If empty, then all the available data is used - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Mandatory] The field used to calculate the cma - CmaPrice field = 3; - - // [Optional] The period of the vwap, by default the period is set to one day - google.protobuf.Duration period = 4; - - // [Optional] The offset time when the vwap is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 5; - - // [Optional] The sampling of the tick data - // If not set then the tick by tick data is used - // If set, then the cma is built using sampled data - google.protobuf.Duration sampling = 6; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 7; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 8; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 9; -} - -// Contains the cumulative moving average data: timestamp and value. -message TickCmaResponse -{ - // The time stamp of the cumulative moving average - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average - double value = 2; - - // The cumulative moving average value for all the data points - google.protobuf.DoubleValue average = 3; -} - -// The price types used to compute the avarage -enum CmaPrice -{ - // The unspecfied field - CMA_PRICE_UNSPECIFIED = 0; - // The last trade price - CMA_PRICE_TRADE = 1; - // The best bid price - CMA_PRICE_BID = 2; - // The best ask price - CMA_PRICE_ASK = 3; -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_ema.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_ema.proto deleted file mode 100644 index 9309ddb..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_ema.proto +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick exponential moving average data. -service TickEmaService -{ - // Gets tick by tick exponential moving average data - rpc TickEma(TickEmaRequest) returns (stream TickEmaResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/ema" - }; - } -} - -// The required inputs to request the TickEmaService. -message TickEmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Mandatory] The field used to calculate the ema - EmaPrice field = 3; - - // [Mandatory] The exponential moving average window length (period : points number) - int32 length = 4; - - // [Optional] The period of the ema, by default the period is set to one day - google.protobuf.Duration period = 5; - - // [Optional] The offset time when the ema is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 6; - - // [Optional] The sampling of the tick data. - // If not set then the tick by tick data is used. - // If set, then the sma is built using sampled data. - google.protobuf.Duration sampling = 7; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 8; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 9; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 10; -} - -// Contains the exponential moving average data: timestamp and value. -message TickEmaResponse -{ - // The time stamp the exponential moving average - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average - double value = 2; - - // The exponential moving average value - google.protobuf.DoubleValue average = 3; -} - -// The price types used to compute the avarage -enum EmaPrice -{ - // The unspecfied field - EMA_PRICE_UNSPECIFIED = 0; - // The last trade price - EMA_PRICE_TRADE = 1; - // The best bid price - EMA_PRICE_BID = 2; - // The best ask price - EMA_PRICE_ASK = 3; -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_priips.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_priips.proto deleted file mode 100644 index 46fc93e..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_priips.proto +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// PRIIPs regulation EU-wide rules governing information disclosure for all Packaged Retail and Insurance-based Investment Products (PRIIPs). -//
Essentially, this covers any investment product used by a retail consumer that isn't a UCITS fund. -//
The method used to determine implicit transaction costs is the full PRIIPs method, also known as the arrival price methodology. -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "google/protobuf/wrappers.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; -import "google/type/datetime.proto"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request TickPriipsService. -service TickPriipsService -{ - // Gets PRIIPs transaction cost analytics - rpc TickPriips(TickPriipsRequest) returns (TickPriipsResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/priips" - }; - } -} - -// The required input to request the TickPriipsService. -message TickPriipsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Mandatory] The order date and time and timezone (or UTC offset) - google.type.DateTime order_time = 2; - - // [Mandatory] The execution date and time (or UTC offset) - google.type.DateTime execution_time = 3; - - // [Mandatory] The execution price - double execution_price = 4; - - // [Mandatory] The price used to calculate the PRIIPs - PriipsPrice field = 5; - - // [Mandatory] The latency - google.protobuf.Duration latency = 6; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 7; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 8; - - // [Mandatory] The metrics enable or disable - bool metrics = 9; - - // [Mandatory] Do we use the reverse iteration optimization (to find the first trade before the order). - bool use_reverse_iteration_optimization = 10; -} - -// Contains the PRIIPs data: timestamp, price, volume and ticks count. -message TickPriipsResponse -{ - // The arrival time stamp of the first trade when the market or the broker received the order - google.protobuf.Timestamp arrival_time = 1; - - // The arrival price is the mid price at the exact time the trade is sent to the market (or broker) - google.protobuf.DoubleValue arrival_price = 2; - - // The the arrival cost is the difference between the average execution price and the arrival price, expressed as a percentage - //
Arrival Cost = (Execution Price - Arrival Price) / Arrival Price - google.protobuf.DoubleValue arrival_cost = 3; - - // The open time : first trade time stamp just after the order time - google.protobuf.Timestamp open_time = 4; - - // The close time : the last time stamp just after the execution time - google.protobuf.Timestamp close_time = 5; - - // The order time : the time stamp of te client's order - google.protobuf.Timestamp order_time = 6; - - // The execution time : the last time stamp of the oder execution - google.protobuf.Timestamp execution_time = 7; - - // The latency : the time interval between the client's order time and the market's order received time - google.protobuf.Duration latency = 8; - - // The execution price : the execution price is the price achieved for the whole trade, or the average price achieved where the trade has been broken down into multiple parts - double execution_price = 9; - - // The total count of trades during the working period - google.protobuf.Int64Value count = 10; - - // The open price of the working period - google.protobuf.DoubleValue open_price = 11; - - // The highest price of the working period - google.protobuf.DoubleValue high_price = 12; - - // The lowest price of the working period - google.protobuf.DoubleValue low_price = 13; - - // The close price of the working period - google.protobuf.DoubleValue close_price = 14; - - // The volume weighted average price of the working period - google.protobuf.DoubleValue vwap = 15; - - // The total volume of the working period - google.protobuf.Int64Value volume = 16; - - // The processing message - string message = 17; - - // The arrival period = Order Time - Arrival Time - google.protobuf.Duration arrival_period = 18; - - // The working period = Close Time - Arrival Time - google.protobuf.Duration working_period = 19; - - // The closing period = Close Time - Execution Time - google.protobuf.Duration closing_period = 20; - - // The opening period = Open Time - Order Time - google.protobuf.Duration opening_period = 21; - - // The cross time : the time stamps of the first crossing between the prices and the execution price - google.protobuf.Timestamp cross_time = 22; - - // The volume of trades for prices higher than the execution price during the working period - google.protobuf.Int64Value upper_volume = 23; - - // The volume of trades for prices lower than the execution price during the working period - google.protobuf.Int64Value lower_volume = 24; - - // The volume of trades at the execution price during the working period - google.protobuf.Int64Value equal_volume = 25; - - // The total count of trades for prices higher than the execution price during the working period - google.protobuf.Int64Value upper_count = 26; - - // The total count of trades for prices lower than the execution price during the working period - google.protobuf.Int64Value lower_count = 27; - - // The total count of trades at the execution price during the working period - google.protobuf.Int64Value equal_count = 28; - - // The trading conditions during the working period - repeated string conditions = 29; - - // The trading conditions for prices higher than the execution price during the working period - repeated string upper_conditions = 30; - - // The trading conditions for prices lower than the execution price during the working period - repeated string lower_conditions = 31; - - // The trading conditions at the execution price during the working period - repeated string equal_conditions = 32; - - // Consumed ticks count - int64 ticks_count = 33; -} - -// The price types used to compute the Priips -enum PriipsPrice -{ - // The unspecfied field - PRIIPS_PRICE_UNSPECIFIED = 0; - // The last trade price - PRIIPS_PRICE_TRADE = 1; - // The best bid price - PRIIPS_PRICE_BID = 2; - // The best ask price - PRIIPS_PRICE_ASK = 3; -} - diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_priips_batch.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_priips_batch.proto deleted file mode 100644 index 7b6f6e9..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_priips_batch.proto +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// PRIIPs regulation EU-wide rules governing information disclosure for all Packaged Retail and Insurance-based Investment Products (PRIIPs). -//
Essentially, this covers any investment product used by a retail consumer that isn't a UCITS fund. -//
The method used to determine implicit transaction costs is the full PRIIPs method, also known as the arrival price methodology. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/duration.proto"; - -import "systemathics/apis/services/tick_analytics/v1/tick_priips.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request TickPriipsBatchService. -service TickPriipsBatchService -{ - // Gets PRIIPs transaction cost analytics - rpc TickPriipsBatch(TickPriipsBatchRequest) returns (TickPriipsBatchResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/priips-batch" - }; - } -} - -// The required CSV input to batch request the TickPriipsService. -message TickPriipsBatchRequest -{ - // [Mandatory] The input CSV file with columns (Source, Symbol, ORDER_TIMESTAMP, EXECUTION_TIMESTAMP and EXECUTION_PRICE) - bytes csv_gz = 1; - - // [Mandatory] The price used to calculate the PRIIPs - PriipsPrice field = 2; - - // [Mandatory] The latency - google.protobuf.Duration latency = 3; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 4; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 5; - - // [Mandatory] The metrics enable or disable - bool metrics = 6; - - // [Mandatory] Do we use the reverse iteration optimization (to find the first trade before the order). - bool use_reverse_iteration_optimization = 7; - - // [Optional] If not, set UTC is used. - bytes time_zone = 8; -} - -// Contains the CSV PRIIPs data -message TickPriipsBatchResponse -{ - // The CSV response - bytes csv_gz = 1; - - // The CSV response - bytes errors_csv_gz = 2; -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_sma.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_sma.proto deleted file mode 100644 index 538fce9..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_sma.proto +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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 -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick simple moving average data. -service TickSmaService -{ - // Gets tick by tick simple moving average data - rpc TickSma(TickSmaRequest) returns (stream TickSmaResponse){ - option (google.api.http) = { - get: "/v1/tick-analytics/sma" - }; - } -} - -// The required inputs to request the TickSmaService. -message TickSmaRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Mandatory] The price used to calculate the sma - SmaPrice field = 3; - - // [Mandatory] The simple moving average window length (period : points number) - int32 length = 4; - - // [Optional] The period of the sma, by default the period is set to one day - google.protobuf.Duration period = 5; - - // [Optional] The offset time when the sma is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 6; - - // [Optional] The sampling of the tick data. - // If not set then the tick by tick data is used. - // If set, then the sma is built using sampled data. - google.protobuf.Duration sampling = 7; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 8; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 9; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 10; -} - -// Contains the simple moving average data: timestamp and value. -message TickSmaResponse -{ - // The time stamp of the simple moving average - google.protobuf.Timestamp time_stamp = 1; - - // The data used to calculate the average - double value = 2; - - // The simple moving average value for the last n data points (length) - google.protobuf.DoubleValue average = 3; -} - -// The price types used to compute the avarage -enum SmaPrice -{ - // The unspecfied field - SMA_PRICE_UNSPECIFIED = 0; - // The last trade price - SMA_PRICE_TRADE = 1; - // The best bid price - SMA_PRICE_BID = 2; - // The best ask price - SMA_PRICE_ASK = 3; -} - diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_spread.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_spread.proto deleted file mode 100644 index d025079..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_spread.proto +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Calculate the bid ask spread analytics. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request TickSpreadService. -service TickSpreadService -{ - // Gets the Spread analytics - rpc TickSpread(TickSpreadRequest) returns (stream TickSpreadResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/spread" - }; - } -} - -// The required input to request the TickSpreadService. -message TickSpreadRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The minimum accepted spread value, by default is set to min double value : accept all - google.protobuf.DoubleValue min_accepted = 3; - - // [Optional] The maximum accepted spread value, by default is set to max double value : accept all - google.protobuf.DoubleValue max_accepted = 4; - - // [Optional] Accept quote conditions, by default the accept is set to null : accept all - repeated string accept = 5; - - // [Optional] Rejected quote conditions, by default the reject is set to null : do not reject - repeated string reject = 6; -} - -// Contains the Spread data analytics. -message TickSpreadResponse -{ - // The bid side values - SideData bid = 1; - - // The ask side values - SideData ask = 2; - - // The last spread - double last = 3; - - // The average spread - double average = 4; - - // The min spread - double min = 5; - - // The max spread - double max = 6; - - // The ticks count - int64 count = 7; - - // The skipped count - int64 skipped = 8; -} - -// Contains the side details. -message SideData -{ - // The last price - double last = 1; - - // The average price - double average = 2; - - // The vwap price - double vwap = 3; - - // The min price - double min = 4; - - // The max price - double max = 5; - - // The total volume - int64 volume = 6; - - // The ticks count - int64 count = 7; -} - diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_trade_condition_statistics.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_trade_condition_statistics.proto deleted file mode 100644 index 853344e..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_trade_condition_statistics.proto +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// The trade condition statistics calculates the ratios of all the trading conditions over a specified trading period. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick trade condition statistics. -service TickTradeConditionStatisticsService -{ - // Gets tick by tick trade condition statistics - rpc TickTradeConditionStatistics(TickTradeConditionStatisticsRequest) returns (stream TickTradeConditionStatisticsResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/trade-condition-statistics" - }; - } -} - -// The required inputs to request the TickTradeConditionStatisticsService. -message TickTradeConditionStatisticsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; -} - -// Contains the trade condition statistics. -message TickTradeConditionStatisticsResponse -{ - // The trading condition value - string value = 1; - - // The trading condition count - int64 count = 2; - - // The total trades count (for all trade conditions) - int64 total = 3; - - // The trading condition percentage : count / total - double percentage = 4; - - // The trades volume - int64 volume = 5; - - // The total trades volume (for all trade conditions) - int64 total_volume = 6; - - // The volume trading condition percentage : volume / total volume - double volume_percentage = 7; -} diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_trade_conditions.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_trade_conditions.proto deleted file mode 100644 index 5507618..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_trade_conditions.proto +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// The tick condition calculates the ratios of all the trading conditions over a specified trading period. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/condition.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tick by tick trade condition statistics. -service TickTradeConditionsService -{ - // Gets tick by tick trade conditions - rpc TickTradeConditions(TickTradeConditionsRequest) returns (stream TickTradeConditionsResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/trade-conditions" - }; - } -} - -// The required inputs to request the TickTradeConditionsService. -message TickTradeConditionsRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period. - // If empty, then all the available data is retrieved. - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The sampling period of the tick data, by default the period is set to one day - google.protobuf.Duration sampling = 3; - - // [Optional] The period of the conditions, by default the period is set to one day - google.protobuf.Duration period = 4; - - // [Optional] The offset time when the conditions is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 5; -} - -// Contains the tick conditions values. -message TickTradeConditionsResponse -{ - // The time stamp - google.protobuf.Timestamp time_stamp = 1; - - // Total traded volume of the conditions - int64 volume = 2; - - // Tick count of the conditions - int64 count = 3; - - // The trading condition description - repeated systemathics.apis.type.shared.v1.Condition description = 4; - - // The trade conditions items - repeated TickTradeConditionData data = 5; -} - -// The trade condition statistics for a given trading condition value -message TickTradeConditionData -{ - // The trading condition value - string value = 1; - - // The trading condition count - int64 count = 2; - - // The trading condition percentage : count / total - double percentage = 3; - - // The trades volume - int64 volume = 4; - - // The volume trading condition percentage : volume / total volume - double volume_percentage = 5; -} - - diff --git a/src/systemathics/apis/services/tick_analytics/v1/tick_vwap.proto b/src/systemathics/apis/services/tick_analytics/v1/tick_vwap.proto deleted file mode 100644 index 69e0bf5..0000000 --- a/src/systemathics/apis/services/tick_analytics/v1/tick_vwap.proto +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// 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. -syntax = "proto3"; - -import "google/api/annotations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -import "systemathics/apis/type/shared/v1/constraints.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.services.tick_analytics.v1; - -// Called to request tcik Volume Weighted Average Price. -service TickVwapService -{ - // Gets tick by tick historical VWAPs - rpc TickVwap(TickVwapRequest) returns (stream TickVwapResponse) - { - option (google.api.http) = { - get: "/v1/tick-analytics/vwap" - }; - } -} - - -// The required input to request the TickVwapService. -message TickVwapRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The time constraints used to define the look-back period - // If empty, then all the available data is used - systemathics.apis.type.shared.v1.Constraints constraints = 2; - - // [Optional] The period of the vwap, by default the period is set to one day - google.protobuf.Duration period = 3; - - // [Optional] The offset time when the vwap is reset, by default the offset is set to 00:00:00 - google.protobuf.Duration offset = 4; - - // [Optional] The corporate action adjustment, by default the value is set to false - bool adjustment = 5; - - // [Optional] Accept trading / quote conditions, by default the accept is set to null : accept all - repeated string accept = 6; - - // [Optional] Rejected trading / quote conditions, by default the reject is set to null : do not reject - repeated string reject = 7; -} - -// Contains the vwap data: timestamp, price, volume and ticks count. -message TickVwapResponse -{ - // The time stamp of the vwap - google.protobuf.Timestamp time_stamp = 1; - - // The vwap price - double vwap = 2; - - // The trade price - double trade = 3; - - // Total traded volume - int64 volume = 4; - - // The ticks count - int32 ticks = 5; -} diff --git a/src/systemathics/apis/services/tick_conditions/v1/tick_conditions.proto b/src/systemathics/apis/services/tick_conditions/v1/tick_conditions.proto deleted file mode 100644 index ec70e75..0000000 --- a/src/systemathics/apis/services/tick_conditions/v1/tick_conditions.proto +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// The trade condition defines the type of the orders and trades. -syntax = "proto3"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/condition.proto"; - -package systemathics.apis.services.tick_conditions.v1; - -// Called to request tick by tick trading conditions data. -service TickConditionsService -{ - // Gets tick by tick trading conditions data - rpc TickConditions(TickConditionsRequest) returns (TickConditionsResponse); -} - -// The required inputs to request the TickConditionsService. -message TickConditionsRequest -{ - oneof value - { - // [Optional] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // [Optional] The market identifier code or exchange - string exchange = 2; - - // [Optional] The source number - int32 source = 3; - } -} - -// Represents a tick conditions response. -message TickConditionsResponse -{ - // The conditions: an array of Condition objects - repeated systemathics.apis.type.shared.v1.Condition data = 1; -} diff --git a/src/systemathics/apis/services/topology/v1/topologies.proto b/src/systemathics/apis/services/topology/v1/topologies.proto deleted file mode 100644 index 11d913d..0000000 --- a/src/systemathics/apis/services/topology/v1/topologies.proto +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) 2021 Systemathics -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Tick count can be used as an indicator to illustrate market activity by computing the technical transactions/transmissions count on a tick by tick basis. -//
It represents a valuable technical indicator to monitor tick by tick data reception. Building a history of tick count can be useful to: -//
- guarantee tick by tick data good reception and completion -//
- compare trading periods and highlight high-level of activity periods -//
- combined with other indicators, it helps to optimal future rolling, etc. -//
Correlated with of other indicators such as traded volume and count of trades, over the same look back period, it repserents a good measurement of the market quality. -syntax = "proto3"; - -import "google/api/annotations.proto"; - -import "google/protobuf/wrappers.proto"; -import "google/type/date.proto"; -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/level.proto"; - -package systemathics.apis.services.topology.v1; - -// Called to request topology over a look back-period with a given time granularity. -service TopologiesService -{ - // Gets topology per a given time granularity - rpc Topologies(TopologiesRequest) returns (TopologiesResponse) - { - option (google.api.http) = { - get: "/v1/topologies" - }; - } -} - -// Contains the topology granularity -enum TopologyGranularity -{ - // Unspecified granularity. - TOPOLOGY_GRANULARITY_UNSPECIFIED = 0; - // Daily granularity. - TOPOLOGY_GRANULARITY_DAILY = 1; - // Weekly granularity. - TOPOLOGY_GRANULARITY_WEEKLY = 2; - // Monthly granularity. - TOPOLOGY_GRANULARITY_MONTHLY = 3; - // Quaterly granularity. - TOPOLOGY_GRANULARITY_QUATERLY = 4; - // Yearly granularity. - TOPOLOGY_GRANULARITY_YEARLY = 5; -} - -// The required input to request the TopologiesService. -message TopologiesRequest -{ - // [Mandatory] The instrument identifier: a ticker and exchange - systemathics.apis.type.shared.v1.Identifier identifier = 1; - // [Mandatory] Level representing either Trades only(Level 1) or Trades + Book (Level 1 and Level 2) - systemathics.apis.type.shared.v1.Level level = 2; - // [Mandatory] Granularity of the request (daily, weekly, ...) - TopologyGranularity granularity = 3; - // [To do] Start at 0 when using pagination or null - google.protobuf.Int32Value start = 4; - // [To do] Define your count of element received when using pagination or null - google.protobuf.Int32Value count = 5; -} - -// Contains the number of ticks between 2 dates -message TopologyEntry -{ - // Begin date (included) - google.type.Date begin = 1; - // End date (included) - google.type.Date end = 2; - // Tick count - uint64 ticks_count = 3; -} - -// Represents a topology response. -message TopologiesResponse -{ - // The toplogoly data: an array of TopologyEntry objects - repeated TopologyEntry entries = 1; - // If using paginated version will return true until everything is returned, it's false otherwise - bool has_more = 2; -} diff --git a/src/systemathics/apis/services/v1/artifacts.proto b/src/systemathics/apis/services/v1/artifacts.proto deleted file mode 100644 index d5a1593..0000000 --- a/src/systemathics/apis/services/v1/artifacts.proto +++ /dev/null @@ -1,43 +0,0 @@ -syntax = "proto3"; - -import "google/protobuf/wrappers.proto"; -import "google/protobuf/timestamp.proto"; - -package systemathics.apis.services.v1; - -service ArtifactsService -{ - // Get artifacts - rpc Artifacts(ArtifactsRequest) returns (ArtifactsResponse); -} - -message ArtifactsRequest -{ - string search_string = 1; - ArtifactsSearchType search_type = 2; - google.protobuf.Int32Value start = 3; // Nullable - google.protobuf.Int32Value count = 4; // Nullable -} - -enum ArtifactsSearchType -{ - ARTIFACTS_SEARCH_TYPE_UNSPECIFIED = 0; - ARTIFACTS_SEARCH_TYPE_SUB_STRING = 1; - ARTIFACTS_SEARCH_TYPE_REGULAR_EXPRESSION = 2; -} - -message ArtifactsResponse -{ - repeated Artifact artifacts = 1; - bool has_more = 2; -} - -message Artifact -{ - string name = 1; - int64 size = 2; - google.protobuf.Timestamp last_modified =3; // Epoch - google.protobuf.StringValue xxh64 = 4; // Nullable - google.protobuf.Timestamp normalization_start = 5; // Epoch - google.protobuf.Timestamp normalization_end = 6; // Epoch -}