1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
from analytics import Portfolio, BlackSwaption, Index, VolatilitySurface, Swaption
import pandas as pd
from pandas.tseries.offsets import BDay
import numpy as np
import datetime
option_delta = Index.from_tradeid(874)
option1 = BlackSwaption.from_tradeid(7, option_delta)
option2 = BlackSwaption.from_tradeid(8, option_delta)
portf = Portfolio([option1, option2, option_delta])
date_range = pd.bdate_range(option_delta.trade_date,
pd.Timestamp('2017-04-25'), freq = 'B')
pnl = []
for date in date_range:
portf.trade_date = date.date()
portf.mark(source="BAML", model="black")
pnl.append(portf.pnl)
df = pd.DataFrame({'pnl': pnl}, index=date_range)
# option_delta = Index.from_tradeid(870)
# option1 = BlackSwaption.from_tradeid(5, option_delta)
# option2 = BlackSwaption.from_tradeid(6, option_delta)
# portf = Portfolio([option1, option2, option_delta])
# date_range = pd.bdate_range(option_delta.trade_date,
# pd.Timestamp('2017-04-19'), freq = 'B')
# pnl = []
# for date in date_range:
# portf.trade_date = date.date()
# try:
# portf.mark(source="BAML", model="black")
# except ValueError:
# try:
# portf.mark(source="GS", model="black")
# except ValueError:
# pnl.append(None)
# continue
# pnl.append(portf.pnl)
# df = pd.DataFrame({'pnl': pnl}, index=date_range)
|