Skip to main content

A simple curve bootstraping tool based on ORE/QuantLib

Project description

CurveEngine

A simple curve bootstrapping tool. It uses ORE as backend and parses configuration files (see example below) and transform them into QL/ORE objects.

Documentation

Documentation is available at https://jmelo11.github.io/curveenginedocs/

Build

For building the project, you need to have cmake installed. Then, run the following commands:

python -m build

Example

For a more detail example, visit the example folder.

{
    "refDate": "2023-02-14",
    "curves": [
        {
            "curveName": "SOFR",
            "curveConfig": {
                "curveType": "Piecewise",
                "dayCounter": "Actual360",
                "enableExtrapolation": true,
                "rateHelpers": [
                    {
                        "helperType": "Deposit",
                        "helperConfig": {
                            "dayCounter": "Actual360",
                            "tenor": "1D",
                            "calendar": "NullCalendar",
                            "settlementDays": 0,
                            "endOfMonth": false,
                            "convention": "Unadjusted"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.0455,
                                "ticker": "SOFRRATE CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "1W",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.045555000000000005,
                                "ticker": "USOSFR1Z CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "2W",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.045568,
                                "ticker": "USOSFR2Z CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "1M",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.04564,
                                "ticker": "USOSFRA CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "3M",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.047723,
                                "ticker": "USOSFRC CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "6M",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.050135,
                                "ticker": "USOSFRF CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "12M",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.051856,
                                "ticker": "USOSFR1 CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "3Y",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.042443,
                                "ticker": "USOSFR3 CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "5Y",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.037866,
                                "ticker": "USOSFR5 CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "7Y",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.035910000000000004,
                                "ticker": "USOSFR7 CURNCY"
                            }
                        }
                    },
                    {
                        "helperType": "OIS",
                        "helperConfig": {
                            "tenor": "10Y",
                            "dayCounter": "Actual360",
                            "calendar": "NullCalendar",
                            "convention": "Following",
                            "endOfMonth": true,
                            "frequency": "Annual",
                            "settlementDays": 2,
                            "paymentLag": 2,
                            "telescopicValueDates": true,
                            "index": "SOFR",
                            "fixedLegFrequency": "Semiannual",
                            "fwdStart": "0D"
                        },
                        "marketConfig": {
                            "rate": {
                                "value": 0.03464,
                                "ticker": "USOSFR10 CURNCY"
                            }
                        }
                    }
                ]
            },
            "curveIndex": {
                "indexType": "OvernightIndex",
                "tenor": "1D",
                "dayCounter": "Actual360",
                "currency": "USD",
                "fixingDays": 0,
                "calendar": "NullCalendar",
                "endOfMonth": false,
                "convention": "Unadjusted"
            }
        }
    ]
}

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

curveengine-1.1.7.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

curveengine-1.1.7-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file curveengine-1.1.7.tar.gz.

File metadata

  • Download URL: curveengine-1.1.7.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for curveengine-1.1.7.tar.gz
Algorithm Hash digest
SHA256 a7bed43b485a4e613e26a47ded930340dc67a8c3d9539183b7083ca1ed7dc278
MD5 24b6666f899c8d3dacc8db30575555ed
BLAKE2b-256 d831e6def07c6a75c0a66e7c3b6a817cb5f80505bcb696c6bd89eaf4b82819ec

See more details on using hashes here.

File details

Details for the file curveengine-1.1.7-py3-none-any.whl.

File metadata

  • Download URL: curveengine-1.1.7-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for curveengine-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 76973eed1d4943cf9b81f8b3bb053dca20da26db1936e832b0d354c4bc87dd26
MD5 47cd83b8caa01bcd22773f877ae13012
BLAKE2b-256 e898f387a996b8bff46ae9b4b5253c2eb13427a6b4581d08f237cb78875521eb

See more details on using hashes here.

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