#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MmEntry {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="MmState", tag="2")]
pub state: i32,
#[prost(message, optional, tag="3")]
pub config: ::core::option::Option<MmConfiguration>,
#[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 MmStatus {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(enumeration="MmState", tag="2")]
pub state: i32,
#[prost(message, optional, tag="3")]
pub config: ::core::option::Option<MmConfiguration>,
#[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 MmConfiguration {
#[prost(string, tag="1")]
pub pricing: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub skew: ::core::option::Option<MmSkewConfig>,
#[prost(message, optional, tag="3")]
pub trade_analyzer: ::core::option::Option<MmTradeAnalyzerConfig>,
#[prost(message, optional, tag="4")]
pub screening: ::core::option::Option<MmScreeningConfig>,
#[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<MmMomentumConfig>,
#[prost(message, optional, tag="8")]
pub exposure_guard: ::core::option::Option<MmExposureGuardConfig>,
#[prost(message, optional, tag="9")]
pub inventory_balancer: ::core::option::Option<MmInventoryBalancerConfig>,
#[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 MmSkewConfig {
#[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 MmTradeAnalyzerConfig {
#[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 MmScreeningConfig {
#[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 MmMomentumConfig {
#[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 MmExposureGuardConfig {
#[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 MmInventoryBalancerConfig {
#[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 ListMmRequest {
#[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 ListMmResponse {
#[prost(message, repeated, tag="1")]
pub entries: ::prost::alloc::vec::Vec<MmEntry>,
#[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 GetMmStatusRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MmConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartMmResponse {
#[prost(message, optional, tag="1")]
pub status: ::core::option::Option<MmStatus>,
#[prost(string, tag="2")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMmResponse {
#[prost(string, tag="1")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PauseMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PauseMmResponse {
#[prost(string, tag="1")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResumeMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResumeMmResponse {
#[prost(string, tag="1")]
pub message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetMmResponse {
#[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 UpdateMmConfigRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MmConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMmStatusRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MmConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMmRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub config: ::core::option::Option<MmConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMmOrderbookRequest {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MmOrderbookData {
#[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 MmState {
Unspecified = 0,
Idle = 1,
Running = 2,
Paused = 3,
}
impl MmState {
pub fn as_str_name(&self) -> &'static str {
match self {
MmState::Unspecified => "MM_STATE_UNSPECIFIED",
MmState::Idle => "MM_STATE_IDLE",
MmState::Running => "MM_STATE_RUNNING",
MmState::Paused => "MM_STATE_PAUSED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MM_STATE_UNSPECIFIED" => Some(Self::Unspecified),
"MM_STATE_IDLE" => Some(Self::Idle),
"MM_STATE_RUNNING" => Some(Self::Running),
"MM_STATE_PAUSED" => Some(Self::Paused),
_ => None,
}
}
}
include!("kdo.v1.mm.tonic.rs");
include!("kdo.v1.mm.serde.rs");