Skip to content

Commit 3c4df47

Browse files
author
Build System
committed
'Protobuf files change'
1 parent 28e71a0 commit 3c4df47

33 files changed

Lines changed: 203 additions & 917 deletions

src/systemathics/apis/services/tick/v1/tick_book.proto

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,25 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
// SOFTWARE.
2020

21-
// Normalized tick by tick data extraction for a given watchlist and a specific look-back period. This can be useful to:
22-
// <br>- Get specific historical dataset such as trades, top of book data...
23-
// <br>- Compute analytics on the top of preselected tick by tick data dataset
24-
// <br>- Feed best execution reports for a given watchlist over the time
21+
// 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.
22+
//<br> 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).
2523
syntax = "proto3";
2624

2725
import "google/protobuf/timestamp.proto";
26+
import "google/protobuf/wrappers.proto";
2827

2928
import "systemathics/apis/type/shared/v1/constraints.proto";
30-
import "systemathics/apis/type/shared/v1/level.proto";
3129
import "systemathics/apis/type/shared/v1/identifier.proto";
3230
import "systemathics/apis/type/shared/v1/keys.proto";
33-
import "systemathics/apis/type/shared/v1/book.proto";
31+
import "systemathics/apis/type/shared/v1/book_updates.proto";
32+
import "systemathics/apis/type/shared/v1/book_data.proto";
3433

3534
package systemathics.apis.services.tick.v1;
3635

37-
// Called to request tick by tick normalized trades historical data.
36+
// Called to request tick by tick normalized book data.
3837
service TickBookService
3938
{
40-
// Get tick by tick normalized trades historical Book
39+
// Get tick by tick normalized historical book
4140
rpc TickBook(TickBookRequest) returns (stream TickBookResponse);
4241
}
4342

@@ -47,18 +46,27 @@ message TickBookRequest
4746
// [Mandatory] The instrument identifiers: a list of tickers and exchanges
4847
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
4948

49+
// [Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates)
50+
systemathics.apis.type.shared.v1.BookUpdates book_updates = 2;
51+
5052
// [Optional] The time constraints used to define the look-back period.
5153
// If empty, then all the available data is retrieved.
52-
systemathics.apis.type.shared.v1.Constraints constraints = 2;
54+
systemathics.apis.type.shared.v1.Constraints constraints = 3;
55+
56+
// [Optional] The corporate action adjustment, by default the value is set to false
57+
bool adjustment = 4;
58+
59+
// [Optional] The maximum number of depth, if not set use the default (10).
60+
google.protobuf.Int32Value max_depth = 5;
5361
}
5462

55-
// Contains the tick by tick normalized trades data: key, time stamp, price, size, condition.
63+
// Contains the tick by tick normalized book : data or mapping.
5664
message TickBookResponse
5765
{
5866
oneof payload
5967
{
6068
// The limit data
61-
systemathics.apis.type.shared.v1.BookLimit limit = 1;
69+
systemathics.apis.type.shared.v1.BookData data = 1;
6270

6371
// The mapping data
6472
systemathics.apis.type.shared.v1.Keys mapping = 2;

src/systemathics/apis/services/tick/v2/tick_quotes.proto renamed to src/systemathics/apis/services/tick/v1/tick_quotes.proto

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
// SOFTWARE.
2020

21-
// Normalized tick by tick data extraction for a given watchlist and a specific look-back period. This can be useful to:
22-
// <br>- Get specific historical dataset such as trades, top of book data...
23-
// <br>- Compute analytics on the top of preselected tick by tick data dataset
24-
// <br>- Feed best execution reports for a given watchlist over the time
21+
// Normalized tick by tick Market By Order (MBO):
22+
// <br>-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.
2523
syntax = "proto3";
2624

2725
import "google/protobuf/timestamp.proto";
@@ -30,21 +28,21 @@ import "google/protobuf/wrappers.proto";
3028
import "systemathics/apis/type/shared/v1/constraints.proto";
3129
import "systemathics/apis/type/shared/v1/identifier.proto";
3230
import "systemathics/apis/type/shared/v1/keys.proto";
33-
import "systemathics/apis/type/shared/v2/quotes_data.proto";
31+
import "systemathics/apis/type/shared/v1/quotes_data.proto";
3432

35-
package systemathics.apis.services.tick.v2;
33+
package systemathics.apis.services.tick.v1;
3634

37-
// Called to request tick by tick normalized quotes data (MBO only).
35+
// Called to request tick by tick normalized quotes data (MBO).
3836
service TickQuotesService
3937
{
40-
// Get tick by tick normalized trades and book historical
38+
// Get tick by tick normalized quotes
4139
rpc TickQuotes(TickQuotesRequest) returns (stream TickQuotesResponse);
4240
}
4341

4442
// The required inputs to request the TickQuotesService.
4543
message TickQuotesRequest
4644
{
47-
// [Mandatory] The instrument identifiers: a list of tickers and changes
45+
// [Mandatory] The instrument identifiers: a list of tickers and exchanges
4846
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
4947

5048
// [Optional] The time constraints used to define the look-back period.
@@ -60,8 +58,8 @@ message TickQuotesResponse
6058
{
6159
oneof payload
6260
{
63-
// The trade and book data
64-
systemathics.apis.type.shared.v2.QuotesData data = 1;
61+
// The quotes data
62+
systemathics.apis.type.shared.v1.QuotesData data = 1;
6563

6664
// The mapping data
6765
systemathics.apis.type.shared.v1.Keys mapping = 2;

src/systemathics/apis/services/tick/v1/tick_raw.proto

Lines changed: 19 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,76 +18,48 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
// SOFTWARE.
2020

21-
// Raw tick by tick data extraction in provider format for a given watchlist and a specific look-back period. This can be useful to:
21+
// 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.
22+
// <br>Raw data can be useful to:
2223
// <br>- Audit provider raw data reception and completion
23-
// <br>- Compare provider data formats
24-
// <br>- Compare raw provider format data to normalized data
24+
// <br>- Compare provider's data formats
25+
// <br>- Compare raw provider's format data to normalized (processsed) data
2526
syntax = "proto3";
2627

27-
import "google/protobuf/timestamp.proto";
28-
2928
import "systemathics/apis/type/shared/v1/constraints.proto";
3029
import "systemathics/apis/type/shared/v1/level.proto";
31-
import "systemathics/apis/type/shared/v1/identifier.proto";
30+
import "systemathics/apis/type/shared/v1/identifier_and_level.proto";
31+
import "systemathics/apis/type/shared/v1/keys.proto";
32+
import "systemathics/apis/type/shared/v1/raw.proto";
3233

3334
package systemathics.apis.services.tick.v1;
3435

3536
// Called to request tick by tick raw data.
3637
service TickRawService
3738
{
38-
// Gets tick by tick historical data
39+
// Gets tick by tick raw data.
3940
rpc TickRaw(TickRawRequest) returns (stream TickRawResponse);
4041
}
4142

4243
// The required inputs to request the TickRawService.
4344
message TickRawRequest
4445
{
45-
// [Mandatory] The instrument identifier: a ticker and exchange
46-
systemathics.apis.type.shared.v1.Identifier identifier = 1;
46+
// [Mandatory] The instruments and streams identifiers: a list of tickers, exchanges and streams.
47+
repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1;
4748

4849
// [Optional] The time constraints used to define the look-back period.
4950
// If empty, then all the available data is retrieved.
5051
systemathics.apis.type.shared.v1.Constraints constraints = 2;
51-
52-
// [Mandatory] The stream level (Level 1 or Level 1 and 2)
53-
systemathics.apis.type.shared.v1.Level level = 3;
54-
}
55-
56-
// Contains the ticks in raw provider format.
57-
message TickRawItem
58-
{
59-
// The timestamp
60-
google.protobuf.Timestamp time_stamp = 1;
61-
62-
// The frame type
63-
uint32 type = 2;
64-
65-
// The event source
66-
uint32 source = 3;
67-
68-
// Payload
69-
bytes payload = 4;
7052
}
7153

72-
// Represents a raw data response: several at once.
54+
// Represents the raw data response.
7355
message TickRawResponse
7456
{
75-
// The raw data: an array of TickRawItem objects
76-
repeated TickRawItem raw_items = 1;
77-
}
78-
79-
// Represents the RAW response: one by one, this is not performant due to Microsoft gRPC API handling of this use case.
80-
message TickRawResponse2
81-
{
82-
// The timestamp
83-
google.protobuf.Timestamp time_stamp = 1;
84-
85-
// The frame type
86-
uint32 type = 2;
87-
88-
// The event source
89-
uint32 source = 3;
90-
91-
// Payload
92-
bytes payload = 4;
57+
oneof payload
58+
{
59+
// The raw data
60+
systemathics.apis.type.shared.v1.Raw raw = 1;
61+
62+
// The mapping data
63+
systemathics.apis.type.shared.v1.Keys mapping = 2;
64+
}
9365
}

src/systemathics/apis/services/tick/v1/tick_trades.proto

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
// SOFTWARE.
2020

21-
// Normalized tick by tick data extraction for a given watchlist and a specific look-back period. This can be useful to:
21+
// Normalized tick by tick trades extraction for a given watchlist and a specific look-back period. This can be useful to:
2222
// <br>- Get specific historical dataset such as trades, top of book data...
2323
// <br>- Compute analytics on the top of preselected tick by tick data dataset
2424
// <br>- Feed best execution reports for a given watchlist over the time
@@ -27,10 +27,9 @@ syntax = "proto3";
2727
import "google/protobuf/timestamp.proto";
2828

2929
import "systemathics/apis/type/shared/v1/constraints.proto";
30-
import "systemathics/apis/type/shared/v1/level.proto";
3130
import "systemathics/apis/type/shared/v1/identifier.proto";
3231
import "systemathics/apis/type/shared/v1/keys.proto";
33-
import "systemathics/apis/type/shared/v1/trade.proto";
32+
import "systemathics/apis/type/shared/v1/trade_data.proto";
3433

3534
package systemathics.apis.services.tick.v1;
3635

@@ -44,12 +43,15 @@ service TickTradesService
4443
// The required inputs to request the TickTradesService.
4544
message TickTradesRequest
4645
{
47-
// [Mandatory] The instrument identifiers: a list of tickers and exchanges
48-
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
46+
// [Mandatory] The instrument identifiers: a list of tickers and exchanges
47+
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
4948

50-
// [Optional] The time constraints used to define the look-back period.
49+
// [Optional] The time constraints used to define the look-back period.
5150
// If empty, then all the available data is retrieved.
52-
systemathics.apis.type.shared.v1.Constraints constraints = 2;
51+
systemathics.apis.type.shared.v1.Constraints constraints = 2;
52+
53+
// [Optional] The corporate action adjustment, by default the value is set to false
54+
bool adjustment = 3;
5355
}
5456

5557
// Contains the tick by tick normalized trades data: key, time stamp, price, size, condition.
@@ -58,7 +60,7 @@ message TickTradesResponse
5860
oneof payload
5961
{
6062
// The trade data
61-
systemathics.apis.type.shared.v1.Trade trade = 1;
63+
systemathics.apis.type.shared.v1.TradeData data = 1;
6264

6365
// The mapping data
6466
systemathics.apis.type.shared.v1.Keys mapping = 2;

src/systemathics/apis/services/tick/v1/tick_trades_and_book.proto

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525
syntax = "proto3";
2626

2727
import "google/protobuf/timestamp.proto";
28+
import "google/protobuf/wrappers.proto";
2829

2930
import "systemathics/apis/type/shared/v1/constraints.proto";
30-
import "systemathics/apis/type/shared/v1/level.proto";
31-
import "systemathics/apis/type/shared/v1/identifier.proto";
31+
import "systemathics/apis/type/shared/v1/identifier_and_level.proto";
3232
import "systemathics/apis/type/shared/v1/keys.proto";
33-
import "systemathics/apis/type/shared/v1/book.proto";
34-
import "systemathics/apis/type/shared/v1/trade_and_book.proto";
33+
import "systemathics/apis/type/shared/v1/book_updates.proto";
34+
import "systemathics/apis/type/shared/v1/trade_and_book_data.proto";
3535

3636
package systemathics.apis.services.tick.v1;
3737

@@ -45,12 +45,21 @@ service TickTradesAndBookService
4545
// The required inputs to request the TickTradesAndBookService.
4646
message TickTradesAndBookRequest
4747
{
48-
// [Mandatory] The instrument identifiers: a list of tickers and exchanges
49-
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
48+
// [Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams
49+
repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1;
5050

51+
// [Mandatory] The book update scheme (snapshots only, or, initial snapshot then incremental updates)
52+
systemathics.apis.type.shared.v1.BookUpdates book_updates = 2;
53+
5154
// [Optional] The time constraints used to define the look-back period.
5255
// If empty, then all the available data is retrieved.
53-
systemathics.apis.type.shared.v1.Constraints constraints = 2;
56+
systemathics.apis.type.shared.v1.Constraints constraints = 3;
57+
58+
// [Optional] The corporate action adjustment, by default the value is set to false
59+
bool adjustment = 4;
60+
61+
// [Optional] The maximum number of depth, if not set use the default (10).
62+
google.protobuf.Int32Value max_depth = 5;
5463
}
5564

5665
// Contains the tick by tick normalized trades data: key, time stamp, price, size, condition.
@@ -59,7 +68,7 @@ message TickTradesAndBookResponse
5968
oneof payload
6069
{
6170
// The trade and book data
62-
systemathics.apis.type.shared.v1.TradeAndBook data = 1;
71+
systemathics.apis.type.shared.v1.TradeAndBookData data = 1;
6372

6473
// The mapping data
6574
systemathics.apis.type.shared.v1.Keys mapping = 2;

src/systemathics/apis/services/tick/v1/tick_updates.proto

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,19 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
// SOFTWARE.
2020

21-
// Normalized tick by tick data extraction for a given watchlist and a specific look-back period. This can be useful to:
22-
// <br>- Get specific historical dataset such as trades, top of book data...
23-
// <br>- Compute analytics on the top of preselected tick by tick data dataset
24-
// <br>- Feed best execution reports for a given watchlist over the time
21+
// Normalized tick by tick data updates:
22+
//<br>- Fields : open, close, trade, high ...
23+
//<br>- MBL : Market Book by Limit (contains the depth information)
24+
//<br>- MBO : Market Book by Order (contains the quotes or order details)
2525
syntax = "proto3";
2626

27-
import "google/protobuf/timestamp.proto";
28-
2927
import "systemathics/apis/type/shared/v1/constraints.proto";
30-
import "systemathics/apis/type/shared/v1/mappings.proto";
28+
import "systemathics/apis/type/shared/v1/keys.proto";
3129
import "systemathics/apis/type/shared/v1/level.proto";
32-
import "systemathics/apis/type/shared/v1/market_book_updates.proto";
30+
import "systemathics/apis/type/shared/v1/identifier_and_level.proto";
3331
import "systemathics/apis/type/shared/v1/market_fields_updates.proto";
34-
import "systemathics/apis/type/shared/v1/identifier.proto";
32+
import "systemathics/apis/type/shared/v1/mbl_market_book_updates.proto";
33+
import "systemathics/apis/type/shared/v1/mbo_market_book_updates.proto";
3534

3635
package systemathics.apis.services.tick.v1;
3736

@@ -45,36 +44,33 @@ service TickUpdatesService
4544
// The required inputs to request the TickUpdatesService.
4645
message TickUpdatesRequest
4746
{
48-
// [Mandatory] The instrument identifier: a ticker and exchange
49-
repeated systemathics.apis.type.shared.v1.Identifier identifiers = 1;
50-
51-
// [Mandatory] Level representing either Trades only(Level 1) or Trades + Book (Level 1 and Level 2)
52-
systemathics.apis.type.shared.v1.Level level = 2;
53-
47+
// [Mandatory] The instrument and streams identifiers: a list of tickers and exchanges and streams
48+
repeated systemathics.apis.type.shared.v1.IdentifierAndLevel identifiers = 1;
49+
5450
// [Optional] The time constraints used to define the look-back period.
5551
// If empty, then all the available data is retrieved.
56-
systemathics.apis.type.shared.v1.Constraints constraints = 3;
52+
systemathics.apis.type.shared.v1.Constraints constraints = 2;
53+
54+
// [Optional] The corporate action adjustment, by default the value is set to false
55+
bool adjustment = 3;
5756
}
5857

59-
// Contains the tick by tick normalized historical data: event source, timestamp and payload.
58+
// Contains the tick by tick normalized historical data.
6059
message TickUpdatesResponse
61-
{
62-
// Event source: short code for instrument identifier
63-
uint32 event_source = 1;
64-
65-
// Timestamp from the market
66-
google.protobuf.Timestamp time_stamp = 2;
67-
68-
// Payload: that can be a mapping (event source and instrument identifier), some fields update or some books update
60+
{
61+
// Payload: that can be a mapping (event source and instrument identifier), the fields update or the books update
6962
oneof payload
7063
{
71-
// Some fields update
72-
systemathics.apis.type.shared.v1.MarketFieldsUpdates fields_updates = 3;
64+
// The fields update
65+
systemathics.apis.type.shared.v1.MarketFieldsUpdates fields_updates = 1;
7366

74-
// Some books update
75-
systemathics.apis.type.shared.v1.MarketBookUpdates book_updates = 4;
67+
// The MBL books update
68+
systemathics.apis.type.shared.v1.MblMarketBookUpdates mbl_book_updates = 2;
7669

77-
// Event source and instrument identifier mapping. It's sent once when streaming begins.
78-
systemathics.apis.type.shared.v1.Mappings mappings = 5;
70+
// The MBO books update
71+
systemathics.apis.type.shared.v1.MboMarketBookUpdates mbo_book_updates = 3;
72+
73+
// The mapping data
74+
systemathics.apis.type.shared.v1.Keys mapping = 4;
7975
}
8076
}

0 commit comments

Comments
 (0)