pub struct BitmexExecClientConfig {Show 15 fields
pub api_key: Option<String>,
pub api_secret: Option<String>,
pub base_url_http: Option<String>,
pub base_url_ws: Option<String>,
pub http_timeout_secs: Option<u64>,
pub max_retries: Option<u32>,
pub retry_delay_initial_ms: Option<u64>,
pub retry_delay_max_ms: Option<u64>,
pub heartbeat_interval_secs: Option<u64>,
pub recv_window_ms: Option<u64>,
pub active_only: bool,
pub use_testnet: bool,
pub account_id: Option<AccountId>,
pub max_requests_per_second: Option<u32>,
pub max_requests_per_minute: Option<u32>,
}
Expand description
Configuration for the BitMEX live execution client.
Fields§
§api_key: Option<String>
API key used for authenticated requests.
api_secret: Option<String>
API secret used for authenticated requests.
base_url_http: Option<String>
Optional override for the REST base URL.
base_url_ws: Option<String>
Optional override for the WebSocket URL.
http_timeout_secs: Option<u64>
Optional REST timeout in seconds.
max_retries: Option<u32>
Optional maximum retry attempts for REST requests.
retry_delay_initial_ms: Option<u64>
Optional initial retry backoff in milliseconds.
retry_delay_max_ms: Option<u64>
Optional maximum retry backoff in milliseconds.
heartbeat_interval_secs: Option<u64>
Optional heartbeat interval (seconds) for the WebSocket client.
recv_window_ms: Option<u64>
Optional receive window in milliseconds for signed requests (default 10000).
This value determines how far in the future the api-expires
timestamp will be set
for signed REST requests. BitMEX uses seconds-granularity Unix timestamps in the
api-expires
header, calculated as: current_timestamp + (recv_window_ms / 1000)
.
Note: This parameter is specified in milliseconds for consistency with other
adapter configurations (e.g., Bybit’s recv_window_ms
), but BitMEX only supports
seconds-granularity timestamps. The value is converted via integer division, so
10000ms becomes 10 seconds, 15500ms becomes 15 seconds, etc.
A larger window provides more tolerance for clock skew and network latency, but increases the replay attack window. The default of 10 seconds should be sufficient for most deployments. Consider increasing this value (e.g., to 30000ms = 30s) if you experience request expiration errors due to clock drift or high network latency.
active_only: bool
When true
, only active instruments are requested during bootstrap.
use_testnet: bool
When true
, use BitMEX testnet endpoints by default.
account_id: Option<AccountId>
Optional account identifier to associate with the execution client.
max_requests_per_second: Option<u32>
Maximum number of requests per second (burst limit).
max_requests_per_minute: Option<u32>
Maximum number of requests per minute (rolling window).
Implementations§
Source§impl BitmexExecClientConfig
impl BitmexExecClientConfig
Sourcepub fn has_api_credentials(&self) -> bool
pub fn has_api_credentials(&self) -> bool
Returns true
if both API key and secret are available.
Sourcepub fn http_base_url(&self) -> String
pub fn http_base_url(&self) -> String
Returns the REST base URL, considering overrides and the testnet flag.
Trait Implementations§
Source§impl Clone for BitmexExecClientConfig
impl Clone for BitmexExecClientConfig
Source§fn clone(&self) -> BitmexExecClientConfig
fn clone(&self) -> BitmexExecClientConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BitmexExecClientConfig
impl Debug for BitmexExecClientConfig
Auto Trait Implementations§
impl Freeze for BitmexExecClientConfig
impl RefUnwindSafe for BitmexExecClientConfig
impl Send for BitmexExecClientConfig
impl Sync for BitmexExecClientConfig
impl Unpin for BitmexExecClientConfig
impl UnwindSafe for BitmexExecClientConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more