cxmr_exchanges/
filters.rs

1//! Crypto-bank exchanges markets filters primitives.
2
3/// Market order filters.
4#[derive(Debug, Serialize)]
5pub enum MarketFilter {
6    Rate(RateFilter),
7    Percent(PercentFilter),
8    LotSize(LotSizeFilter),
9    MarketLotSize(LotSizeFilter),
10    Notional(NotionalFilter),
11    IcebergParts(IcebergPartsFilter),
12    MaxNumAlgoOrders(MaxNumAlgoOrdersFilter),
13}
14
15/// Market order rate filter.
16#[derive(Debug, Serialize)]
17pub struct RateFilter {
18    pub min_points: u64,
19    pub max_points: u64,
20    pub tick_points_size: u64,
21}
22
23/// Market order rate percent filter.
24#[derive(Debug, Serialize)]
25pub struct PercentFilter {
26    pub multiplier_up: f64,
27    pub multiplier_down: f64,
28    pub avg_price_mins: u64,
29}
30
31/// Market order rate amount filter.
32#[derive(Debug, Serialize)]
33pub struct LotSizeFilter {
34    pub min_qty_points: u64,
35    pub max_qty_points: u64,
36    pub step_size_points: u64,
37}
38
39/// Market order notional rate filter.
40#[derive(Debug, Serialize)]
41pub struct NotionalFilter {
42    pub min_notional_points: u64,
43    pub apply_to_market: bool,
44    pub avg_price_mins: u64,
45}
46
47/// Market iceberg parts filter.
48#[derive(Debug, Serialize)]
49pub struct IcebergPartsFilter {
50    pub limit: u64,
51}
52
53/// Market maximum algo orders filter.
54#[derive(Debug, Serialize)]
55pub struct MaxNumAlgoOrdersFilter {
56    pub max_num_algo_orders: u64,
57}