Stockbit Research research Playground @hansputera
stockbit.proto — 7.6 KB Download
syntax = "proto3"; package stockbit; message WebsocketRequest { string user_id = 1; WebsocketChannel channel = 2; string key = 3; PingRequest ping = 4; string access_token = 5; } message PingRequest { string message = 1; } message WebsocketChannel { repeated string watchlist = 1; repeated string order_book = 2; repeated string running_trade = 3; bool is_hotlist = 4; repeated string running_trade_batch = 5; repeated string liveprice = 6; repeated string iepiev = 7; repeated string intraday = 8; repeated string best_bid_offer = 9; repeated MarketMoverWebsocketRequest market_mover = 10; repeated OrderQueueWebsocketRequest order_queue = 11; repeated string liveprice_v3 = 12; repeated string order_book_v3 = 13; repeated string intraday_v3 = 14; } message MarketMoverWebsocketRequest { MoverType mover_type = 1; repeated FilterStocksType filter_stocks = 2; } message OrderQueueWebsocketRequest { string stock_code = 1; double price = 2; BoardType board_type = 3; ActionType action_type = 4; } message OrderbookFeed { string symbol = 1; bytes orderbook_data = 2; int64 sequence = 3; int32 board = 4; string timestamp = 5; int64 flag = 8; string timestamp_ns = 9; } message WebsocketWrapMessage { oneof event { RunningTradeBatch running_trade = 8; LivePrice liveprice = 9; OrderbookFeed orderbook = 10; } } message LivePrice { string stock_code = 1; double lastprice = 2; double volume = 3; double high = 4; double low = 5; double open = 6; double frequency = 7; double frg_buy = 8; double frg_sell = 9; double average = 10; string date = 11; double close = 12; double prev = 13; double value = 14; Change change = 15; string order_verb = 16; int64 quantity = 17; bool is_index = 18; int64 sequence_number = 19; int64 order_book_id = 20; int64 order_number = 21; int64 match_number = 22; BoardType board = 23; Source source = 24; SwitchReset switch_reset = 25; string itch_incoming_time = 26; } message LivePrice_v3 { string stock_code = 1; DecimalValue lastprice = 2; DecimalValue volume = 3; DecimalValue high = 4; DecimalValue low = 5; DecimalValue open = 6; DecimalValue frequency = 7; DecimalValue frg_buy = 8; DecimalValue frg_sell = 9; DecimalValue average = 10; string date = 11; DecimalValue close = 12; DecimalValue prev = 13; DecimalValue value = 14; Change change = 15; string order_verb = 16; DecimalValue quantity = 17; bool is_index = 18; int64 sequence_number = 19; int64 order_book_id = 20; int64 order_number = 21; int64 match_number = 22; BoardType board = 23; Source source = 24; SwitchReset switch_reset = 25; string itch_incoming_time = 26; DecimalValue market_cap = 27; } message DecimalValue { int64 units = 1; sfixed32 nanos = 2; } message Orderbook_v3 { string symbol = 1; repeated OrderBookData bid = 2; repeated OrderBookData offer = 3; OrderBookData total_bid = 4; OrderBookData total_offer = 5; Timestamp timestamp = 6; } message OrderBookData { DecimalValue volume = 1; DecimalValue price = 2; DecimalValue frequency = 3; } message RunningTrade { Timestamp websocket_time = 1; string stock = 2; double price = 3; double volume = 4; TradeType action = 5; bool is_global = 6; Timestamp time = 7; Change change = 8; uint32 trade_number = 9; MarketBoardType market_board = 10; double value = 11; } message RunningTradeBatch { repeated RunningTrade trades = 1; } message BestBidOfferWS { string stock_code = 1; int64 sequence_number = 2; BestOrder best_bid = 3; BestOrder best_offer = 4; string datetime = 5; } message BestOrder { Value price = 1; Value quantity = 2; string change_percentage = 3; } message Value { double raw = 1; string formatted = 2; } message OrderQueueWebsocket { repeated OrderQueueWebsocketData data = 1; } message OrderQueueWebsocketData { string stock_code = 1; string time = 2; ActionType action_type = 3; double price = 4; OrderStatus status = 5; double open = 6; double lot = 7; BoardType board_type = 8; ExchangeOrderNumber exchange_order_number = 9; int64 order_number = 10; double open_change_quantity = 11; } message ExchangeOrderNumber { int32 number = 1; int32 board = 2; int32 original_number = 3; } message MarketMoverBatch { repeated MarketMoverData data = 1; } message MarketMoverData { string stock_code = 1; double price = 2; double change = 3; double volume = 4; double value = 5; double frequency = 6; } message Watchlist { repeated WatchlistData data = 1; } message WatchlistData { string stock_code = 1; double lastprice = 2; double change = 3; double change_percent = 4; double volume = 5; } message IEPIEV { string stock_code = 1; double iep = 2; double iev = 3; double iep_change = 4; int64 total_buy_lot = 5; int64 total_sell_lot = 6; } message Intraday { string stock_code = 1; double price = 2; double volume = 3; double value = 4; double frequency = 5; int64 timestamp = 6; } message Intraday_v3 { string stock_code = 1; DecimalValue price = 2; DecimalValue volume = 3; DecimalValue value = 4; DecimalValue frequency = 5; int64 timestamp = 6; } message Orderbook { string stock_symbol = 1; repeated OrderbookLevel bid = 2; repeated OrderbookLevel offer = 3; Timestamp time = 4; double open = 5; double high = 6; double low = 7; double previous = 8; } message OrderbookLevel { double price = 1; double lot = 2; double volume = 3; } message OrderBookHeader { string stock_symbol = 1; double open = 2; double high = 3; double low = 4; double previous = 5; Timestamp time = 6; } message Top20 { repeated Top20Data gainers = 1; repeated Top20Data losers = 2; repeated Top20Data active = 3; } message Top20Data { string stock_code = 1; double price = 2; double change = 3; double change_percent = 4; double volume = 5; double value = 6; } message OrderBookBody { string stock_symbol = 1; repeated Bid bid = 2; repeated Offer offer = 3; Timestamp time = 4; } message Bid { double price = 1; double lot = 2; } message Offer { double price = 1; double lot = 2; } message Timestamp { int64 seconds = 1; int32 nanos = 2; } message PingResponse { int64 timestamp = 1; string message = 2; } message Error { string message = 1; int32 code = 2; } enum BoardType { REGULAR = 0; NEGOTIATION = 1; CASH = 2; ALL = 3; } enum ActionType { ACTION_BUY = 0; ACTION_SELL = 1; ACTION_ALL = 2; } enum OrderStatus { OPEN = 0; FULL_MATCH = 1; WITHDRAWN = 2; PARTIAL_MATCH = 3; AMEND = 4; ORDER_ALL = 5; } enum MoverType { TOP_GAINER = 0; TOP_LOSER = 1; MOST_ACTIVE = 2; } enum FilterStocksType { FILTER_ALL = 0; FILTER_REGULER = 1; FILTER_TUNAI = 2; FILTER_NEGO = 3; } enum Source { SOURCE_REGULER = 0; SOURCE_TUNAI = 1; SOURCE_NEGO = 2; SOURCE_NON_REGULER = 3; SOURCE_ALL_MARKET = 4; } enum SwitchReset { NO_SWITCH = 0; SWITCH = 1; RESET = 2; } enum Change { NO_CHANGE = 0; UP = 1; DOWN = 2; } enum TradeType { BUY = 0; SELL = 1; } enum MarketBoardType { MARKET_REGULER = 0; MARKET_TUNAI = 1; MARKET_NEGO = 2; }