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
|
"""Options Snapshots Standard Model."""
from datetime import (
date as dateType,
datetime,
)
from typing import List, Union
from pydantic import Field
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS
class OptionsSnapshotsQueryParams(QueryParams):
"""Options Snapshots Query."""
class OptionsSnapshotsData(Data):
"""Options Snapshots Data."""
underlying_symbol: List[str] = Field(
description="Ticker symbol of the underlying asset."
)
contract_symbol: List[str] = Field(description="Symbol of the options contract.")
expiration: List[dateType] = Field(
description="Expiration date of the options contract."
)
dte: List[Union[int, None]] = Field(
default_factory=list,
description="Number of days to expiration of the options contract.",
)
strike: List[float] = Field(
description="Strike price of the options contract.",
json_schema_extra={"x-unit_measurement": "currency"},
)
option_type: List[str] = Field(description="The type of option.")
volume: List[Union[int, None]] = Field(
default_factory=list,
description=DATA_DESCRIPTIONS.get("volume", ""),
)
open_interest: List[Union[int, None]] = Field(
default_factory=list,
description="Open interest at the time.",
)
last_price: List[Union[float, None]] = Field(
default_factory=list,
description="Last trade price at the time.",
json_schema_extra={"x-unit_measurement": "currency"},
)
last_size: List[Union[int, None]] = Field(
default_factory=list,
description="Lot size of the last trade.",
)
last_timestamp: List[Union[datetime, None]] = Field(
default_factory=list,
description="Timestamp of the last price.",
)
open: List[Union[float, None]] = Field(
default_factory=list,
description=DATA_DESCRIPTIONS.get("open", ""),
json_schema_extra={"x-unit_measurement": "currency"},
)
high: List[Union[float, None]] = Field(
default_factory=list,
description=DATA_DESCRIPTIONS.get("high", ""),
json_schema_extra={"x-unit_measurement": "currency"},
)
low: List[Union[float, None]] = Field(
default_factory=list,
description=DATA_DESCRIPTIONS.get("low", ""),
json_schema_extra={"x-unit_measurement": "currency"},
)
close: List[Union[float, None]] = Field(
default_factory=list,
description=DATA_DESCRIPTIONS.get("close", ""),
json_schema_extra={"x-unit_measurement": "currency"},
)
|