A Python library for financial yield curves.
Project description
Python library yieldcurves
A Python library for financial yield curves. Typical banking business methods are provided like interpolation, compounding, discounting and fx.
Example Usage
>>> from yieldcurves import YieldCurve >>> from yieldcurves.interpolation import linear
>>> time_grid = [0, 2] >>> rate_grid = [.03, .05] >>> curve = linear(time_grid, rate_grid) >>> yc = YieldCurve(curve) >>> yc.zero(0, 1) 0.040000000000000036
>>> yc.df(0, 1) 0.9607894391523232
Or use datetime
>>> from yieldcurves import DateCurve >>> from datetime import date
>>> start = date(2013, 1, 1) >>> mid = date(2014, 1, 1) >>> end = date(2015, 1, 1)
>>> dc = DateCurve.from_interpolation([start, end], [.03, .05], origin=start) >>> dc.zero(start, mid) 0.03999999999999998
>>> dc.df(start, mid) 0.9608157444936446
The framework works fine with native datetime but we recommend businessdate package for more convenient functionality to roll out date schedules.
>>> from businessdate import BusinessDate, BusinessSchedule
So, build a date schedule.
>>> today = BusinessDate(20201031) >>> schedule = BusinessSchedule(today, today + "8q", step="1q") >>> schedule [BusinessDate(20201031), BusinessDate(20210131), BusinessDate(20210430), BusinessDate(20210731), BusinessDate(20211031), BusinessDate(20220131), BusinessDate(20220430), BusinessDate(20220731), BusinessDate(20221031)]
Documentation
More documentation available at http://yieldcurves.readthedocs.io
Install
The latest stable version can always be installed or updated via pip:
$ pip install yieldcurves
Development Version
The latest development version can be installed directly from GitHub:
$ pip install --upgrade git+https://github.com/sonntagsgesicht/yieldcurves.git
Contributions
Issues and Pull Requests are always welcome.
License
Code and documentation are available according to the Apache Software License (see LICENSE).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.