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.5.0.tar.gz (301.7 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.5.0-py3-none-any.whl (286.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyfeng-0.5.0.tar.gz
Algorithm Hash digest
SHA256 867fc44a89a78fe5dfa8103bfcb519adab9d5c37fd466b6752bf8262a306333a
MD5 bafbfd8b537c2c778085c0ef4605e599
BLAKE2b-256 92e9434a3c5c5b895706f9d8a1ddf456d6a413cc955caee8597f79fa9fb627da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfeng-0.5.0.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: pyfeng-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 286.4 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aba8055a9667c2e306560ec0d1ccce794c7a9aa8e65fd4271cdcb5521c7613c7
MD5 8de3916feed208440b4a42c67e9ade4d
BLAKE2b-256 9bab6c2f0d93a22acf168cbf9a0f2bd100c4caba554dcead963564e1dfa891f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfeng-0.5.0-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