Python Financial Engineering
Project description
PyFENG: [Py]thon [F]inancial [ENG]ineering
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
numpyarrays 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=[90, 95, 100], spot=100, texp=1.2, cp=[-1,1,1])
Out [2]:
array([[ 5.75927238, 7.38869609, 5.52948546],
[16.812035 , 18.83878533, 17.10541288]])
Author
- Prof. Jaehyuk Choi (Peking University HSBC Business School). Email: pyfe@eml.cc
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
PyFENGare implemented inFER.FERis a subset ofPyFENG.
Project details
Release history Release notifications | RSS feed
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.3.1.tar.gz
(210.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pyfeng-0.3.1-py3-none-any.whl
(224.5 kB
view details)
File details
Details for the file pyfeng-0.3.1.tar.gz.
File metadata
- Download URL: pyfeng-0.3.1.tar.gz
- Upload date:
- Size: 210.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d3367909e4dde843e243205ea82d283db45e33887afc7586105844764525dc
|
|
| MD5 |
bc102b4c3453f1aed147f0f4af4835c4
|
|
| BLAKE2b-256 |
da41bf765a695a56852bf8f9b59cee1308841fbb36a72c140042736d758e8e6b
|
File details
Details for the file pyfeng-0.3.1-py3-none-any.whl.
File metadata
- Download URL: pyfeng-0.3.1-py3-none-any.whl
- Upload date:
- Size: 224.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2991ac2b5705cd0680fd9f7c475b0bfb19291a7ca375c3c76700787bf86afb3d
|
|
| MD5 |
8a3b50da8536c920a927260b8d64c368
|
|
| BLAKE2b-256 |
a71cffbf48e5a090eedc73cecb81820fcc2b7a12a1107dbd2f41bf30575b464b
|