Skip to content

i05nagai/mafipy

Repository files navigation

https://travis-ci.org/i05nagai/mafipy.svg?branch=master https://circleci.com/gh/i05nagai/mafipy.svg?style=svg Code Climate Test Coverage Issue Count Join the chat at https://gitter.im/mafipy/Lobby

mafipy

Description

mathmatical finance in python. Supported methods are belows:

  • replication method
    • QuantoCMS
  • Analytic formula
    • Black Scholes
    • Black
    • SABR
  • Quasi Monte Carlo
    • sobol sequence (cython) up to 21202 dimension

Installation

pip install mafipy

Run examples

git clone https://github.com/i05nagai/mafipy.git
cd mafipy
python examples/plot_smile_curve_sabr.py

You will see the following drawing.

./docs/images/examples/plot_simle_curve_sabr.png

Documentation

Contributing

Set up development environment.

git clone https://github.com/i05nagai/mafipy.git
cd mafipy
git submodule init
git submodule update
pip install -r requirements.txt

Builds

To generate c files,

python setup.py build_ext

Test

To run tests, you additionally need to install pytest.

pip install -r requirements-dev.txt
python setup.py test

Benchmarks

asv is required to execute benchmarks. You can install asv by pip.

pip install asv

Then

# execute benchmarks
python setup.py benchmark
# generate html file from the results
python setup.py benchmark_publish
# preview the generated html through local server
python setup.py benchmark_preview

Release

Suppose that we create the version v.X.Y.Z. We follow PEP0440 compatible versioning rule.

In Circle CI, every built creates release files in master brnach. Make sure that the release files are properly created before releasing.

  1. Create git tag locally
git tag -a vX.Y.Z master
# for testing purpose, in this case, the package will be uploaded to test.pypi.org
git tag -a vX.Y.Zdev master
  1. Push git tag to remote
git push origin vX.Y.Z
  1. Circle CI build and run tests. After all tests passed, Circle CI make a release to GitHub and upload wheels to PyPI.

Related Projects