FinancePy is a library of native Python functions for valuing, selecting and risk-managing financial assets.
The aim of this library for me has been to provide a comprehensive and accessible Python library for financial calculations that can be used by students to learn about financial derivatives. It can also be used by academics and practitioners to perform the pricing and risk-management of complex financial products, albeit without any warranties. Users should perform their own testing. See the license for the full disclaimer.
I intend that subsequent versions will also include asset selection, portfolio-level risk management, regulatory calculations and market analysis tools.
In general my objectives have been:
- To make the code as simple as possible so that students and those with a basic Python fluency can understand and check the code.
- To keep all the code in Python so users can look through the code to the lowest level.
- To offset the performance impact of (2) by leveraging Numba to make the code as fast as possible without resorting to Cython.
- To make the design product-based rather than model-based so someone wanting to price a specific exotic option can easily find that without having to worry too much about the model – just use the default – unless they want to.
- To make the library as complete as possible so a user can find all their required finance-related functionality in one place. This is better for the user as they only have to learn one interface.
- To avoid complex designs as I do not want to make it too hard for unskilled Python programmers to use the library.
- To have good documentation and easy-to-follow examples.
- To make it easy for interested parties to contribute.
In many cases the valuations should be close to if not identical to those produced by financial systems such as Bloomberg. However for some products, larger value differences may arise due to differences in date generation and interpolation schemes. Over time I expect to reduce the size of such differences.
FinancePy depends on Numpy and Numba and Scipy.
FinancePy can be installed via pip as
pip install financepy
See the changelog for a detailed history of changes
Contributions are welcome, as long as you don't mind camel case ;-)
MIT