Skip to main content

QuantLib Python Objects with Typing

Project description

Pydantic QuantLib

https://img.shields.io/pypi/v/pydantic_quantlib.svg https://github.com/gecBurton/inference_logic/workflows/PythonPackage/badge.svg Documentation Status

QuantLib Python Objects with Typing

Features

This package uses pydantic to wrap QuantLib to provide a set of Typed class factories.

The pydantic models are auto-generated from the QuantLib SWIG bindings. The autogen code is available on request.

In the following example we construct a European Option.

import pydantic_quantlib as pql

payoff = pql.PlainVanillaPayoff(type=pql.OptionType.Put, strike=40)

european_exercise = pql.EuropeanExercise(date=pql.Date(d=4, m=1, y=2022))

european_option = pql.VanillaOptionBase(payoff=payoff, exercise=european_exercise)

The option can be converted to the usual QuantLib object for computation as seen in this fuller example.

>>> european_option.to_quantlib()
'<QuantLib.QuantLib.VanillaOption; proxy of <Swig Object of type 'ext::shared_ptr< VanillaOption > *' at 0x7f6559ddabd0> >'

it can also be printed:

>>> print(european_option)
'PlainVanillaPayoff(type=<OptionType.Put: -1>, strike=40.0) exercise=EuropeanExercise(date=Date0(d=4.0, m=1.0, y=2022.0))'

it can be converted to JSON:

>>> european_option.json()
'{"resource_name": "VanillaOption", "payoff": {"resource_name": "PlainVanillaPayoff", "type": -1, "strike": 40.0}, "exercise": {"resource_name": "EuropeanExercise", "date": {"resource_name": "Date", "d": 4, "m": 1, "y": 2022}}}'

and it can be loaded from JSON:

>>> json_repr = '{"resource_name": "VanillaOption", "payoff": {"resource_name": "PlainVanillaPayoff", "type": -1, "strike": 40.0}, "exercise": {"resource_name": "EuropeanExercise", "date": {"resource_name": "Date", "d": 4, "m": 1, "y": 2022}}}'
>>> pql.VanillaOption.parse_obj(json.loads(json_repr))

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.0 (2021-01-04)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_quantlib-0.3.0.tar.gz (48.6 kB view hashes)

Uploaded Source

Built Distribution

pydantic_quantlib-0.3.0-py2.py3-none-any.whl (36.9 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page