syntax = "proto3"; option java_multiple_files = true; option java_package = "com.dexorder.proto"; message Tick { // Unique identifier for the trade string trade_id = 1; // Market identifier in Nautilus format: "BTC/USDT.BINANCE" string ticker = 2; // Timestamp in nanoseconds since epoch uint64 timestamp = 3; // Price as a scaled integer (divide by 10^price_precision from Market metadata) int64 price = 4; // Base asset amount as a scaled integer (divide by 10^size_precision from Market metadata) int64 amount = 5; // Quote asset amount as a scaled integer int64 quote_amount = 6; // Side: true = taker buy (market buy), false = taker sell (market sell) bool taker_buy = 7; // Position effect: true = close position, false = open position // Only relevant for derivatives/futures markets optional bool to_close = 8; // Sequence number for ordering (if provided by exchange) optional uint64 sequence = 9; // Additional flags for special trade types optional TradeFlags flags = 10; // When true: synthetic seed record carrying pre-aggregated OHLC for accumulator init. // price = open (scaled), amount = volume (scaled); seed_* fields carry H/L/C/period. optional bool is_seed = 11; optional int64 seed_high = 12; optional int64 seed_low = 13; optional int64 seed_close = 14; optional uint64 seed_window_start_ms = 15; optional uint32 seed_period_seconds = 16; } message TradeFlags { // Liquidation trade bool is_liquidation = 1; // Block trade (large OTC trade) bool is_block_trade = 2; // Maker side was a post-only order bool maker_post_only = 3; // Trade occurred during auction bool is_auction = 4; }