#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMaking {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="MarketMakingState", tag="2")]
pub state: i32,
#[prost(message, optional, tag="3")]
pub config: ::core::option::Option<MarketMakingConfiguration>,
#[prost(string, tag="4")]
pub fund_code: ::prost::alloc::string::String,
#[prost(int64, tag="5")]
pub tick_size: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingConfiguration {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(message, optional, tag="2")]
pub pricing: ::core::option::Option<MarketMakingPricing>,
#[prost(message, optional, tag="3")]
pub trade_analyzer: ::core::option::Option<MarketMakingTradeAnalyzer>,
#[prost(message, optional, tag="5")]
pub momentum: ::core::option::Option<MarketMakingMomentum>,
#[prost(message, optional, tag="6")]
pub exposure_balancer: ::core::option::Option<MarketMakingExposureBalancer>,
#[prost(int64, tag="10")]
pub bid_adjustment: i64,
#[prost(int64, tag="11")]
pub ask_adjustment: i64,
#[prost(int64, tag="12")]
pub bid_quantity: i64,
#[prost(int64, tag="13")]
pub ask_quantity: i64,
#[prost(int64, tag="14")]
pub bid_basis: i64,
#[prost(int64, tag="15")]
pub ask_basis: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingPricing {
#[prost(oneof="market_making_pricing::Pricing", tags="1, 2, 3, 4")]
pub pricing: ::core::option::Option<market_making_pricing::Pricing>,
}
pub mod market_making_pricing {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Pricing {
#[prost(message, tag="1")]
PlainFollow(super::PlainFollow),
#[prost(message, tag="2")]
MeanBidAsk(super::MeanBidAsk),
#[prost(message, tag="3")]
Nav(super::Nav),
#[prost(message, tag="4")]
KrxNav(super::KrxNav),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PlainFollow {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MeanBidAsk {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Nav {
#[prost(message, optional, tag="1")]
pub etf_pricing: ::core::option::Option<super::common::EtfPricing>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct KrxNav {
#[prost(int64, tag="1")]
pub prev_index: i64,
#[prost(int64, tag="2")]
pub prev_future: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingTradeAnalyzer {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(uint32, tag="2")]
pub window: u32,
#[prost(double, tag="3")]
pub ratio_threshold: f64,
#[prost(double, tag="4")]
pub strength_threshold: f64,
#[prost(int32, tag="5")]
pub max_deco_tick: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingMomentum {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(uint64, tag="2")]
pub window_ms: u64,
#[prost(int32, tag="3")]
pub trigger_ticks: i32,
#[prost(double, tag="4")]
pub follow_sensitivity: f64,
#[prost(double, tag="5")]
pub escape_sensitivity: f64,
#[prost(int32, tag="6")]
pub max_follow_ticks: i32,
#[prost(int32, tag="7")]
pub max_escape_ticks: i32,
#[prost(bool, tag="8")]
pub is_opposite: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingExposureBalancer {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(int32, tag="2")]
pub trigger_multiple: i32,
#[prost(int32, tag="3")]
pub price_skew_ticks: i32,
#[prost(int32, tag="4")]
pub limit_multiple: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMarketMakingRequest {
#[prost(uint32, optional, tag="1")]
pub page_size: ::core::option::Option<u32>,
#[prost(string, optional, tag="2")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMarketMakingResponse {
#[prost(message, repeated, tag="1")]
pub entries: ::prost::alloc::vec::Vec<MarketMaking>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingStatusRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MarketMakingConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMarketMakingResponse {
#[prost(enumeration="MarketMakingState", tag="1")]
pub state: i32,
#[prost(string, tag="2")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMarketMakingResponse {
#[prost(string, tag="1")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMarketMakingResponse {
#[prost(int32, tag="1")]
pub reset_count: i32,
#[prost(string, tag="2")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMarketMakingConfigRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MarketMakingConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMarketMakingStatusRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MarketMakingConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMarketMakingOrderbookRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingOrderbookData {
#[prost(string, repeated, tag="1")]
pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, repeated, tag="3")]
pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="4")]
pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MomentumState {
#[prost(string, tag="1")]
pub direction: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub bid_adjustment: i64,
#[prost(int64, tag="3")]
pub ask_adjustment: i64,
#[prost(double, tag="4")]
pub raw_ticks: f64,
#[prost(double, tag="5")]
pub normalized_strength: f64,
#[prost(int32, tag="6")]
pub follow_ticks: i32,
#[prost(int32, tag="7")]
pub escape_ticks: i32,
#[prost(int32, tag="8")]
pub sample_count: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct TradeAnalyzerState {
#[prost(int32, tag="1")]
pub deco_tick: i32,
#[prost(int32, tag="2")]
pub fill_count: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ExposureBalancerState {
#[prost(int64, tag="1")]
pub net_exposure: i64,
#[prost(int32, tag="2")]
pub price_shift_ticks: i32,
#[prost(double, tag="3")]
pub bid_scale: f64,
#[prost(double, tag="4")]
pub ask_scale: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MmEngineRuntimeState {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub timestamp: i64,
#[prost(enumeration="MarketMakingState", optional, tag="3")]
pub state: ::core::option::Option<i32>,
#[prost(message, optional, tag="4")]
pub momentum: ::core::option::Option<MomentumState>,
#[prost(message, optional, tag="5")]
pub trade_analyzer: ::core::option::Option<TradeAnalyzerState>,
#[prost(message, optional, tag="6")]
pub exposure_balancer: ::core::option::Option<ExposureBalancerState>,
#[prost(string, optional, tag="7")]
pub ask_quote: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="8")]
pub bid_quote: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMmEngineStateRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketMakingState {
Unspecified = 0,
Idle = 1,
Running = 2,
}
impl MarketMakingState {
pub fn as_str_name(&self) -> &'static str {
match self {
MarketMakingState::Unspecified => "MARKET_MAKING_STATE_UNSPECIFIED",
MarketMakingState::Idle => "MARKET_MAKING_STATE_IDLE",
MarketMakingState::Running => "MARKET_MAKING_STATE_RUNNING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MARKET_MAKING_STATE_UNSPECIFIED" => Some(Self::Unspecified),
"MARKET_MAKING_STATE_IDLE" => Some(Self::Idle),
"MARKET_MAKING_STATE_RUNNING" => Some(Self::Running),
_ => None,
}
}
}
include!("kdo.v1.mm.tonic.rs");
include!("kdo.v1.mm.serde.rs");