diff options
| -rw-r--r-- | python/api_quotes/quotes.py | 46 | ||||
| -rw-r--r-- | sql/serenitasdb.sql | 4 |
2 files changed, 47 insertions, 3 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) diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql index 4fdd41ce..5cb8f4e2 100644 --- a/sql/serenitasdb.sql +++ b/sql/serenitasdb.sql @@ -1235,10 +1235,8 @@ CREATE TABLE dtcc_corrections( correction bytea)
CREATE TABLE markit_quote_details (
- id serial primary key,
+ id int8 primary key,
quotetime timestamptz NULL,
quote_source varchar(4) NULL,
- msg_id int8 NULL,
sender text NULL,
- CONSTRAINT markit_quote_details_unique UNIQUE (msg_id)
);
\ No newline at end of file |
