-
Notifications
You must be signed in to change notification settings - Fork 0
/
model.py
48 lines (44 loc) · 1.5 KB
/
model.py
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
from dataclasses import dataclass
from typing import Optional
@dataclass
class SymbolData:
tick_size_steps: Optional[list]
tick_size: Optional[float]
taker_commission: Optional[int]
strike: Optional[float]
settlement_period: Optional[str]
settlement_currency: Optional[str]
rfq: Optional[bool]
quote_currency: Optional[str]
price_index: Optional[str]
option_type: Optional[str]
min_trade_amount: Optional[float]
maker_commission: Optional[int]
kind: Optional[str]
is_active: Optional[bool]
instrument_type: Optional[str]
instrument_name: Optional[str]
instrument_id: Optional[int]
expiration_timestamp: Optional[int]
creation_timestamp: Optional[int]
counter_currency: Optional[str]
contract_size: Optional[float]
block_trade_tick_size: Optional[float]
block_trade_min_trade_amount: Optional[int]
block_trade_commission: Optional[float]
base_currency: Optional[str]
max_liquidation_commission: Optional[float]
max_leverage: Optional[int]
future_type: Optional[str]
@dataclass
class OptionData:
maturity: float # expiry - creation_timestamp -> years
underlying_price: float # from prices
ask_price: Optional[float] # min from put, call
ask_type: str # put or call
bid_price: Optional[float] # max from put, call
bid_type: str # put or call
strike: float # from symbols info
name: str # BTC-29JUN23-30000
ask_volatility: Optional[float]
bid_volatility: Optional[float]