#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiSecurityRequest {
#[prost(string, repeated, tag = "1")]
pub symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityStaticInfoResponse {
#[prost(message, repeated, tag = "1")]
pub secu_static_info: ::prost::alloc::vec::Vec<StaticInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StaticInfo {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name_cn: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub name_en: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub name_hk: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub listing_date: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub exchange: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub currency: ::prost::alloc::string::String,
#[prost(int32, tag = "8")]
pub lot_size: i32,
#[prost(int64, tag = "9")]
pub total_shares: i64,
#[prost(int64, tag = "10")]
pub circulating_shares: i64,
#[prost(int64, tag = "11")]
pub hk_shares: i64,
#[prost(string, tag = "12")]
pub eps: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub eps_ttm: ::prost::alloc::string::String,
#[prost(string, tag = "14")]
pub bps: ::prost::alloc::string::String,
#[prost(string, tag = "15")]
pub dividend_yield: ::prost::alloc::string::String,
#[prost(int32, repeated, tag = "16")]
pub stock_derivatives: ::prost::alloc::vec::Vec<i32>,
#[prost(string, tag = "17")]
pub board: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityQuoteResponse {
#[prost(message, repeated, tag = "1")]
pub secu_quote: ::prost::alloc::vec::Vec<SecurityQuote>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityQuote {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub open: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub high: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub low: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub timestamp: i64,
#[prost(int64, tag = "8")]
pub volume: i64,
#[prost(string, tag = "9")]
pub turnover: ::prost::alloc::string::String,
#[prost(enumeration = "TradeStatus", tag = "10")]
pub trade_status: i32,
#[prost(message, optional, tag = "11")]
pub pre_market_quote: ::core::option::Option<PrePostQuote>,
#[prost(message, optional, tag = "12")]
pub post_market_quote: ::core::option::Option<PrePostQuote>,
#[prost(message, optional, tag = "13")]
pub over_night_quote: ::core::option::Option<PrePostQuote>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrePostQuote {
#[prost(string, tag = "1")]
pub last_done: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub timestamp: i64,
#[prost(int64, tag = "3")]
pub volume: i64,
#[prost(string, tag = "4")]
pub turnover: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub high: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub low: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub prev_close: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionQuoteResponse {
#[prost(message, repeated, tag = "1")]
pub secu_quote: ::prost::alloc::vec::Vec<OptionQuote>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionQuote {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub open: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub high: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub low: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub timestamp: i64,
#[prost(int64, tag = "8")]
pub volume: i64,
#[prost(string, tag = "9")]
pub turnover: ::prost::alloc::string::String,
#[prost(enumeration = "TradeStatus", tag = "10")]
pub trade_status: i32,
#[prost(message, optional, tag = "11")]
pub option_extend: ::core::option::Option<OptionExtend>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionExtend {
#[prost(string, tag = "1")]
pub implied_volatility: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub open_interest: i64,
#[prost(string, tag = "3")]
pub expiry_date: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub contract_multiplier: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub contract_type: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub contract_size: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub direction: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub historical_volatility: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub underlying_symbol: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarrantQuoteResponse {
#[prost(message, repeated, tag = "2")]
pub secu_quote: ::prost::alloc::vec::Vec<WarrantQuote>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarrantQuote {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub prev_close: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub open: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub high: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub low: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub timestamp: i64,
#[prost(int64, tag = "8")]
pub volume: i64,
#[prost(string, tag = "9")]
pub turnover: ::prost::alloc::string::String,
#[prost(enumeration = "TradeStatus", tag = "10")]
pub trade_status: i32,
#[prost(message, optional, tag = "11")]
pub warrant_extend: ::core::option::Option<WarrantExtend>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarrantExtend {
#[prost(string, tag = "1")]
pub implied_volatility: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub expiry_date: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub last_trade_date: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub outstanding_ratio: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub outstanding_qty: i64,
#[prost(string, tag = "6")]
pub conversion_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub category: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub upper_strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub lower_strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "11")]
pub call_price: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub underlying_symbol: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityDepthResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub ask: ::prost::alloc::vec::Vec<Depth>,
#[prost(message, repeated, tag = "3")]
pub bid: ::prost::alloc::vec::Vec<Depth>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Depth {
#[prost(int32, tag = "1")]
pub position: i32,
#[prost(string, tag = "2")]
pub price: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
pub volume: i64,
#[prost(int64, tag = "4")]
pub order_num: i64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityBrokersResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub ask_brokers: ::prost::alloc::vec::Vec<Brokers>,
#[prost(message, repeated, tag = "3")]
pub bid_brokers: ::prost::alloc::vec::Vec<Brokers>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Brokers {
#[prost(int32, tag = "1")]
pub position: i32,
#[prost(int32, repeated, tag = "2")]
pub broker_ids: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantBrokerIdsResponse {
#[prost(message, repeated, tag = "1")]
pub participant_broker_numbers: ::prost::alloc::vec::Vec<ParticipantInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParticipantInfo {
#[prost(int32, repeated, tag = "1")]
pub broker_ids: ::prost::alloc::vec::Vec<i32>,
#[prost(string, tag = "2")]
pub participant_name_cn: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub participant_name_en: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub participant_name_hk: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityTradeRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub count: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityTradeResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub trades: ::prost::alloc::vec::Vec<Trade>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trade {
#[prost(string, tag = "1")]
pub price: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub volume: i64,
#[prost(int64, tag = "3")]
pub timestamp: i64,
#[prost(string, tag = "4")]
pub trade_type: ::prost::alloc::string::String,
#[prost(int32, tag = "5")]
pub direction: i32,
#[prost(enumeration = "TradeSession", tag = "6")]
pub trade_session: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityIntradayRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub trade_session: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityIntradayResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub lines: ::prost::alloc::vec::Vec<Line>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Line {
#[prost(string, tag = "1")]
pub price: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub timestamp: i64,
#[prost(int64, tag = "3")]
pub volume: i64,
#[prost(string, tag = "4")]
pub turnover: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub avg_price: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityCandlestickRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration = "Period", tag = "2")]
pub period: i32,
#[prost(int32, tag = "3")]
pub count: i32,
#[prost(enumeration = "AdjustType", tag = "4")]
pub adjust_type: i32,
#[prost(int32, tag = "5")]
pub trade_session: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityCandlestickResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub candlesticks: ::prost::alloc::vec::Vec<Candlestick>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Candlestick {
#[prost(string, tag = "1")]
pub close: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub open: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub low: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub high: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub volume: i64,
#[prost(string, tag = "6")]
pub turnover: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub timestamp: i64,
#[prost(enumeration = "TradeSession", tag = "8")]
pub trade_session: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionChainDateListResponse {
#[prost(string, repeated, tag = "1")]
pub expiry_date: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionChainDateStrikeInfoRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub expiry_date: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OptionChainDateStrikeInfoResponse {
#[prost(message, repeated, tag = "1")]
pub strike_price_info: ::prost::alloc::vec::Vec<StrikePriceInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StrikePriceInfo {
#[prost(string, tag = "1")]
pub price: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub call_symbol: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub put_symbol: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub standard: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IssuerInfoResponse {
#[prost(message, repeated, tag = "1")]
pub issuer_info: ::prost::alloc::vec::Vec<IssuerInfo>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IssuerInfo {
#[prost(int32, tag = "1")]
pub id: i32,
#[prost(string, tag = "2")]
pub name_cn: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub name_en: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub name_hk: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarrantFilterListRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub filter_config: ::core::option::Option<FilterConfig>,
#[prost(int32, tag = "3")]
pub language: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterConfig {
#[prost(int32, tag = "1")]
pub sort_by: i32,
#[prost(int32, tag = "2")]
pub sort_order: i32,
#[prost(int32, tag = "3")]
pub sort_offset: i32,
#[prost(int32, tag = "4")]
pub sort_count: i32,
#[prost(int32, repeated, tag = "5")]
pub r#type: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "6")]
pub issuer: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "7")]
pub expiry_date: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "8")]
pub price_type: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "9")]
pub status: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarrantFilterListResponse {
#[prost(message, repeated, tag = "1")]
pub warrant_list: ::prost::alloc::vec::Vec<FilterWarrant>,
#[prost(int32, tag = "2")]
pub total_count: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterWarrant {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub change_val: ::prost::alloc::string::String,
#[prost(int64, tag = "6")]
pub volume: i64,
#[prost(string, tag = "7")]
pub turnover: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub expiry_date: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub upper_strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "11")]
pub lower_strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub outstanding_qty: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub outstanding_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "14")]
pub premium: ::prost::alloc::string::String,
#[prost(string, tag = "15")]
pub itm_otm: ::prost::alloc::string::String,
#[prost(string, tag = "16")]
pub implied_volatility: ::prost::alloc::string::String,
#[prost(string, tag = "17")]
pub delta: ::prost::alloc::string::String,
#[prost(string, tag = "18")]
pub call_price: ::prost::alloc::string::String,
#[prost(string, tag = "19")]
pub to_call_price: ::prost::alloc::string::String,
#[prost(string, tag = "20")]
pub effective_leverage: ::prost::alloc::string::String,
#[prost(string, tag = "21")]
pub leverage_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "22")]
pub conversion_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "23")]
pub balance_point: ::prost::alloc::string::String,
#[prost(int32, tag = "24")]
pub status: i32,
#[prost(int32, tag = "25")]
pub r#type: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketTradePeriodResponse {
#[prost(message, repeated, tag = "1")]
pub market_trade_session: ::prost::alloc::vec::Vec<MarketTradePeriod>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketTradePeriod {
#[prost(string, tag = "1")]
pub market: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub trade_session: ::prost::alloc::vec::Vec<TradePeriod>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TradePeriod {
#[prost(int32, tag = "1")]
pub beg_time: i32,
#[prost(int32, tag = "2")]
pub end_time: i32,
#[prost(enumeration = "TradeSession", tag = "3")]
pub trade_session: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SubscriptionRequest {}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscriptionResponse {
#[prost(message, repeated, tag = "1")]
pub sub_list: ::prost::alloc::vec::Vec<SubTypeList>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubTypeList {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration = "SubType", repeated, tag = "2")]
pub sub_type: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribeRequest {
#[prost(string, repeated, tag = "1")]
pub symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration = "SubType", repeated, tag = "2")]
pub sub_type: ::prost::alloc::vec::Vec<i32>,
#[prost(bool, tag = "3")]
pub is_first_push: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnsubscribeRequest {
#[prost(string, repeated, tag = "1")]
pub symbol: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration = "SubType", repeated, tag = "2")]
pub sub_type: ::prost::alloc::vec::Vec<i32>,
#[prost(bool, tag = "3")]
pub unsub_all: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UnsubscribeResponse {}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushQuote {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub sequence: i64,
#[prost(string, tag = "3")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub open: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub high: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub low: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub timestamp: i64,
#[prost(int64, tag = "8")]
pub volume: i64,
#[prost(string, tag = "9")]
pub turnover: ::prost::alloc::string::String,
#[prost(enumeration = "TradeStatus", tag = "10")]
pub trade_status: i32,
#[prost(enumeration = "TradeSession", tag = "11")]
pub trade_session: i32,
#[prost(int64, tag = "12")]
pub current_volume: i64,
#[prost(string, tag = "13")]
pub current_turnover: ::prost::alloc::string::String,
#[prost(enumeration = "PushQuoteTag", tag = "14")]
pub tag: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushDepth {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub sequence: i64,
#[prost(message, repeated, tag = "3")]
pub ask: ::prost::alloc::vec::Vec<Depth>,
#[prost(message, repeated, tag = "4")]
pub bid: ::prost::alloc::vec::Vec<Depth>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushBrokers {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub sequence: i64,
#[prost(message, repeated, tag = "3")]
pub ask_brokers: ::prost::alloc::vec::Vec<Brokers>,
#[prost(message, repeated, tag = "4")]
pub bid_brokers: ::prost::alloc::vec::Vec<Brokers>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PushTrade {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub sequence: i64,
#[prost(message, repeated, tag = "3")]
pub trade: ::prost::alloc::vec::Vec<Trade>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketTradeDayRequest {
#[prost(string, tag = "1")]
pub market: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub beg_day: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub end_day: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketTradeDayResponse {
#[prost(string, repeated, tag = "1")]
pub trade_day: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "2")]
pub half_trade_day: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapitalFlowIntradayRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapitalFlowIntradayResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub capital_flow_lines: ::prost::alloc::vec::Vec<
capital_flow_intraday_response::CapitalFlowLine,
>,
}
pub mod capital_flow_intraday_response {
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapitalFlowLine {
#[prost(string, tag = "1")]
pub inflow: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub timestamp: i64,
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapitalDistributionResponse {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
pub timestamp: i64,
#[prost(message, optional, tag = "3")]
pub capital_in: ::core::option::Option<
capital_distribution_response::CapitalDistribution,
>,
#[prost(message, optional, tag = "4")]
pub capital_out: ::core::option::Option<
capital_distribution_response::CapitalDistribution,
>,
}
pub mod capital_distribution_response {
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapitalDistribution {
#[prost(string, tag = "1")]
pub large: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub medium: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub small: ::prost::alloc::string::String,
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityCalcQuoteRequest {
#[prost(string, repeated, tag = "1")]
pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration = "CalcIndex", repeated, tag = "2")]
pub calc_index: ::prost::alloc::vec::Vec<i32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityCalcIndex {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub last_done: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub change_val: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub change_rate: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub volume: i64,
#[prost(string, tag = "6")]
pub turnover: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub ytd_change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub turnover_rate: ::prost::alloc::string::String,
#[prost(string, tag = "9")]
pub total_market_value: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub capital_flow: ::prost::alloc::string::String,
#[prost(string, tag = "11")]
pub amplitude: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub volume_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "13")]
pub pe_ttm_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "14")]
pub pb_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "15")]
pub dividend_ratio_ttm: ::prost::alloc::string::String,
#[prost(string, tag = "16")]
pub five_day_change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "17")]
pub ten_day_change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "18")]
pub half_year_change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "19")]
pub five_minutes_change_rate: ::prost::alloc::string::String,
#[prost(string, tag = "20")]
pub expiry_date: ::prost::alloc::string::String,
#[prost(string, tag = "21")]
pub strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "22")]
pub upper_strike_price: ::prost::alloc::string::String,
#[prost(string, tag = "23")]
pub lower_strike_price: ::prost::alloc::string::String,
#[prost(int64, tag = "24")]
pub outstanding_qty: i64,
#[prost(string, tag = "25")]
pub outstanding_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "26")]
pub premium: ::prost::alloc::string::String,
#[prost(string, tag = "27")]
pub itm_otm: ::prost::alloc::string::String,
#[prost(string, tag = "28")]
pub implied_volatility: ::prost::alloc::string::String,
#[prost(string, tag = "29")]
pub warrant_delta: ::prost::alloc::string::String,
#[prost(string, tag = "30")]
pub call_price: ::prost::alloc::string::String,
#[prost(string, tag = "31")]
pub to_call_price: ::prost::alloc::string::String,
#[prost(string, tag = "32")]
pub effective_leverage: ::prost::alloc::string::String,
#[prost(string, tag = "33")]
pub leverage_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "34")]
pub conversion_ratio: ::prost::alloc::string::String,
#[prost(string, tag = "35")]
pub balance_point: ::prost::alloc::string::String,
#[prost(int64, tag = "36")]
pub open_interest: i64,
#[prost(string, tag = "37")]
pub delta: ::prost::alloc::string::String,
#[prost(string, tag = "38")]
pub gamma: ::prost::alloc::string::String,
#[prost(string, tag = "39")]
pub theta: ::prost::alloc::string::String,
#[prost(string, tag = "40")]
pub vega: ::prost::alloc::string::String,
#[prost(string, tag = "41")]
pub rho: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityCalcQuoteResponse {
#[prost(message, repeated, tag = "1")]
pub security_calc_index: ::prost::alloc::vec::Vec<SecurityCalcIndex>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SecurityHistoryCandlestickRequest {
#[prost(string, tag = "1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration = "Period", tag = "2")]
pub period: i32,
#[prost(enumeration = "AdjustType", tag = "3")]
pub adjust_type: i32,
#[prost(enumeration = "HistoryCandlestickQueryType", tag = "4")]
pub query_type: i32,
#[prost(message, optional, tag = "5")]
pub offset_request: ::core::option::Option<
security_history_candlestick_request::OffsetQuery,
>,
#[prost(message, optional, tag = "6")]
pub date_request: ::core::option::Option<
security_history_candlestick_request::DateQuery,
>,
#[prost(int32, tag = "7")]
pub trade_session: i32,
}
pub mod security_history_candlestick_request {
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OffsetQuery {
#[prost(enumeration = "super::Direction", tag = "1")]
pub direction: i32,
#[prost(string, tag = "2")]
pub date: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub minute: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub count: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DateQuery {
#[prost(string, tag = "1")]
pub start_date: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub end_date: ::prost::alloc::string::String,
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserQuoteProfileRequest {
#[prost(string, tag = "1")]
pub language: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RateLimit {
#[prost(enumeration = "Command", tag = "1")]
pub command: i32,
#[prost(int32, tag = "2")]
pub limit: i32,
#[prost(int32, tag = "3")]
pub burst: i32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserQuoteLevelDetail {
#[prost(map = "string, message", tag = "1")]
pub by_package_key: ::std::collections::HashMap<
::prost::alloc::string::String,
user_quote_level_detail::PackageDetail,
>,
#[prost(map = "string, message", tag = "2")]
pub by_market_code: ::std::collections::HashMap<
::prost::alloc::string::String,
user_quote_level_detail::MarketPackageDetail,
>,
}
pub mod user_quote_level_detail {
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PackageDetail {
#[prost(string, tag = "1")]
pub key: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub description: ::prost::alloc::string::String,
#[prost(int64, tag = "5")]
pub start: i64,
#[prost(int64, tag = "6")]
pub end: i64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketPackageDetail {
#[prost(message, repeated, tag = "1")]
pub packages: ::prost::alloc::vec::Vec<PackageDetail>,
#[prost(string, tag = "4")]
pub warning_msg: ::prost::alloc::string::String,
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserQuoteProfileResponse {
#[prost(int64, tag = "1")]
pub member_id: i64,
#[prost(string, tag = "2")]
pub quote_level: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub subscribe_limit: i32,
#[prost(int32, tag = "4")]
pub history_candlestick_limit: i32,
#[prost(message, repeated, tag = "5")]
pub rate_limit: ::prost::alloc::vec::Vec<RateLimit>,
#[prost(message, optional, tag = "6")]
pub quote_level_detail: ::core::option::Option<UserQuoteLevelDetail>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Command {
UnknownCommand = 0,
HeartBeat = 1,
Auth = 2,
Reconnect = 3,
QueryUserQuoteProfile = 4,
Subscription = 5,
Subscribe = 6,
Unsubscribe = 7,
QueryMarketTradePeriod = 8,
QueryMarketTradeDay = 9,
QuerySecurityStaticInfo = 10,
QuerySecurityQuote = 11,
QueryOptionQuote = 12,
QueryWarrantQuote = 13,
QueryDepth = 14,
QueryBrokers = 15,
QueryParticipantBrokerIds = 16,
QueryTrade = 17,
QueryIntraday = 18,
QueryCandlestick = 19,
QueryOptionChainDate = 20,
QueryOptionChainDateStrikeInfo = 21,
QueryWarrantIssuerInfo = 22,
QueryWarrantFilterList = 23,
QueryCapitalFlowIntraday = 24,
QueryCapitalFlowDistribution = 25,
QuerySecurityCalcIndex = 26,
QueryHistoryCandlestick = 27,
PushQuoteData = 101,
PushDepthData = 102,
PushBrokersData = 103,
PushTradeData = 104,
}
impl Command {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownCommand => "UNKNOWN_COMMAND",
Self::HeartBeat => "HEART_BEAT",
Self::Auth => "AUTH",
Self::Reconnect => "RECONNECT",
Self::QueryUserQuoteProfile => "QueryUserQuoteProfile",
Self::Subscription => "Subscription",
Self::Subscribe => "Subscribe",
Self::Unsubscribe => "Unsubscribe",
Self::QueryMarketTradePeriod => "QueryMarketTradePeriod",
Self::QueryMarketTradeDay => "QueryMarketTradeDay",
Self::QuerySecurityStaticInfo => "QuerySecurityStaticInfo",
Self::QuerySecurityQuote => "QuerySecurityQuote",
Self::QueryOptionQuote => "QueryOptionQuote",
Self::QueryWarrantQuote => "QueryWarrantQuote",
Self::QueryDepth => "QueryDepth",
Self::QueryBrokers => "QueryBrokers",
Self::QueryParticipantBrokerIds => "QueryParticipantBrokerIds",
Self::QueryTrade => "QueryTrade",
Self::QueryIntraday => "QueryIntraday",
Self::QueryCandlestick => "QueryCandlestick",
Self::QueryOptionChainDate => "QueryOptionChainDate",
Self::QueryOptionChainDateStrikeInfo => "QueryOptionChainDateStrikeInfo",
Self::QueryWarrantIssuerInfo => "QueryWarrantIssuerInfo",
Self::QueryWarrantFilterList => "QueryWarrantFilterList",
Self::QueryCapitalFlowIntraday => "QueryCapitalFlowIntraday",
Self::QueryCapitalFlowDistribution => "QueryCapitalFlowDistribution",
Self::QuerySecurityCalcIndex => "QuerySecurityCalcIndex",
Self::QueryHistoryCandlestick => "QueryHistoryCandlestick",
Self::PushQuoteData => "PushQuoteData",
Self::PushDepthData => "PushDepthData",
Self::PushBrokersData => "PushBrokersData",
Self::PushTradeData => "PushTradeData",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_COMMAND" => Some(Self::UnknownCommand),
"HEART_BEAT" => Some(Self::HeartBeat),
"AUTH" => Some(Self::Auth),
"RECONNECT" => Some(Self::Reconnect),
"QueryUserQuoteProfile" => Some(Self::QueryUserQuoteProfile),
"Subscription" => Some(Self::Subscription),
"Subscribe" => Some(Self::Subscribe),
"Unsubscribe" => Some(Self::Unsubscribe),
"QueryMarketTradePeriod" => Some(Self::QueryMarketTradePeriod),
"QueryMarketTradeDay" => Some(Self::QueryMarketTradeDay),
"QuerySecurityStaticInfo" => Some(Self::QuerySecurityStaticInfo),
"QuerySecurityQuote" => Some(Self::QuerySecurityQuote),
"QueryOptionQuote" => Some(Self::QueryOptionQuote),
"QueryWarrantQuote" => Some(Self::QueryWarrantQuote),
"QueryDepth" => Some(Self::QueryDepth),
"QueryBrokers" => Some(Self::QueryBrokers),
"QueryParticipantBrokerIds" => Some(Self::QueryParticipantBrokerIds),
"QueryTrade" => Some(Self::QueryTrade),
"QueryIntraday" => Some(Self::QueryIntraday),
"QueryCandlestick" => Some(Self::QueryCandlestick),
"QueryOptionChainDate" => Some(Self::QueryOptionChainDate),
"QueryOptionChainDateStrikeInfo" => {
Some(Self::QueryOptionChainDateStrikeInfo)
}
"QueryWarrantIssuerInfo" => Some(Self::QueryWarrantIssuerInfo),
"QueryWarrantFilterList" => Some(Self::QueryWarrantFilterList),
"QueryCapitalFlowIntraday" => Some(Self::QueryCapitalFlowIntraday),
"QueryCapitalFlowDistribution" => Some(Self::QueryCapitalFlowDistribution),
"QuerySecurityCalcIndex" => Some(Self::QuerySecurityCalcIndex),
"QueryHistoryCandlestick" => Some(Self::QueryHistoryCandlestick),
"PushQuoteData" => Some(Self::PushQuoteData),
"PushDepthData" => Some(Self::PushDepthData),
"PushBrokersData" => Some(Self::PushBrokersData),
"PushTradeData" => Some(Self::PushTradeData),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TradeStatus {
Normal = 0,
Halted = 1,
Delisted = 2,
Fuse = 3,
PrepareList = 4,
CodeMoved = 5,
ToBeOpened = 6,
SplitStockHalts = 7,
Expired = 8,
WarrantPrepareList = 9,
SuspendTrade = 10,
}
impl TradeStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Normal => "NORMAL",
Self::Halted => "HALTED",
Self::Delisted => "DELISTED",
Self::Fuse => "FUSE",
Self::PrepareList => "PREPARE_LIST",
Self::CodeMoved => "CODE_MOVED",
Self::ToBeOpened => "TO_BE_OPENED",
Self::SplitStockHalts => "SPLIT_STOCK_HALTS",
Self::Expired => "EXPIRED",
Self::WarrantPrepareList => "WARRANT_PREPARE_LIST",
Self::SuspendTrade => "SUSPEND_TRADE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NORMAL" => Some(Self::Normal),
"HALTED" => Some(Self::Halted),
"DELISTED" => Some(Self::Delisted),
"FUSE" => Some(Self::Fuse),
"PREPARE_LIST" => Some(Self::PrepareList),
"CODE_MOVED" => Some(Self::CodeMoved),
"TO_BE_OPENED" => Some(Self::ToBeOpened),
"SPLIT_STOCK_HALTS" => Some(Self::SplitStockHalts),
"EXPIRED" => Some(Self::Expired),
"WARRANT_PREPARE_LIST" => Some(Self::WarrantPrepareList),
"SUSPEND_TRADE" => Some(Self::SuspendTrade),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TradeSession {
NormalTrade = 0,
PreTrade = 1,
PostTrade = 2,
OvernightTrade = 3,
}
impl TradeSession {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::NormalTrade => "NORMAL_TRADE",
Self::PreTrade => "PRE_TRADE",
Self::PostTrade => "POST_TRADE",
Self::OvernightTrade => "OVERNIGHT_TRADE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NORMAL_TRADE" => Some(Self::NormalTrade),
"PRE_TRADE" => Some(Self::PreTrade),
"POST_TRADE" => Some(Self::PostTrade),
"OVERNIGHT_TRADE" => Some(Self::OvernightTrade),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AdjustType {
NoAdjust = 0,
ForwardAdjust = 1,
}
impl AdjustType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::NoAdjust => "NO_ADJUST",
Self::ForwardAdjust => "FORWARD_ADJUST",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NO_ADJUST" => Some(Self::NoAdjust),
"FORWARD_ADJUST" => Some(Self::ForwardAdjust),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Period {
UnknownPeriod = 0,
OneMinute = 1,
TwoMinute = 2,
ThreeMinute = 3,
FiveMinute = 5,
TenMinute = 10,
FifteenMinute = 15,
TwentyMinute = 20,
ThirtyMinute = 30,
FortyFiveMinute = 45,
SixtyMinute = 60,
TwoHour = 120,
ThreeHour = 180,
FourHour = 240,
Day = 1000,
Week = 2000,
Month = 3000,
Quarter = 3500,
Year = 4000,
}
impl Period {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownPeriod => "UNKNOWN_PERIOD",
Self::OneMinute => "ONE_MINUTE",
Self::TwoMinute => "TWO_MINUTE",
Self::ThreeMinute => "THREE_MINUTE",
Self::FiveMinute => "FIVE_MINUTE",
Self::TenMinute => "TEN_MINUTE",
Self::FifteenMinute => "FIFTEEN_MINUTE",
Self::TwentyMinute => "TWENTY_MINUTE",
Self::ThirtyMinute => "THIRTY_MINUTE",
Self::FortyFiveMinute => "FORTY_FIVE_MINUTE",
Self::SixtyMinute => "SIXTY_MINUTE",
Self::TwoHour => "TWO_HOUR",
Self::ThreeHour => "THREE_HOUR",
Self::FourHour => "FOUR_HOUR",
Self::Day => "DAY",
Self::Week => "WEEK",
Self::Month => "MONTH",
Self::Quarter => "QUARTER",
Self::Year => "YEAR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_PERIOD" => Some(Self::UnknownPeriod),
"ONE_MINUTE" => Some(Self::OneMinute),
"TWO_MINUTE" => Some(Self::TwoMinute),
"THREE_MINUTE" => Some(Self::ThreeMinute),
"FIVE_MINUTE" => Some(Self::FiveMinute),
"TEN_MINUTE" => Some(Self::TenMinute),
"FIFTEEN_MINUTE" => Some(Self::FifteenMinute),
"TWENTY_MINUTE" => Some(Self::TwentyMinute),
"THIRTY_MINUTE" => Some(Self::ThirtyMinute),
"FORTY_FIVE_MINUTE" => Some(Self::FortyFiveMinute),
"SIXTY_MINUTE" => Some(Self::SixtyMinute),
"TWO_HOUR" => Some(Self::TwoHour),
"THREE_HOUR" => Some(Self::ThreeHour),
"FOUR_HOUR" => Some(Self::FourHour),
"DAY" => Some(Self::Day),
"WEEK" => Some(Self::Week),
"MONTH" => Some(Self::Month),
"QUARTER" => Some(Self::Quarter),
"YEAR" => Some(Self::Year),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SubType {
UnknownType = 0,
Quote = 1,
Depth = 2,
Brokers = 3,
Trade = 4,
}
impl SubType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownType => "UNKNOWN_TYPE",
Self::Quote => "QUOTE",
Self::Depth => "DEPTH",
Self::Brokers => "BROKERS",
Self::Trade => "TRADE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_TYPE" => Some(Self::UnknownType),
"QUOTE" => Some(Self::Quote),
"DEPTH" => Some(Self::Depth),
"BROKERS" => Some(Self::Brokers),
"TRADE" => Some(Self::Trade),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PushQuoteTag {
Normal = 0,
Eod = 1,
}
impl PushQuoteTag {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Normal => "Normal",
Self::Eod => "Eod",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"Normal" => Some(Self::Normal),
"Eod" => Some(Self::Eod),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CalcIndex {
CalcindexUnknown = 0,
CalcindexLastDone = 1,
CalcindexChangeVal = 2,
CalcindexChangeRate = 3,
CalcindexVolume = 4,
CalcindexTurnover = 5,
CalcindexYtdChangeRate = 6,
CalcindexTurnoverRate = 7,
CalcindexTotalMarketValue = 8,
CalcindexCapitalFlow = 9,
CalcindexAmplitude = 10,
CalcindexVolumeRatio = 11,
CalcindexPeTtmRatio = 12,
CalcindexPbRatio = 13,
CalcindexDividendRatioTtm = 14,
CalcindexFiveDayChangeRate = 15,
CalcindexTenDayChangeRate = 16,
CalcindexHalfYearChangeRate = 17,
CalcindexFiveMinutesChangeRate = 18,
CalcindexExpiryDate = 19,
CalcindexStrikePrice = 20,
CalcindexUpperStrikePrice = 21,
CalcindexLowerStrikePrice = 22,
CalcindexOutstandingQty = 23,
CalcindexOutstandingRatio = 24,
CalcindexPremium = 25,
CalcindexItmOtm = 26,
CalcindexImpliedVolatility = 27,
CalcindexWarrantDelta = 28,
CalcindexCallPrice = 29,
CalcindexToCallPrice = 30,
CalcindexEffectiveLeverage = 31,
CalcindexLeverageRatio = 32,
CalcindexConversionRatio = 33,
CalcindexBalancePoint = 34,
CalcindexOpenInterest = 35,
CalcindexDelta = 36,
CalcindexGamma = 37,
CalcindexTheta = 38,
CalcindexVega = 39,
CalcindexRho = 40,
}
impl CalcIndex {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::CalcindexUnknown => "CALCINDEX_UNKNOWN",
Self::CalcindexLastDone => "CALCINDEX_LAST_DONE",
Self::CalcindexChangeVal => "CALCINDEX_CHANGE_VAL",
Self::CalcindexChangeRate => "CALCINDEX_CHANGE_RATE",
Self::CalcindexVolume => "CALCINDEX_VOLUME",
Self::CalcindexTurnover => "CALCINDEX_TURNOVER",
Self::CalcindexYtdChangeRate => "CALCINDEX_YTD_CHANGE_RATE",
Self::CalcindexTurnoverRate => "CALCINDEX_TURNOVER_RATE",
Self::CalcindexTotalMarketValue => "CALCINDEX_TOTAL_MARKET_VALUE",
Self::CalcindexCapitalFlow => "CALCINDEX_CAPITAL_FLOW",
Self::CalcindexAmplitude => "CALCINDEX_AMPLITUDE",
Self::CalcindexVolumeRatio => "CALCINDEX_VOLUME_RATIO",
Self::CalcindexPeTtmRatio => "CALCINDEX_PE_TTM_RATIO",
Self::CalcindexPbRatio => "CALCINDEX_PB_RATIO",
Self::CalcindexDividendRatioTtm => "CALCINDEX_DIVIDEND_RATIO_TTM",
Self::CalcindexFiveDayChangeRate => "CALCINDEX_FIVE_DAY_CHANGE_RATE",
Self::CalcindexTenDayChangeRate => "CALCINDEX_TEN_DAY_CHANGE_RATE",
Self::CalcindexHalfYearChangeRate => "CALCINDEX_HALF_YEAR_CHANGE_RATE",
Self::CalcindexFiveMinutesChangeRate => "CALCINDEX_FIVE_MINUTES_CHANGE_RATE",
Self::CalcindexExpiryDate => "CALCINDEX_EXPIRY_DATE",
Self::CalcindexStrikePrice => "CALCINDEX_STRIKE_PRICE",
Self::CalcindexUpperStrikePrice => "CALCINDEX_UPPER_STRIKE_PRICE",
Self::CalcindexLowerStrikePrice => "CALCINDEX_LOWER_STRIKE_PRICE",
Self::CalcindexOutstandingQty => "CALCINDEX_OUTSTANDING_QTY",
Self::CalcindexOutstandingRatio => "CALCINDEX_OUTSTANDING_RATIO",
Self::CalcindexPremium => "CALCINDEX_PREMIUM",
Self::CalcindexItmOtm => "CALCINDEX_ITM_OTM",
Self::CalcindexImpliedVolatility => "CALCINDEX_IMPLIED_VOLATILITY",
Self::CalcindexWarrantDelta => "CALCINDEX_WARRANT_DELTA",
Self::CalcindexCallPrice => "CALCINDEX_CALL_PRICE",
Self::CalcindexToCallPrice => "CALCINDEX_TO_CALL_PRICE",
Self::CalcindexEffectiveLeverage => "CALCINDEX_EFFECTIVE_LEVERAGE",
Self::CalcindexLeverageRatio => "CALCINDEX_LEVERAGE_RATIO",
Self::CalcindexConversionRatio => "CALCINDEX_CONVERSION_RATIO",
Self::CalcindexBalancePoint => "CALCINDEX_BALANCE_POINT",
Self::CalcindexOpenInterest => "CALCINDEX_OPEN_INTEREST",
Self::CalcindexDelta => "CALCINDEX_DELTA",
Self::CalcindexGamma => "CALCINDEX_GAMMA",
Self::CalcindexTheta => "CALCINDEX_THETA",
Self::CalcindexVega => "CALCINDEX_VEGA",
Self::CalcindexRho => "CALCINDEX_RHO",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CALCINDEX_UNKNOWN" => Some(Self::CalcindexUnknown),
"CALCINDEX_LAST_DONE" => Some(Self::CalcindexLastDone),
"CALCINDEX_CHANGE_VAL" => Some(Self::CalcindexChangeVal),
"CALCINDEX_CHANGE_RATE" => Some(Self::CalcindexChangeRate),
"CALCINDEX_VOLUME" => Some(Self::CalcindexVolume),
"CALCINDEX_TURNOVER" => Some(Self::CalcindexTurnover),
"CALCINDEX_YTD_CHANGE_RATE" => Some(Self::CalcindexYtdChangeRate),
"CALCINDEX_TURNOVER_RATE" => Some(Self::CalcindexTurnoverRate),
"CALCINDEX_TOTAL_MARKET_VALUE" => Some(Self::CalcindexTotalMarketValue),
"CALCINDEX_CAPITAL_FLOW" => Some(Self::CalcindexCapitalFlow),
"CALCINDEX_AMPLITUDE" => Some(Self::CalcindexAmplitude),
"CALCINDEX_VOLUME_RATIO" => Some(Self::CalcindexVolumeRatio),
"CALCINDEX_PE_TTM_RATIO" => Some(Self::CalcindexPeTtmRatio),
"CALCINDEX_PB_RATIO" => Some(Self::CalcindexPbRatio),
"CALCINDEX_DIVIDEND_RATIO_TTM" => Some(Self::CalcindexDividendRatioTtm),
"CALCINDEX_FIVE_DAY_CHANGE_RATE" => Some(Self::CalcindexFiveDayChangeRate),
"CALCINDEX_TEN_DAY_CHANGE_RATE" => Some(Self::CalcindexTenDayChangeRate),
"CALCINDEX_HALF_YEAR_CHANGE_RATE" => Some(Self::CalcindexHalfYearChangeRate),
"CALCINDEX_FIVE_MINUTES_CHANGE_RATE" => {
Some(Self::CalcindexFiveMinutesChangeRate)
}
"CALCINDEX_EXPIRY_DATE" => Some(Self::CalcindexExpiryDate),
"CALCINDEX_STRIKE_PRICE" => Some(Self::CalcindexStrikePrice),
"CALCINDEX_UPPER_STRIKE_PRICE" => Some(Self::CalcindexUpperStrikePrice),
"CALCINDEX_LOWER_STRIKE_PRICE" => Some(Self::CalcindexLowerStrikePrice),
"CALCINDEX_OUTSTANDING_QTY" => Some(Self::CalcindexOutstandingQty),
"CALCINDEX_OUTSTANDING_RATIO" => Some(Self::CalcindexOutstandingRatio),
"CALCINDEX_PREMIUM" => Some(Self::CalcindexPremium),
"CALCINDEX_ITM_OTM" => Some(Self::CalcindexItmOtm),
"CALCINDEX_IMPLIED_VOLATILITY" => Some(Self::CalcindexImpliedVolatility),
"CALCINDEX_WARRANT_DELTA" => Some(Self::CalcindexWarrantDelta),
"CALCINDEX_CALL_PRICE" => Some(Self::CalcindexCallPrice),
"CALCINDEX_TO_CALL_PRICE" => Some(Self::CalcindexToCallPrice),
"CALCINDEX_EFFECTIVE_LEVERAGE" => Some(Self::CalcindexEffectiveLeverage),
"CALCINDEX_LEVERAGE_RATIO" => Some(Self::CalcindexLeverageRatio),
"CALCINDEX_CONVERSION_RATIO" => Some(Self::CalcindexConversionRatio),
"CALCINDEX_BALANCE_POINT" => Some(Self::CalcindexBalancePoint),
"CALCINDEX_OPEN_INTEREST" => Some(Self::CalcindexOpenInterest),
"CALCINDEX_DELTA" => Some(Self::CalcindexDelta),
"CALCINDEX_GAMMA" => Some(Self::CalcindexGamma),
"CALCINDEX_THETA" => Some(Self::CalcindexTheta),
"CALCINDEX_VEGA" => Some(Self::CalcindexVega),
"CALCINDEX_RHO" => Some(Self::CalcindexRho),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum HistoryCandlestickQueryType {
UnknownQueryType = 0,
QueryByOffset = 1,
QueryByDate = 2,
}
impl HistoryCandlestickQueryType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::UnknownQueryType => "UNKNOWN_QUERY_TYPE",
Self::QueryByOffset => "QUERY_BY_OFFSET",
Self::QueryByDate => "QUERY_BY_DATE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"UNKNOWN_QUERY_TYPE" => Some(Self::UnknownQueryType),
"QUERY_BY_OFFSET" => Some(Self::QueryByOffset),
"QUERY_BY_DATE" => Some(Self::QueryByDate),
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Direction {
Backward = 0,
Forward = 1,
}
impl Direction {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Backward => "BACKWARD",
Self::Forward => "FORWARD",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BACKWARD" => Some(Self::Backward),
"FORWARD" => Some(Self::Forward),
_ => None,
}
}
}