From aa11c6865bba4725367e58f3e8f8e77ceb40c313 Mon Sep 17 00:00:00 2001 From: Build System Date: Fri, 12 Jul 2024 07:10:54 +0000 Subject: [PATCH 1/3] '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 -} From c85fe16c6ef704b8a001ebf9b2dd3fb3f17bbe59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Fr=C3=A8rebeau?= Date: Tue, 10 Sep 2024 17:56:46 +0200 Subject: [PATCH 2/3] update packages (cherry picked from commit 0db04b8ccfd4696d22aafc8a2990ae24489da193) --- .github/workflows/build.yml | 4 ++-- src/Systemathics.Apis.csproj | 12 ++++++------ test/Systemathics.Apis.Tests.csproj | 8 ++++---- test/TokenHelpersTestsFixture.cs | 4 +++- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 52c3a52..d0c123c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Setup .NET Core - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: 6.0.x - name: Restore @@ -37,7 +37,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Setup .NET Core - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: 6.0.x - name: Set VERSION environment variable diff --git a/src/Systemathics.Apis.csproj b/src/Systemathics.Apis.csproj index 37cbee8..94e7a42 100644 --- a/src/Systemathics.Apis.csproj +++ b/src/Systemathics.Apis.csproj @@ -74,15 +74,15 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/test/Systemathics.Apis.Tests.csproj b/test/Systemathics.Apis.Tests.csproj index fe2147f..26050e9 100644 --- a/test/Systemathics.Apis.Tests.csproj +++ b/test/Systemathics.Apis.Tests.csproj @@ -1,11 +1,11 @@ - net6.0 + net8.0 - - - + + + diff --git a/test/TokenHelpersTestsFixture.cs b/test/TokenHelpersTestsFixture.cs index 7f8b8e7..03a0046 100644 --- a/test/TokenHelpersTestsFixture.cs +++ b/test/TokenHelpersTestsFixture.cs @@ -13,9 +13,11 @@ namespace Systemathics.Apis.Tests using Systemathics.Apis.Helpers; using NUnit.Framework; + using NUnit.Framework.Constraints; #endregion + /// /// The token helpers tests fixture. /// @@ -36,7 +38,7 @@ public void GetTokenTest() string token = null; Assert.DoesNotThrow(() => token = TokenHelpers.GetToken()); - StringAssert.StartsWith("Bearer", token); + Assert.That(token, Does.StartWith("Bearer ")); } finally { From 5533c3422ff38c1a626ac16cd8515b8c00cd7cfa Mon Sep 17 00:00:00 2001 From: Build System Date: Wed, 3 Sep 2025 11:35:22 +0000 Subject: [PATCH 3/3] 'Protobuf files change' --- .../daily_analytics/v1/daily_bollinger.proto | 100 ------------------ .../daily_analytics/v1/daily_cma.proto | 83 --------------- .../daily_analytics/v1/daily_ema.proto | 88 --------------- .../daily_analytics/v1/daily_macd.proto | 95 ----------------- .../daily_analytics/v1/daily_rsi.proto | 88 --------------- .../daily_analytics/v1/daily_sma.proto | 88 --------------- .../daily_analytics/v1/daily_volatility.proto | 67 ------------ .../apis/type/shared/v1/action.proto | 36 ------- .../apis/type/shared/v1/book.proto | 36 ------- .../apis/type/shared/v1/book_data.proto | 41 ------- .../apis/type/shared/v1/book_updates.proto | 37 ------- .../apis/type/shared/v1/condition.proto | 43 -------- .../apis/type/shared/v1/constraints.proto | 51 --------- .../apis/type/shared/v1/field.proto | 82 -------------- .../type/shared/v1/identifier_and_level.proto | 47 -------- .../apis/type/shared/v1/keys.proto | 43 -------- .../apis/type/shared/v1/level.proto | 38 ------- .../apis/type/shared/v1/limit.proto | 44 -------- .../apis/type/shared/v1/mappings.proto | 45 -------- .../shared/v1/market_fields_updates.proto | 69 ------------ .../shared/v1/mbl_market_book_updates.proto | 66 ------------ .../shared/v1/mbo_market_book_updates.proto | 69 ------------ .../apis/type/shared/v1/memo.proto | 41 ------- .../apis/type/shared/v1/quote.proto | 51 --------- .../apis/type/shared/v1/quotes_data.proto | 40 ------- .../apis/type/shared/v1/raw.proto | 42 -------- .../apis/type/shared/v1/sampling.proto | 44 -------- .../apis/type/shared/v1/side.proto | 36 ------- .../apis/type/shared/v1/stream.proto | 36 ------- .../apis/type/shared/v1/time_interval.proto | 37 ------- .../apis/type/shared/v1/trade.proto | 42 -------- .../type/shared/v1/trade_and_book_data.proto | 48 --------- .../apis/type/shared/v1/trade_data.proto | 41 ------- 33 files changed, 1814 deletions(-) delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_bollinger.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_cma.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_ema.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_macd.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_rsi.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_sma.proto delete mode 100644 src/systemathics/apis/services/daily_analytics/v1/daily_volatility.proto delete mode 100644 src/systemathics/apis/type/shared/v1/action.proto delete mode 100644 src/systemathics/apis/type/shared/v1/book.proto delete mode 100644 src/systemathics/apis/type/shared/v1/book_data.proto delete mode 100644 src/systemathics/apis/type/shared/v1/book_updates.proto delete mode 100644 src/systemathics/apis/type/shared/v1/condition.proto delete mode 100644 src/systemathics/apis/type/shared/v1/constraints.proto delete mode 100644 src/systemathics/apis/type/shared/v1/field.proto delete mode 100644 src/systemathics/apis/type/shared/v1/identifier_and_level.proto delete mode 100644 src/systemathics/apis/type/shared/v1/keys.proto delete mode 100644 src/systemathics/apis/type/shared/v1/level.proto delete mode 100644 src/systemathics/apis/type/shared/v1/limit.proto delete mode 100644 src/systemathics/apis/type/shared/v1/mappings.proto delete mode 100644 src/systemathics/apis/type/shared/v1/market_fields_updates.proto delete mode 100644 src/systemathics/apis/type/shared/v1/mbl_market_book_updates.proto delete mode 100644 src/systemathics/apis/type/shared/v1/mbo_market_book_updates.proto delete mode 100644 src/systemathics/apis/type/shared/v1/memo.proto delete mode 100644 src/systemathics/apis/type/shared/v1/quote.proto delete mode 100644 src/systemathics/apis/type/shared/v1/quotes_data.proto delete mode 100644 src/systemathics/apis/type/shared/v1/raw.proto delete mode 100644 src/systemathics/apis/type/shared/v1/sampling.proto delete mode 100644 src/systemathics/apis/type/shared/v1/side.proto delete mode 100644 src/systemathics/apis/type/shared/v1/stream.proto delete mode 100644 src/systemathics/apis/type/shared/v1/time_interval.proto delete mode 100644 src/systemathics/apis/type/shared/v1/trade.proto delete mode 100644 src/systemathics/apis/type/shared/v1/trade_and_book_data.proto delete mode 100644 src/systemathics/apis/type/shared/v1/trade_data.proto diff --git a/src/systemathics/apis/services/daily_analytics/v1/daily_bollinger.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_bollinger.proto deleted file mode 100644 index 59b4f4f..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_bollinger.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. - -// 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/wrappers.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_analytics.v1; - -// Called to request daily Bollinger bands data. -service DailyBollingerService -{ - // Gets daily Bollinger bands data - rpc DailyBollinger(DailyBollingerRequest) returns (DailyBollingerResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/bollinger" - }; - } -} - -// The required input to request the DailyBollingerService. -message DailyBollingerRequest -{ - // [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; - - // [Mandatory] The simple moving average window length (period: data points number) - int32 length = 3; - - // [Mandatory] The standard deviation window length - double deviation = 4; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 5; -} - -// The daily bars response contains an array of Bollinger bands. -message DailyBollingerResponse -{ - // The daily Bollinger bands: an array of DailyBollingerData objects - repeated DailyBollingerData data = 1; -} - -// Contains the daily Bollinger bands data: date, lower, middle and upper. -message DailyBollingerData -{ - // Date of Bollinger bands - google.type.Date date = 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/daily_analytics/v1/daily_cma.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_cma.proto deleted file mode 100644 index dbff36e..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_cma.proto +++ /dev/null @@ -1,83 +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/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_analytics.v1; - -// Called to request daily cumulative moving average data. -service DailyCmaService -{ - // Gets daily cumulative moving average data - rpc DailyCma(DailyCmaRequest) returns (DailyCmaResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/cma" - }; - } -} - -// The required input to request the DailyCmaService. -message DailyCmaRequest -{ - // [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; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 3; -} - -// Represents a daily cumulative moving average response. -message DailyCmaResponse -{ - // The daily cumulative moving averages: an array of DailyCmaData objects - repeated DailyCmaData data = 1; -} - -// Contains the daily cumulative moving average data: date and value. -message DailyCmaData -{ - // Date of the cumulative moving average - google.type.Date date = 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/daily_analytics/v1/daily_ema.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_ema.proto deleted file mode 100644 index 7d45248..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_ema.proto +++ /dev/null @@ -1,88 +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/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_analytics.v1; - -// Called to request daily exponential moving average data. -service DailyEmaService -{ - // Gets daily exponential moving average data - rpc DailyEma(DailyEmaRequest) returns (DailyEmaResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/ema" - }; - } -} - -// The required input to request the DailyEmaService. -message DailyEmaRequest -{ - // [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; - - // [Mandatory] The exponential moving average window length (period : points number) - int32 length = 3; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 4; -} - -// Represents a daily exponential moving average response. -message DailyEmaResponse -{ - // The daily exponential moving averages: an array of DailyEmaData objects - repeated DailyEmaData data = 1; -} - -// Contains the daily exponential moving average data: date and value. -message DailyEmaData -{ - // Date of the exponential moving average - google.type.Date date = 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/daily_analytics/v1/daily_macd.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_macd.proto deleted file mode 100644 index 8c82056..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_macd.proto +++ /dev/null @@ -1,95 +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/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_analytics.v1; - -// Called to request daily moving average convergence divergence data. -service DailyMacdService -{ - // Gets daily moving average convergence divergence data - rpc DailyMacd(DailyMacdRequest) returns (DailyMacdResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/macd" - }; - } -} - -// The required input to request the DailyMacdService. -message DailyMacdRequest -{ - // [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; - - // [Mandatory] The long EMA window length (period : points number) - int32 long = 3; - - // [Mandatory] The short EMA window length (period : points number) - int32 short = 4; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 5; -} - -// Represents a daily moving average convergence divergence response. -message DailyMacdResponse -{ - // The daily moving average convergence/divergence: an array of DailyMacdData objects - repeated DailyMacdData data = 1; -} - -// Contains the daily moving average convergence/divergence data: date and value. -message DailyMacdData -{ - // Date of the moving average convergence/divergence - google.type.Date date = 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/daily_analytics/v1/daily_rsi.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_rsi.proto deleted file mode 100644 index a1bf891..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_rsi.proto +++ /dev/null @@ -1,88 +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/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_analytics.v1; - -// Called to request daily relative strength index data. -service DailyRsiService -{ - // Gets daily relative strength index data - rpc DailyRsi(DailyRsiRequest) returns (DailyRsiResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/rsi" - }; - } -} - -// The required input to request the DailyRsiService. -message DailyRsiRequest -{ - // [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; - - // [Mandatory] The relative strength index window length (period: points number) - int32 length = 3; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 4; -} - -// Represents a daily relative strength index response. -message DailyRsiResponse -{ - // The daily relative strength index: an array of DailyRsiData objects - repeated DailyRsiData data = 1; -} - -// Contains the daily relative strength index data: date and value. -message DailyRsiData -{ - // Date of the relative strength index - google.type.Date date = 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/daily_analytics/v1/daily_sma.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_sma.proto deleted file mode 100644 index 8a3a0e8..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_sma.proto +++ /dev/null @@ -1,88 +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/wrappers.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_analytics.v1; - -// Called to request daily simple moving average data. -service DailySmaService -{ - // Gets daily simple moving average data - rpc DailySma(DailySmaRequest) returns (DailySmaResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/sma" - }; - } -} - -// The required input to request the DailySmaService. -message DailySmaRequest -{ - // [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; - - // [Mandatory] The simple moving average window length (period : points number) - int32 length = 3; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 4; -} - -// Represents a daily simple moving average response. -message DailySmaResponse -{ - // The daily simple moving averages: an array of DailySmaData objects - repeated DailySmaData data = 1; -} - -// Contains the daily simple moving average data: date and value. -message DailySmaData -{ - // Date of the simple moving average - google.type.Date date = 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/daily_analytics/v1/daily_volatility.proto b/src/systemathics/apis/services/daily_analytics/v1/daily_volatility.proto deleted file mode 100644 index c8dfeb3..0000000 --- a/src/systemathics/apis/services/daily_analytics/v1/daily_volatility.proto +++ /dev/null @@ -1,67 +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/date_interval.proto"; - -package systemathics.apis.services.daily_analytics.v1; - -// Called to request daily volatility data. -service DailyVolatilityService -{ - // Gets daily historical volatility - rpc DailyVolatility(DailyVolatilityRequest) returns (DailyVolatilityResponse) - { - option (google.api.http) = { - get: "/v1/daily-analytics/volatility" - }; - } -} - -// The required input to request the DailyVolatilityService -message DailyVolatilityRequest -{ - // [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; - - // [Optional] The corporate action adjustment (dividends). - // By default the value is set to false : the split is applied in all cases - bool adjustment = 3; -} - -// Represents a daily volatility response. -message DailyVolatilityResponse -{ - // Volatility value - double value = 1; -} diff --git a/src/systemathics/apis/type/shared/v1/action.proto b/src/systemathics/apis/type/shared/v1/action.proto deleted file mode 100644 index 21c7e16..0000000 --- a/src/systemathics/apis/type/shared/v1/action.proto +++ /dev/null @@ -1,36 +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. - -// Enables to set or to clear market data updates. Navigate to market book updates and market fields updates to discover how action is used. -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains the market Data update action. -enum Action -{ - // The unspecfied action - ACTION_UNSPECIFIED = 0; - // The set action - ACTION_SET = 1; - // The clear action - ACTION_CLEAR = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/book.proto b/src/systemathics/apis/type/shared/v1/book.proto deleted file mode 100644 index 00ca25f..0000000 --- a/src/systemathics/apis/type/shared/v1/book.proto +++ /dev/null @@ -1,36 +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 market book data -syntax = "proto3"; - -import "systemathics/apis/type/shared/v1/limit.proto"; - -package systemathics.apis.type.shared.v1; - -// The book : bid and ask arrays -message Book -{ - // The bid array : buy side - repeated Limit bid = 1; - - // The ask array : sell side - repeated Limit ask = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/book_data.proto b/src/systemathics/apis/type/shared/v1/book_data.proto deleted file mode 100644 index 9102b1b..0000000 --- a/src/systemathics/apis/type/shared/v1/book_data.proto +++ /dev/null @@ -1,41 +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 market book data -syntax = "proto3"; - -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/book.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the market book data -message BookData -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // The time stamp of the book - google.protobuf.Timestamp time_stamp = 2; - - // The book : bids and asks - Book book = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/book_updates.proto b/src/systemathics/apis/type/shared/v1/book_updates.proto deleted file mode 100644 index 74b2171..0000000 --- a/src/systemathics/apis/type/shared/v1/book_updates.proto +++ /dev/null @@ -1,37 +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. - -// Market book updates can be of two different types: -//
- Snapshots only: a full snapshot of the book is provided each time there is an update. -//
- Incrementals: the first response will be a snapshot of the book, then subsequent responses only provide an update. -syntax = "proto3"; - -package systemathics.apis.type.shared.v1; - -// Contains the types of updates book services are able to deliver -enum BookUpdates -{ - // The unspecfied update type - BOOK_UPDATES_UNSPECIFIED = 0; - // Snapshots of the book on each update - BOOK_UPDATES_SNAPSHOTS_ONLY = 1; - // Initial Snapshot then incremental updates on each update - BOOK_UPDATES_INCREMENTALS = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/condition.proto b/src/systemathics/apis/type/shared/v1/condition.proto deleted file mode 100644 index 5a8cc27..0000000 --- a/src/systemathics/apis/type/shared/v1/condition.proto +++ /dev/null @@ -1,43 +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 trading conditions -syntax = "proto3"; - -package systemathics.apis.type.shared.v1; - -// Contains the tick trading conditions's data: value, description, regular and auction. -message Condition -{ - // The trading condition value - string value = 1; - - // The trading condition description - string description = 2; - - // The trading condition comment - string comment = 3; - - // Is regular market condition - bool regular = 4; - - // Is auction market condition - bool auction = 5; -} diff --git a/src/systemathics/apis/type/shared/v1/constraints.proto b/src/systemathics/apis/type/shared/v1/constraints.proto deleted file mode 100644 index 654bf41..0000000 --- a/src/systemathics/apis/type/shared/v1/constraints.proto +++ /dev/null @@ -1,51 +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. - -// Represents a date and time constraint: -//
- Time zone is alway implied to be Universal Time Coordinated (UTC) -//
- Dates are relative to the Proleptic Gregorian Calendar. -syntax = "proto3"; - - -import "google/type/date.proto"; -import "google/type/dayofweek.proto"; - -import "systemathics/apis/type/shared/v1/date_interval.proto"; -import "systemathics/apis/type/shared/v1/time_interval.proto"; - -package systemathics.apis.type.shared.v1; - -//
- Zero, one or many [Date intervals](#DateInterval). The union of each date interval is used. -//
- Zero, one or many [Time intervals](#TimeInterval). The union of each time interval is used. -//
- Zero, one or many [Excluded dates](#google.type.Date). The union of each excluded dates is used. -//
- Zero, one or many [Excluded days](#google.type.DayOfWeek). The union of each excluded days is used. -message Constraints -{ - // Restricts request to an union of date_intervals - //
Providing no date_intervals will return all the stored data - repeated DateInterval date_intervals = 1; - // Restricts request to an union of time_intervals. (ie: Market hours, trading hours, ...) - //
Note: Time intervals including midnight needs to be described as an union of time intervals (ie : [22:00-23:59] U [00:00-04:00]) - repeated TimeInterval time_intervals = 2; - // Restricts request to an union of excluded_dates (ie: closed Days, holidays, ...). - repeated google.type.Date excluded_dates = 3; - // Restricts request to an union of excluded_days (ie: weekd-end can be represented with Saturday, Sunday) - repeated google.type.DayOfWeek excluded_days = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/field.proto b/src/systemathics/apis/type/shared/v1/field.proto deleted file mode 100644 index f0f8fd2..0000000 --- a/src/systemathics/apis/type/shared/v1/field.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. - -// Represents market data field types for time and sales. This excludes book updates, to learn more about market book updates please refer to the dedicated section. -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains the field tyoes for a market field update. -enum Field -{ - // The unspecfied field - FIELD_UNSPECIFIED = 0; - // The open price (associated value type is double) - FIELD_OPEN_PRICE = 1; - // The open size (associated value type is long) - FIELD_OPEN_SIZE = 2; - // The close price (associated value type is double) - FIELD_CLOSE_PRICE = 3; - // The close size (associated value type is long) - FIELD_CLOSE_SIZE = 4; - // The low price (associated value type is double) - FIELD_LOW_PRICE = 5; - // The low size (associated value type is long) - FIELD_LOW_SIZE = 6; - // The high price (associated value type is double) - FIELD_HIGH_PRICE = 7; - // The high size (associated value type is long) - FIELD_HIGH_SIZE = 8; - // The last trade price (associated value type is double) - FIELD_TRADE_PRICE = 9; - // The last trade size (associated value type is long) - FIELD_TRADE_SIZE = 10; - // The trading condition (associated value type is string) - FIELD_TRADING_CONDITION = 11; - // The trade count (associated value type is long) - FIELD_TRADE_COUNT = 12; - // The last otc trade price (associated value type is double) - FIELD_TRADE_OTC_PRICE = 13; - // The last otc trade size (associated value type is long) - FIELD_TRADE_OTC_SIZE = 14; - // The otc trade count (associated value type is long) - FIELD_TRADE_OTC_COUNT = 15; - // The daily volume (associated value type is long) - FIELD_VOLUME = 16; - // The official vwap (associated value type is double) - FIELD_VWAP_OFFICIAL = 17; - // The electronic vwap (associated value type is double) - FIELD_VWAP_ELECTRONIC = 18; - // The theoretical price (associated value type is double) - FIELD_THEORETICAL_PRICE = 19; - // The theoretical size (associated value type is long) - FIELD_THEORETICAL_SIZE = 20; - // The upper price (associated value type is double) - FIELD_UPPER_PRICE = 21; - // The lower price (associated value type is double) - FIELD_LOWER_PRICE = 22; - // The variation (associated value type is double) - FIELD_VARIATION = 23; - // The percentage variation (associated value type is double) - FIELD_VARIATION_PERCENTAGE = 24; - // The trade id (associated value type is string) - FIELD_TRADE_ID = 25; -} diff --git a/src/systemathics/apis/type/shared/v1/identifier_and_level.proto b/src/systemathics/apis/type/shared/v1/identifier_and_level.proto deleted file mode 100644 index f024c8e..0000000 --- a/src/systemathics/apis/type/shared/v1/identifier_and_level.proto +++ /dev/null @@ -1,47 +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. - -// Instrument identifier is built from: -//
- An exchange code: MIC -//
- A ticker: instrument name given by the exchange -//
- An optional provider name if several tick data providers are available -syntax = "proto3"; - -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/level.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the instrument identifier and stream. -message IdentifierAndLevel -{ - // [Mandatory] Exchange market identifier code (MIC defined in ISO-20022). - string exchange = 1; - - // [Mandatory] Ticker name, associated with market idenfier code defines a unique asset. - string ticker = 2; - - // [Optional] tick data provider name if several tick data providers are available. - google.protobuf.StringValue provider = 3; - - // [Mandatory] The data level. - systemathics.apis.type.shared.v1.Level level = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/keys.proto b/src/systemathics/apis/type/shared/v1/keys.proto deleted file mode 100644 index 9283ec7..0000000 --- a/src/systemathics/apis/type/shared/v1/keys.proto +++ /dev/null @@ -1,43 +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 mapping keys for tick by tick market data -syntax = "proto3"; - -import "systemathics/apis/type/shared/v1/identifier.proto"; - -package systemathics.apis.type.shared.v1; - -// The tick key : mapping between the identifier and the key -message Key -{ - // The instrument identifier - systemathics.apis.type.shared.v1.Identifier identifier = 1; - - // The instrument mapping key: short code for instrument identifier - uint32 value = 2; -} - -// The mapping keys array -message Keys -{ - // An array of mapping keys - repeated Key values = 1; -} diff --git a/src/systemathics/apis/type/shared/v1/level.proto b/src/systemathics/apis/type/shared/v1/level.proto deleted file mode 100644 index 52d2f99..0000000 --- a/src/systemathics/apis/type/shared/v1/level.proto +++ /dev/null @@ -1,38 +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. - -// Represents a market data stream. Two stream types are used: -//
- Level1 = Trades only -//
- Level1 and Level2 = Trades + Book -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains the level types -enum Level -{ - // The unspecfied level - LEVEL_UNSPECIFIED = 0; - // The trades only - LEVEL_TRADES = 1; - // The trades and book - LEVEL_TRADES_AND_BOOK = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/limit.proto b/src/systemathics/apis/type/shared/v1/limit.proto deleted file mode 100644 index 48e46bf..0000000 --- a/src/systemathics/apis/type/shared/v1/limit.proto +++ /dev/null @@ -1,44 +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 market book limit data -syntax = "proto3"; - -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/quote.proto"; - -package systemathics.apis.type.shared.v1; - -// The limit : bid or ask price and size at a given depth -message Limit -{ - // The price of the limit - google.protobuf.DoubleValue price = 1; - - // The size (volume) of the limit - google.protobuf.Int64Value size = 2; - - // The depth of the limit - uint32 depth = 3; - - // The contributors - repeated Quote quotes = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/mappings.proto b/src/systemathics/apis/type/shared/v1/mappings.proto deleted file mode 100644 index 8c4ba99..0000000 --- a/src/systemathics/apis/type/shared/v1/mappings.proto +++ /dev/null @@ -1,45 +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. - -syntax = "proto3"; - - -import "systemathics/apis/type/shared/v1/identifier.proto"; -import "systemathics/apis/type/shared/v1/memo.proto"; - -package systemathics.apis.type.shared.v1; - -// Represents a mapping between an eventSource and a memo -message Mapping -{ - // An Identifier from the market data request - systemathics.apis.type.shared.v1.Identifier identifier = 1; - // Memo associated with Identifier - systemathics.apis.type.shared.v1.Memo memo = 2; - // Short name for a memo - uint32 event_source = 3; -} - -// Represents several Mapping -message Mappings -{ - // An array of Mapping - repeated Mapping table = 1; -} diff --git a/src/systemathics/apis/type/shared/v1/market_fields_updates.proto b/src/systemathics/apis/type/shared/v1/market_fields_updates.proto deleted file mode 100644 index 4af3f63..0000000 --- a/src/systemathics/apis/type/shared/v1/market_fields_updates.proto +++ /dev/null @@ -1,69 +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. - -// Represents the times and sales market data. -syntax = "proto3"; - - -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/action.proto"; -import "systemathics/apis/type/shared/v1/field.proto"; - -package systemathics.apis.type.shared.v1; - -// Represents market field updates. -message MarketFieldsUpdates -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // Timestamp from the market - google.protobuf.Timestamp time_stamp = 2; - - // If set, previous data must be cleared entirely, otherwise current data is an increment on top of previous data - bool reset = 3; - - // The market book updates: an array of MarketFieldUpdate objects - repeated MarketFieldUpdate updates = 4; -} - -// Represents a market field update -message MarketFieldUpdate -{ - // Action on market field update - systemathics.apis.type.shared.v1.Action action = 1; - - // Field of market field update - Field field = 2; - - // Value of the market field update - oneof value - { - // long value (depends of the field) - int64 long_value = 3; - - // double value (depends of the field) - double double_value = 4; - - // string value (depends of the field) - string string_value = 5; - } -} diff --git a/src/systemathics/apis/type/shared/v1/mbl_market_book_updates.proto b/src/systemathics/apis/type/shared/v1/mbl_market_book_updates.proto deleted file mode 100644 index d3ba4b5..0000000 --- a/src/systemathics/apis/type/shared/v1/mbl_market_book_updates.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. - -// Represents the Market Book By Limit data. -syntax = "proto3"; - - -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/action.proto"; -import "systemathics/apis/type/shared/v1/side.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains Market Book By Limit updates data. -message MblMarketBookUpdates -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // Time stamp from the market (UTC) - google.protobuf.Timestamp time_stamp = 2; - - // If set, previous data must be cleared entirely, otherwise current data is an increment on top of previous data - bool reset = 3; - - // The market book updates: an array of MarketBookUpdate objects - repeated systemathics.apis.type.shared.v1.MblMarketBookUpdate updates = 4; -} - -// Represents a Market Book By Limit update. -message MblMarketBookUpdate -{ - // Action of the market book update - systemathics.apis.type.shared.v1.Action action = 1; - - // Side of the market book update - systemathics.apis.type.shared.v1.Side side = 2; - - // Depth of the market book update - uint32 depth = 3; - - // Size of the market book update - google.protobuf.Int64Value size = 4; - - // Price of the market book update - google.protobuf.DoubleValue price = 5; -} diff --git a/src/systemathics/apis/type/shared/v1/mbo_market_book_updates.proto b/src/systemathics/apis/type/shared/v1/mbo_market_book_updates.proto deleted file mode 100644 index 2b6e7df..0000000 --- a/src/systemathics/apis/type/shared/v1/mbo_market_book_updates.proto +++ /dev/null @@ -1,69 +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. - -// Represents the Market Book by Order (MBO). -syntax = "proto3"; - - -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -import "systemathics/apis/type/shared/v1/action.proto"; -import "systemathics/apis/type/shared/v1/side.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains Market Book by Order updates data. -message MboMarketBookUpdates -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // Timestamp from the market - google.protobuf.Timestamp time_stamp = 2; - - // If set, previous data must be cleared entirely, otherwise current data is an increment on top of previous data - bool reset = 3; - - // The market book updates: an array of MarketBookUpdate objects - repeated systemathics.apis.type.shared.v1.MboMarketBookUpdate updates = 4; -} - -// Represents a Market Book by Order update. -message MboMarketBookUpdate -{ - // Action of the market book update - systemathics.apis.type.shared.v1.Action action = 1; - - // Side of the market book update - systemathics.apis.type.shared.v1.Side side = 2; - - // Order or Quote unique identifier - string order_id = 3; - - // Size of the market book update - google.protobuf.Int64Value size = 4; - - // Price of the market book update - google.protobuf.DoubleValue price = 5; - - // Condition of the market book update - google.protobuf.Int32Value condition = 6; -} diff --git a/src/systemathics/apis/type/shared/v1/memo.proto b/src/systemathics/apis/type/shared/v1/memo.proto deleted file mode 100644 index b96e192..0000000 --- a/src/systemathics/apis/type/shared/v1/memo.proto +++ /dev/null @@ -1,41 +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. - -syntax = "proto3"; - -package systemathics.apis.type.shared.v1; - -// Represents a set of data for a financial asset -// It is built from -// - A provider (a market data provider) -// - A group (asset group given by the provider) -// - A stream (which type od data : Open High Low Close, Level 1, Level 1 and Level 2, ...) -// - A ticker (asset name given by the provider) -message Memo -{ - // Provider name - string provider = 1; - // Group name, associated with provider - string group = 2; - // Stream name, associated with the type of data needed - string stream = 3; - // Ticker name, associated with provider and group defines a unique asset - string ticker = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/quote.proto b/src/systemathics/apis/type/shared/v1/quote.proto deleted file mode 100644 index 8b9aae5..0000000 --- a/src/systemathics/apis/type/shared/v1/quote.proto +++ /dev/null @@ -1,51 +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 quote or order for the Market By Order (MBO). -syntax = "proto3"; - - -import "google/protobuf/wrappers.proto"; -import "systemathics/apis/type/shared/v1/side.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the quote details : buy or sell order. -message Quote -{ - // The unique identifier of the quote - string id = 1; - - // The size of the quote - google.protobuf.Int64Value size = 2; - - // The price of the quote - google.protobuf.DoubleValue price = 3; - - // The condition of the quote : - //
0 : Limit Order - //
2 : Market Order - //
3 : Market To Limit Order - //
Note: Market orders will not have a price field, only a size. Similarly for Market To Limit orders during auction phases. - google.protobuf.Int32Value condition = 4; - - // The side : Buy (bid) or Sell (ask) order - Side side = 5; -} diff --git a/src/systemathics/apis/type/shared/v1/quotes_data.proto b/src/systemathics/apis/type/shared/v1/quotes_data.proto deleted file mode 100644 index 35c07e4..0000000 --- a/src/systemathics/apis/type/shared/v1/quotes_data.proto +++ /dev/null @@ -1,40 +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 quotes data (MBO) -syntax = "proto3"; - -import "google/protobuf/timestamp.proto"; -import "systemathics/apis/type/shared/v1/quote.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the normalized quotes data. -message QuotesData -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // The time stamp of the quotes (UTC) - google.protobuf.Timestamp time_stamp = 2; - - // The quotes array - repeated Quote quotes = 3; -} diff --git a/src/systemathics/apis/type/shared/v1/raw.proto b/src/systemathics/apis/type/shared/v1/raw.proto deleted file mode 100644 index 24371f7..0000000 --- a/src/systemathics/apis/type/shared/v1/raw.proto +++ /dev/null @@ -1,42 +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 raw data content. -syntax = "proto3"; - -import "google/protobuf/timestamp.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the primary data, not processed or normalized (identical to provider's data). -message Raw -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // The time stamp of the raw data (UTC) - google.protobuf.Timestamp time_stamp = 2; - - // The data type. - uint32 type = 3; - - // The payload data. - bytes payload = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/sampling.proto b/src/systemathics/apis/type/shared/v1/sampling.proto deleted file mode 100644 index 59b2450..0000000 --- a/src/systemathics/apis/type/shared/v1/sampling.proto +++ /dev/null @@ -1,44 +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. - -// Defines the intraday sampling intervals. -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains the intraday sampling intervals. -enum Sampling -{ - // The unspecifed interval - SAMPLING_UNSPECIFIED = 0; - // The one minute interval - SAMPLING_ONE_MINUTE = 1; - // The five minutes interval - SAMPLING_FIVE_MINUTE = 2; - // The ten minutes interval - SAMPLING_TEN_MINUTE = 3; - // The fifteen minutes interval - SAMPLING_FIFTEEN_MINUTE = 4; - // The thirty minutes interval - SAMPLING_THIRTY_MINUTE = 5; - // The one hour interval - SAMPLING_ONE_HOUR = 6; -} diff --git a/src/systemathics/apis/type/shared/v1/side.proto b/src/systemathics/apis/type/shared/v1/side.proto deleted file mode 100644 index 8fa43a5..0000000 --- a/src/systemathics/apis/type/shared/v1/side.proto +++ /dev/null @@ -1,36 +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. - -// Represents the side: bid or ask. -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains side values. -enum Side -{ - // The unspecfied side - SIDE_UNSPECIFIED = 0; - // The bid side - SIDE_BID = 1; - // The ask side - SIDE_ASK = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/stream.proto b/src/systemathics/apis/type/shared/v1/stream.proto deleted file mode 100644 index 272744f..0000000 --- a/src/systemathics/apis/type/shared/v1/stream.proto +++ /dev/null @@ -1,36 +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. - -// Enables to set or to clear market data updates. Navigate to market book updates and market fields updates to discover how action is used. -syntax = "proto3"; - - -package systemathics.apis.type.shared.v1; - -// Contains the market Data update action. -enum Stream -{ - // The unspecfied stream - STREAM_UNSPECIFIED = 0; - // The stream only containing fields updates (see field.proto). - STREAM_FIELDS_ONLY = 1; - // The stream with market book updates (see mbl_market_book_updates.proto and mbo_market_book_updates.proto) along with fields updates. - STREAM_MARKETBOOK_AND_FIELDS= 2; -} diff --git a/src/systemathics/apis/type/shared/v1/time_interval.proto b/src/systemathics/apis/type/shared/v1/time_interval.proto deleted file mode 100644 index cdace2a..0000000 --- a/src/systemathics/apis/type/shared/v1/time_interval.proto +++ /dev/null @@ -1,37 +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. - -// Represents a time interval used to delimit historical data requests in time. Time is Universal Time Coordinated (UTC). -syntax = "proto3"; - - -import "google/type/timeofday.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains time interval with start_time (included) and end_time (excluded) -message TimeInterval -{ - // Start time of the time interval. It must always be smaller than end time - google.type.TimeOfDay start_time = 1; - - // End time of the time interval. It must always be greater than start time - google.type.TimeOfDay end_time = 2; -} diff --git a/src/systemathics/apis/type/shared/v1/trade.proto b/src/systemathics/apis/type/shared/v1/trade.proto deleted file mode 100644 index 30218e7..0000000 --- a/src/systemathics/apis/type/shared/v1/trade.proto +++ /dev/null @@ -1,42 +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 market data trades -syntax = "proto3"; - -import "google/protobuf/wrappers.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the trade details. -message Trade -{ - // The price of the trade - google.protobuf.DoubleValue price = 1; - - // The size (volume) of the trade - google.protobuf.Int64Value size = 2; - - // The trading condition of the trade - string condition = 3; - - // The market unique identifier of the trade - string id = 4; -} diff --git a/src/systemathics/apis/type/shared/v1/trade_and_book_data.proto b/src/systemathics/apis/type/shared/v1/trade_and_book_data.proto deleted file mode 100644 index 2921964..0000000 --- a/src/systemathics/apis/type/shared/v1/trade_and_book_data.proto +++ /dev/null @@ -1,48 +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 market data trades and book -syntax = "proto3"; - -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/trade.proto"; -import "systemathics/apis/type/shared/v1/book.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the book or trade data -message TradeAndBookData -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // The time stamp of the trade and book (UTC) - google.protobuf.Timestamp time_stamp = 2; - - oneof payload - { - // The trade - Trade trade = 3; - - // The book - Book book = 4; - } -} diff --git a/src/systemathics/apis/type/shared/v1/trade_data.proto b/src/systemathics/apis/type/shared/v1/trade_data.proto deleted file mode 100644 index 6a61aaa..0000000 --- a/src/systemathics/apis/type/shared/v1/trade_data.proto +++ /dev/null @@ -1,41 +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 market data trades -syntax = "proto3"; - -import "google/protobuf/timestamp.proto"; - -import "systemathics/apis/type/shared/v1/trade.proto"; - -package systemathics.apis.type.shared.v1; - -// Contains the trade details and the time stamp. -message TradeData -{ - // The instrument mapping key: short code for instrument identifier. - uint32 mapping = 1; - - // The time stamp of the trade (UTC) - google.protobuf.Timestamp time_stamp = 2; - - // The trade - Trade trade = 3; -}