#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingEntry {
#[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,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingStatus {
#[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(bool, tag="4")]
pub registered: bool,
#[prost(bool, tag="5")]
pub active: bool,
#[prost(string, tag="6")]
pub fund_code: ::prost::alloc::string::String,
#[prost(bool, optional, tag="7")]
pub momentum_enabled: ::core::option::Option<bool>,
#[prost(uint64, optional, tag="8")]
pub momentum_window_ms: ::core::option::Option<u64>,
#[prost(int32, optional, tag="9")]
pub momentum_trigger_ticks: ::core::option::Option<i32>,
#[prost(double, optional, tag="10")]
pub momentum_follow_sensitivity: ::core::option::Option<f64>,
#[prost(double, optional, tag="11")]
pub momentum_escape_sensitivity: ::core::option::Option<f64>,
#[prost(int32, optional, tag="12")]
pub momentum_direction: ::core::option::Option<i32>,
#[prost(int64, optional, tag="13")]
pub momentum_bid_adjustment: ::core::option::Option<i64>,
#[prost(int64, optional, tag="14")]
pub momentum_ask_adjustment: ::core::option::Option<i64>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingConfiguration {
#[prost(string, tag="1")]
pub pricing: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub skew: ::core::option::Option<MarketMakingSkewConfig>,
#[prost(message, optional, tag="3")]
pub trade_analyzer: ::core::option::Option<MarketMakingTradeAnalyzerConfig>,
#[prost(message, optional, tag="4")]
pub screening: ::core::option::Option<MarketMakingScreeningConfig>,
#[prost(int64, tag="5")]
pub tick_size: i64,
#[prost(bool, tag="6")]
pub enabled: bool,
#[prost(message, optional, tag="7")]
pub momentum: ::core::option::Option<MarketMakingMomentumConfig>,
#[prost(message, optional, tag="8")]
pub exposure_guard: ::core::option::Option<MarketMakingExposureGuardConfig>,
#[prost(message, optional, tag="9")]
pub inventory_balancer: ::core::option::Option<MarketMakingInventoryBalancerConfig>,
#[prost(int64, tag="10")]
pub bid_adjustment: i64,
#[prost(int64, tag="11")]
pub ask_adjustment: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketMakingSkewConfig {
#[prost(string, tag="1")]
pub mode: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub trigger_amt: i64,
#[prost(int32, tag="3")]
pub skew_unit: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingTradeAnalyzerConfig {
#[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 MarketMakingScreeningConfig {
#[prost(int32, tag="1")]
pub max_spread_width_ticks: i32,
#[prost(int64, tag="2")]
pub min_price: i64,
#[prost(int64, tag="3")]
pub max_price: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingMomentumConfig {
#[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 MarketMakingExposureGuardConfig {
#[prost(bool, tag="1")]
pub enabled: bool,
#[prost(int32, tag="2")]
pub reduce_start_multiple: i32,
#[prost(int32, tag="3")]
pub max_inventory_multiple: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MarketMakingInventoryBalancerConfig {
#[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(double, tag="4")]
pub same_side_reduction: f64,
#[prost(double, tag="5")]
pub min_same_side_scale: f64,
}
#[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<MarketMakingEntry>,
#[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(message, optional, tag="1")]
pub status: ::core::option::Option<MarketMakingStatus>,
#[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 PauseMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PauseMarketMakingResponse {
#[prost(string, tag="1")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResumeMarketMakingRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResumeMarketMakingResponse {
#[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 CreateMarketMakingRequest {
#[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 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>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketMakingState {
Unspecified = 0,
Idle = 1,
Running = 2,
Paused = 3,
}
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",
MarketMakingState::Paused => "MARKET_MAKING_STATE_PAUSED",
}
}
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),
"MARKET_MAKING_STATE_PAUSED" => Some(Self::Paused),
_ => None,
}
}
}
include!("kdo.v1.mm.tonic.rs");
include!("kdo.v1.mm.serde.rs");