ccdata_api/schemas/data_api/
options.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
use serde::Deserialize;
use crate::utils::Market;
use crate::schemas::data_api::CCInstrumentStatus;


pub enum CCOptionsMarket {
    DERIBIT,
    OKEX,
}

impl Market for CCOptionsMarket {
    fn to_string(&self) -> String {
        match self {
            CCOptionsMarket::DERIBIT => String::from("deribit"),
            CCOptionsMarket::OKEX => String::from("okex"),
        }
    }
}


// Options: Historical OHLCV+


///Options: Historical OHLCV+
#[derive(Deserialize, Debug)]
pub struct CCOptionsOHLCV {
    #[serde(rename = "UNIT")]
    pub unit: String,
    #[serde(rename = "TIMESTAMP")]
    pub timestamp: i64,
    #[serde(rename = "TYPE")]
    pub type_: String,
    #[serde(rename = "MARKET")]
    pub market: String,
    #[serde(rename = "INSTRUMENT")]
    pub instrument: String,
    #[serde(rename = "MAPPED_INSTRUMENT")]
    pub mapped_instrument: String,
    #[serde(rename = "INDEX_UNDERLYING")]
    pub index_underlying: String,
    #[serde(rename = "QUOTE_CURRENCY")]
    pub quote_currency: String,
    #[serde(rename = "SETTLEMENT_CURRENCY")]
    pub settlement_currency: String,
    #[serde(rename = "CONTRACT_CURRENCY")]
    pub contract_currency: String,
    #[serde(rename = "STRIKE_CURRENCY")]
    pub strike_currency: String,
    #[serde(rename = "INDEX_UNDERLYING_ID")]
    pub index_underlying_id: i32,
    #[serde(rename = "QUOTE_CURRENCY_ID")]
    pub quote_currency_id: i32,
    #[serde(rename = "SETTLEMENT_CURRENCY_ID")]
    pub settlement_currency_id: i32,
    #[serde(rename = "CONTRACT_CURRENCY_ID")]
    pub contract_currency_id: i32,
    #[serde(rename = "STRIKE_CURRENCY_ID")]
    pub strike_currency_id: i32,
    #[serde(rename = "TRANSFORM_FUNCTION")]
    pub transform_function: String,
    #[serde(rename = "OPEN")]
    pub open: f64,
    #[serde(rename = "HIGH")]
    pub high: f64,
    #[serde(rename = "LOW")]
    pub low: f64,
    #[serde(rename = "CLOSE")]
    pub close: f64,
    #[serde(rename = "NUMBER_OF_CONTRACTS")]
    pub number_of_contracts: i64,
    #[serde(rename = "TOTAL_TRADES")]
    pub total_trades: i64,
    #[serde(rename = "TOTAL_TRADES_BUY")]
    pub total_trades_buy: i64,
    #[serde(rename = "TOTAL_TRADES_SELL")]
    pub total_trades_sell: i64,
    #[serde(rename = "TOTAL_TRADES_UNKNOWN")]
    pub total_trades_unknown: i64,
    #[serde(rename = "VOLUME")]
    pub volume: f64,
    #[serde(rename = "QUOTE_VOLUME")]
    pub quote_volume: f64,
    #[serde(rename = "VOLUME_BUY")]
    pub volume_buy: f64,
    #[serde(rename = "QUOTE_VOLUME_BUY")]
    pub quote_volume_buy: f64,
    #[serde(rename = "VOLUME_SELL")]
    pub volume_sell: f64,
    #[serde(rename = "QUOTE_VOLUME_SELL")]
    pub quote_volume_sell: f64,
    #[serde(rename = "VOLUME_UNKNOWN")]
    pub volume_unknown: f64,
    #[serde(rename = "QUOTE_VOLUME_UNKNOWN")]
    pub quote_volume_unknown: f64,
    #[serde(rename = "NOTIONAL_VOLUME")]
    pub notional_volume: f64,
    #[serde(rename = "NOTIONAL_QUOTE_VOLUME")]
    pub notional_quote_volume: f64,
    #[serde(rename = "NOTIONAL_VOLUME_BUY")]
    pub notional_volume_buy: f64,
    #[serde(rename = "NOTIONAL_QUOTE_VOLUME_BUY")]
    pub notional_quote_volume_buy: f64,
    #[serde(rename = "NOTIONAL_VOLUME_SELL")]
    pub notional_volume_sell: f64,
    #[serde(rename = "NOTIONAL_QUOTE_VOLUME_SELL")]
    pub notional_quote_volume_sell: f64,
    #[serde(rename = "NOTIONAL_VOLUME_UNKNOWN")]
    pub notional_volume_unknown: f64,
    #[serde(rename = "NOTIONAL_QUOTE_VOLUME_UNKNOWN")]
    pub notional_quote_volume_unknown: f64,
}


// Options: Markets


/// Options: Markets
#[derive(Deserialize, Debug)]
pub struct CCOptionsMarkets {
    #[serde(rename = "TYPE")]
    pub type_: String,
    #[serde(rename = "EXCHANGE_STATUS")]
    pub exchange_status: String,
    #[serde(rename = "MAPPED_INSTRUMENTS_TOTAL")]
    pub mapped_instrument_total: i64,
    #[serde(rename = "UNMAPPED_INSTRUMENTS_TOTAL")]
    pub unmapped_instruments_total: i64,
    #[serde(rename = "INSTRUMENT_STATUS")]
    pub instrument_status: CCInstrumentStatus,
    #[serde(rename = "TOTAL_TRADES_OPTIONS")]
    pub total_trades_options: i64,
    #[serde(rename = "TOTAL_OPEN_INTEREST_OPTIONS_UPDATES")]
    pub total_open_interest_updates: i64,
    #[serde(rename = "HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED")]
    pub has_orderbook_l2_minute_snapshots_enabled: bool,
}