aboutsummaryrefslogtreecommitdiffstats
path: root/python/report_ops/sma.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/report_ops/sma.py')
-rw-r--r--python/report_ops/sma.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/python/report_ops/sma.py b/python/report_ops/sma.py
index bd3ce547..2f7e7ae5 100644
--- a/python/report_ops/sma.py
+++ b/python/report_ops/sma.py
@@ -79,9 +79,9 @@ class BowdstSMA(SMA, fund="BOWDST"):
_sql_query = {
"bond": "SELECT * FROM risk_positions(%s, null, %s) ",
"future": (
- "WITH tmp AS (SELECT bbg_ticker, fund, security_desc, currency, maturity, sum(quantity * (2*buysell::int-1)) OVER (PARTITION BY bbg_ticker, fund, security_desc, currency, maturity) notional FROM futures "
+ "WITH tmp AS (SELECT bbg_ticker, fund, security_desc, currency, maturity, account_code, dealid, buysell, sum(quantity * (2*buysell::int-1)) OVER (PARTITION BY bbg_ticker, fund, security_desc, currency, maturity) notional FROM futures "
"WHERE trade_date <= %s AND fund=%s) "
- "SELECT bbg_ticker, notional, code AS cp_code, cash_account, security_desc, currency, maturity FROM tmp LEFT JOIN accounts USING (fund) WHERE tmp.notional != 0 AND account_type='Future';"
+ "SELECT bbg_ticker, notional, code AS cp_code, cash_account, security_desc, currency, maturity, account_code, dealid, buysell FROM tmp LEFT JOIN accounts USING (fund) WHERE tmp.notional != 0 AND account_type='Future';"
),
"tranche": "SELECT trb.trade_id, trb.serenitas_clean_nav + trb.serenitas_accrued as mtm, trb.notional * trb.tranche_factor as active_notional, cds.* FROM tranche_risk_isosel trb left join cds on trade_id=id WHERE date=%s",
"cdx_swaption": "SELECT abs(spr.notional) AS active_notional, spr.serenitas_nav, swaptions.*, index_version_markit.annexdate FROM list_swaption_positions_and_risks(%s, %s) spr LEFT JOIN swaptions ON deal_id=dealid LEFT JOIN index_version_markit ON swaptions.security_id=redindexcode;",
@@ -114,6 +114,9 @@ class PositionReport(Deal, deal_type=None, table_name=None):
default=None, metadata={"position": "Maturity Date"}
)
description: str = field(default=None, metadata={"position": "Underlying Desc"})
+ local_market_value: str = field(
+ default=None, metadata={"position": "Local Market Value"}
+ )
mtm_currency: str = field(default=None, metadata={"position": "MTM Currency"})
mtm_valuation: float = field(default=None, metadata={"position": "MTM Valuation"})
fixed_rate: float = field(default=None, metadata={"position": "FixedRate"})
@@ -158,20 +161,32 @@ class BondPosition(PositionReport, asset_class="bond"):
rename_keys(
d,
{
- "local_market_value": "Local Market Value",
- "usd_market_value": "MTM Valuation",
+ "usd_market_value": "mtm_valuation",
},
)
for key in ("account", "primebroker", "cp_code"):
d[key] = _fund_custodian[fund]
d["dealid"] = "Aggregated"
- d["buysell"] = "B"
+ d["buysell"] = True
d["currency"] = "USD"
return cls.from_dict(**d)
class FuturePosition(PositionReport, asset_class="future"):
- pass
+ @classmethod
+ def from_query(cls, d: dict, cob, fund):
+ d = super().from_query(d, cob, fund)
+ rename_keys(
+ d,
+ {
+ "bbg_ticker": "identifier",
+ "cash_account": "account",
+ "security_desc": "description",
+ "maturity": "maturity_date",
+ "account_code": "primebroker",
+ },
+ )
+ return cls.from_dict(**d)
class TranchePosition(PositionReport, asset_class="tranche"):