Skip to main content

Python Financial Engineering

Project description

PyFENG: [Py]thon [F]inancial [ENG]ineering

PyPI version Documentation Status Downloads

PyFENG provides an implementation of the standard financial engineering models for derivative pricing.

Implemented Models

  • Black-Scholes-Merton (BSM) and displaced BSM models:
    • Analytic option price, Greeks, and implied volatility.
  • Bachelier (Normal) model
    • Analytic option price, Greeks, and implied volatility.
  • Constant-elasticity-of-variance (CEV) model
    • Analytic option price, Greeks, and implied volatility.
  • Stochastic-alpha-beta-rho (SABR) model
    • Hagan's BSM vol approximation.
    • Choi & Wu's CEV vol approximation.
    • Analytic integral for the normal SABR.
    • Closed-form MC simulation for the normal SABR.
  • Hyperbolic normal stochastic volatility (NSVh) model
    • Analytic option pricing.
  • Heston model
    • FFT option pricing.
    • Almost exact MC simulation by Glasserman & Kim and Choi & Kwok.
  • Schobel-Zhu (OUSV) model
    • FFT option pricing.
    • Almost exact MC simulation by Choi
  • Rough volatility models
    • Rough Heston MC by Ma & Wu

About the Package

  • Uses numpy arrays as basic datatype so computations are naturally vectorized.
  • Purely Python without C/C++ extensisons.
  • Implemented with Python class.
  • Intended for academic use. By providing reference models, it saves researchers' time. See PyFENG for Papers in Related Projects below.

Installation

pip install pyfeng

For upgrade,

pip install pyfeng --upgrade

Code Snippets

In [1]:

import numpy as np
import pyfeng as pf
m = pf.Bsm(sigma=0.2, intr=0.05, divr=0.1)
m.price(strike=np.arange(80, 121, 10), spot=100, texp=1.2)

Out [1]:

array([15.71361973,  9.69250803,  5.52948546,  2.94558338,  1.48139131])

In [2]:

sigma = np.array([[0.2], [0.5]])
m = pf.Bsm(sigma, intr=0.05, divr=0.1) # sigma in axis=0
m.price(strike=np.array([90, 95, 100]), spot=100, texp=1.2, cp=np.array([-1,1,1]))

Out [2]:

array([[ 5.75927238,  7.38869609,  5.52948546],
       [16.812035  , 18.83878533, 17.10541288]])

Author

Related Projects

  • Commercial versions (implemented and optimized in C/C++) for some models are available. Email the author at pyfe@eml.cc.
  • PyFENG for Papers is a collection of Jupyter notebooks that reproduce the results of financial engineering research papers using PyFENG.
  • FER: Financial Engineering in R developed by the same author. Not all models in PyFENG are implemented in FER. FER is a subset of PyFENG.

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

pyfeng-0.4.1.tar.gz (294.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfeng-0.4.1-py3-none-any.whl (279.3 kB view details)

Uploaded Python 3

File details

Details for the file pyfeng-0.4.1.tar.gz.

File metadata

  • Download URL: pyfeng-0.4.1.tar.gz
  • Upload date:
  • Size: 294.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfeng-0.4.1.tar.gz
Algorithm Hash digest
SHA256 4d9bca3ae617dd68e5c4400eacac790d977809275e09e4e4b6890d65aa92f2c4
MD5 54e1c35ff0f1fb941ba25723c2a94e48
BLAKE2b-256 927435ecc518d7ab5889720dd3b08cbf0120ff01213fd46468e62649faec7d62

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfeng-0.4.1.tar.gz:

Publisher: publish.yml on PyFE/PyFENG

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfeng-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: pyfeng-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 279.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfeng-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8cc34fb7398f681be006e7e6e1644f6e5650e1aeb648ff406927b29b5366692c
MD5 648e5924ecf8567dbb3a5a0f66c4e443
BLAKE2b-256 4f213781a4c995b8248968da3c73967f2d056dc66e4dfc6e2a06163cd4618b97

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfeng-0.4.1-py3-none-any.whl:

Publisher: publish.yml on PyFE/PyFENG

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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