diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/api_quotes/quotes.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/python/api_quotes/quotes.py b/python/api_quotes/quotes.py new file mode 100644 index 00000000..5d3cf8cf --- /dev/null +++ b/python/api_quotes/quotes.py @@ -0,0 +1,46 @@ +from serenitas.ops.trade_dataclasses import Deal +from dataclasses import dataclass, field +import datetime + + +@dataclass +class QuoteDetails(Deal, table="markit_quote_details", deal_type=None): + quotetime: datetime + quote_source: str + id: int + sender: str = None + + +@dataclass +class SNCdsQuote(Deal, table="sn_cds_quotes", deal_type=None): + msg_id: id + redcode: str + ticker: str + maturity: datetime.date + bid_spread: float + bid_upfront: float + bid_size: float + ask_spread: float + ask_upfront: float + ask_size: float + + @classmethod + def from_markit_line(cls, line): + return cls( + msg_id=line["message"]["id"], + redcode=line["redCode"], + ticker=line["ticker"], + maturity=datetime.date( + line["maturityYear"], line["maturityMonth"], line["maturityDay"] + ), + bid_spread=line["bidConventionalSpread"], + bid_upfront=line["bidUpfront"], + bid_size=line["bidSize"], + ask_spread=line["askConventionalSpread"], + ask_upfront=line["askUpfront"], + ask_size=line["askSize"], + ) + + @property + def parent(self): + return QuoteDetails.from_tradeid(self.msg_id) |
