diff options
Diffstat (limited to 'python/analytics/portfolio.py')
| -rw-r--r-- | python/analytics/portfolio.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/python/analytics/portfolio.py b/python/analytics/portfolio.py index 2681afae..c54b5b70 100644 --- a/python/analytics/portfolio.py +++ b/python/analytics/portfolio.py @@ -5,7 +5,6 @@ from warnings import warn import pandas as pd import numpy as np - def portf_repr(method): def f(*args): obj = args[0] @@ -53,6 +52,14 @@ class Portfolio: for t in self.trades: yield t + def __getitem__(self, trade_id): + for tid, trade in zip(self.trade_ids, self.trade): + if tid == trade_id: + break + else: + raise ValueError(f"{trade_id} not found") + return trade + @property def indices(self): return [t for t in self.trades if isinstance(t, CreditIndex)] @@ -103,8 +110,8 @@ class Portfolio: for t in self.trades: try: t.mark(**kwargs) - except: - continue + except Exception as e: + raise def shock(self, params=["pnl"], **kwargs): return {trade_id: trade.shock(params, **kwargs) for trade_id, trade in self.items()} |
