aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/portfolio.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/portfolio.py')
-rw-r--r--python/analytics/portfolio.py13
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()}