aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/__init__.py1
-rw-r--r--python/analytics/portfolio.py23
2 files changed, 24 insertions, 0 deletions
diff --git a/python/analytics/__init__.py b/python/analytics/__init__.py
index a2cbc200..031df9cb 100644
--- a/python/analytics/__init__.py
+++ b/python/analytics/__init__.py
@@ -1,2 +1,3 @@
from .index import Index, ForwardIndex
from .option import BlackSwaption, Swaption, VolatilitySurface, ATMstrike
+from .portfolio import Portfolio
diff --git a/python/analytics/portfolio.py b/python/analytics/portfolio.py
new file mode 100644
index 00000000..00ab09b1
--- /dev/null
+++ b/python/analytics/portfolio.py
@@ -0,0 +1,23 @@
+class Portfolio:
+ def __init__(self, trades):
+ self.trades = trades
+
+ @property
+ def pnl(self):
+ return sum(t.pnl for t in self.trades)
+
+ def make_original(self):
+ for t in self.trades:
+ t.make_original()
+
+ @property
+ def ref(self):
+ return self.trades[0].ref
+
+ @ref.setter
+ def ref(self, val):
+ for t in self.trades:
+ t.ref = val
+
+ def delta(self, val):
+ sum([getattr(t, 'delta', 1) * t.notional for t in self.trades])