continuously Comppounded Zero Coupon Curve
def continuous_zero_curve(data, today=None, day_counter = ql.Actual365Fixed(), calendar = ql.TARGET()):
if today == None: today = date.today().isoformat()
if len(data)>0 and isinstance(data[0], list):
data = [(x[0],x[1]) for x in data]
dates = [
ql.Date(int(date.split('-')[2]),int(date.split('-')[1]),int(date.split('-')[0]))
for date,_ in data
]
rates = [
rate
for date,rate in data
]
# 3. Build the curve using Continuous compounding
continuous_curve = ql.ZeroCurve(
dates,
rates,
day_counter,
calendar,
ql.Linear(),
ql.Continuous,
ql.Annual # Frequency is ignored for continuous compounding
)
return continuous_curve