alpaca_data/options/
model.rs

1use crate::common::time::Timestamp;
2
3#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
4pub struct Bar {
5    pub t: Option<Timestamp>,
6    pub o: Option<f64>,
7    pub h: Option<f64>,
8    pub l: Option<f64>,
9    pub c: Option<f64>,
10    pub v: Option<u64>,
11    pub n: Option<u64>,
12    pub vw: Option<f64>,
13}
14
15#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
16pub struct Quote {
17    pub t: Option<Timestamp>,
18    pub bx: Option<String>,
19    pub bp: Option<f64>,
20    pub bs: Option<u64>,
21    pub ax: Option<String>,
22    pub ap: Option<f64>,
23    #[serde(rename = "as")]
24    pub r#as: Option<u64>,
25    pub c: Option<String>,
26}
27
28#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
29pub struct Trade {
30    pub t: Option<Timestamp>,
31    pub x: Option<String>,
32    pub p: Option<f64>,
33    pub s: Option<u64>,
34    pub c: Option<String>,
35}
36
37#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
38pub struct Greeks {
39    pub delta: Option<f64>,
40    pub gamma: Option<f64>,
41    pub rho: Option<f64>,
42    pub theta: Option<f64>,
43    pub vega: Option<f64>,
44}
45
46#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize)]
47#[allow(non_snake_case)]
48pub struct Snapshot {
49    pub latestTrade: Option<Trade>,
50    pub latestQuote: Option<Quote>,
51    pub minuteBar: Option<Bar>,
52    pub dailyBar: Option<Bar>,
53    pub prevDailyBar: Option<Bar>,
54    pub greeks: Option<Greeks>,
55    pub impliedVolatility: Option<f64>,
56}