#[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 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="5")]
pub active: bool,
#[prost(string, tag="6")]
pub fund_code: ::prost::alloc::string::String,
}
#[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<MarketMakingSkew>,
#[prost(message, optional, tag="3")]
pub trade_analyzer: ::core::option::Option<MarketMakingTradeAnalyzer>,
#[prost(message, optional, tag="4")]
pub screening: ::core::option::Option<MarketMakingScreening>,
#[prost(bool, tag="6")]
pub enabled: bool,
#[prost(message, optional, tag="7")]
pub momentum: ::core::option::Option<MarketMakingMomentum>,
#[prost(message, optional, tag="8")]
pub exposure_guard: ::core::option::Option<MarketMakingExposureGuard>,
#[prost(message, optional, tag="9")]
pub inventory_balancer: ::core::option::Option<MarketMakingInventoryBalancer>,
#[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 MarketMakingSkew {
#[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 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 MarketMakingScreening {
#[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 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 MarketMakingExposureGuard {
#[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 MarketMakingInventoryBalancer {
#[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<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(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 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>,
}
#[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,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SkewState {
#[prost(int64, tag="1")]
pub net_traded: i64,
}
#[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 ExposureGuardState {
#[prost(int64, tag="1")]
pub net_exposure: i64,
#[prost(double, tag="2")]
pub bid_scale: f64,
#[prost(double, tag="3")]
pub ask_scale: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct InventoryBalancerState {
#[prost(int64, tag="1")]
pub net_flow: 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(message, optional, tag="3")]
pub momentum: ::core::option::Option<MomentumState>,
#[prost(message, optional, tag="4")]
pub skew: ::core::option::Option<SkewState>,
#[prost(message, optional, tag="5")]
pub trade_analyzer: ::core::option::Option<TradeAnalyzerState>,
#[prost(message, optional, tag="6")]
pub exposure_guard: ::core::option::Option<ExposureGuardState>,
#[prost(message, optional, tag="7")]
pub inventory_balancer: ::core::option::Option<InventoryBalancerState>,
}
#[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");