quantflow 0.6.3__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {quantflow-0.6.3 → quantflow-0.7.0}/.github/copilot-instructions.md +1 -1
- quantflow-0.7.0/.hypothesis/.gitignore +9 -0
- quantflow-0.7.0/.hypothesis/constants/0254a8e6686c0188 +4 -0
- quantflow-0.7.0/.hypothesis/constants/0301065152d9ab0f +4 -0
- quantflow-0.7.0/.hypothesis/constants/08a9483e67e42715 +4 -0
- quantflow-0.7.0/.hypothesis/constants/12661bda99c599a0 +4 -0
- quantflow-0.7.0/.hypothesis/constants/178c27013672fc03 +4 -0
- quantflow-0.7.0/.hypothesis/constants/179cb27b16ec61cb +4 -0
- quantflow-0.7.0/.hypothesis/constants/1d76d579f73cb78a +4 -0
- quantflow-0.7.0/.hypothesis/constants/1fb1e289086a6515 +4 -0
- quantflow-0.7.0/.hypothesis/constants/22c995d873e6fc5e +4 -0
- quantflow-0.7.0/.hypothesis/constants/28ee0759c42ef0dc +4 -0
- quantflow-0.7.0/.hypothesis/constants/359bfc81440230bd +4 -0
- quantflow-0.7.0/.hypothesis/constants/38eb4b8a22a4e143 +4 -0
- quantflow-0.7.0/.hypothesis/constants/3b743a167ba8a00d +4 -0
- quantflow-0.7.0/.hypothesis/constants/3d1ea6cd5c0dd805 +4 -0
- quantflow-0.7.0/.hypothesis/constants/3f69026b057c9ea4 +4 -0
- quantflow-0.7.0/.hypothesis/constants/43429b7066040416 +4 -0
- quantflow-0.7.0/.hypothesis/constants/48eded684f2df5ff +4 -0
- quantflow-0.7.0/.hypothesis/constants/48f9e94e06874f1f +4 -0
- quantflow-0.7.0/.hypothesis/constants/4a0084c87b2db2c3 +4 -0
- quantflow-0.7.0/.hypothesis/constants/559123e9ab320ac4 +4 -0
- quantflow-0.7.0/.hypothesis/constants/56b8b5b1f444ca20 +4 -0
- quantflow-0.7.0/.hypothesis/constants/57aada3b0484db35 +4 -0
- quantflow-0.7.0/.hypothesis/constants/57d925bf614c980e +4 -0
- quantflow-0.7.0/.hypothesis/constants/586b6c6bec39754b +4 -0
- quantflow-0.7.0/.hypothesis/constants/5db8650c1259a5be +4 -0
- quantflow-0.7.0/.hypothesis/constants/5e91d8ab779e1b7f +4 -0
- quantflow-0.7.0/.hypothesis/constants/5e9b34ae43a63455 +4 -0
- quantflow-0.7.0/.hypothesis/constants/60fd378f4cdd9e2b +4 -0
- quantflow-0.7.0/.hypothesis/constants/62b16e163f3080b1 +4 -0
- quantflow-0.7.0/.hypothesis/constants/65be84333a21ee0e +4 -0
- quantflow-0.7.0/.hypothesis/constants/6c21b394c1448f8f +4 -0
- quantflow-0.7.0/.hypothesis/constants/6f23e19523671fa0 +4 -0
- quantflow-0.7.0/.hypothesis/constants/7447925d1ef6c39e +4 -0
- quantflow-0.7.0/.hypothesis/constants/746b49e5b68d35ad +4 -0
- quantflow-0.7.0/.hypothesis/constants/8077ddf6166a85cc +4 -0
- quantflow-0.7.0/.hypothesis/constants/81385a74f6fe21d1 +4 -0
- quantflow-0.7.0/.hypothesis/constants/8e946ad29fdc078f +4 -0
- quantflow-0.7.0/.hypothesis/constants/92a3edfcfc1aea4b +4 -0
- quantflow-0.7.0/.hypothesis/constants/93bfbd91994ac4c8 +4 -0
- quantflow-0.7.0/.hypothesis/constants/9be9011eed1003b0 +4 -0
- quantflow-0.7.0/.hypothesis/constants/9f39c6a9e378f874 +4 -0
- quantflow-0.7.0/.hypothesis/constants/a4e02d335ce302fe +4 -0
- quantflow-0.7.0/.hypothesis/constants/a5942183658b1820 +4 -0
- quantflow-0.7.0/.hypothesis/constants/abe86acdb72d5329 +4 -0
- quantflow-0.7.0/.hypothesis/constants/b2bc2ff1a9dc1ebd +4 -0
- quantflow-0.7.0/.hypothesis/constants/b43b9a034a123011 +4 -0
- quantflow-0.7.0/.hypothesis/constants/bc2ede502ce77baa +4 -0
- quantflow-0.7.0/.hypothesis/constants/be48829d39927abc +4 -0
- quantflow-0.7.0/.hypothesis/constants/c05e0bd6fe504415 +4 -0
- quantflow-0.7.0/.hypothesis/constants/c198e8c7d980ebd0 +4 -0
- quantflow-0.7.0/.hypothesis/constants/c42c0c1705a53e64 +4 -0
- quantflow-0.7.0/.hypothesis/constants/cc15223c7c9326cd +4 -0
- quantflow-0.7.0/.hypothesis/constants/ce1f53f3613afe56 +4 -0
- quantflow-0.7.0/.hypothesis/constants/ced58ab73e655e68 +4 -0
- quantflow-0.7.0/.hypothesis/constants/cf8267391ea821cf +4 -0
- quantflow-0.7.0/.hypothesis/constants/d1c239339de85cf1 +4 -0
- quantflow-0.7.0/.hypothesis/constants/da39a3ee5e6b4b0d +4 -0
- quantflow-0.7.0/.hypothesis/constants/dfdb158bb5ee458f +4 -0
- quantflow-0.7.0/.hypothesis/constants/e0a9a30d56186ce4 +4 -0
- quantflow-0.7.0/.hypothesis/constants/e238343dcf50c80f +4 -0
- quantflow-0.7.0/.hypothesis/constants/ed5fae84fef8d28d +4 -0
- quantflow-0.7.0/.hypothesis/constants/f33893fdc851717e +4 -0
- quantflow-0.7.0/.hypothesis/constants/f5861549f7f1821b +4 -0
- quantflow-0.7.0/.hypothesis/constants/fc9042c4e0183418 +4 -0
- quantflow-0.7.0/.hypothesis/constants/fe8b643a6cddd723 +4 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/launch.json +1 -1
- {quantflow-0.6.3 → quantflow-0.7.0}/PKG-INFO +1 -1
- {quantflow-0.6.3 → quantflow-0.7.0}/app/volatility_surface.py +35 -12
- quantflow-0.7.0/docs/api/options/svi.md +3 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/vol_surface.md +2 -0
- quantflow-0.7.0/docs/api/rates/index.md +1 -0
- quantflow-0.7.0/docs/api/rates/interest_rate.md +4 -0
- quantflow-0.7.0/docs/api/rates/yield_curve.md +6 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/glossary.md +18 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/mkdocs.yml +5 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/pyproject.toml +11 -1
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/inputs.py +4 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/surface.py +336 -49
- quantflow-0.7.0/quantflow/options/svi.py +144 -0
- quantflow-0.7.0/quantflow/rates/interest_rate.py +110 -0
- quantflow-0.7.0/quantflow/rates/nelson_siegel.py +123 -0
- quantflow-0.7.0/quantflow/rates/yield_curve.py +37 -0
- quantflow-0.7.0/quantflow/utils/__init__.py +0 -0
- quantflow-0.7.0/quantflow_tests/conftest.py +13 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_instruments.json +5 -5
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ai.py +0 -8
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_data_deribit.py +16 -6
- quantflow-0.7.0/quantflow_tests/test_disable_outliers.py +215 -0
- quantflow-0.7.0/quantflow_tests/test_implied_fwd.py +175 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_options.py +2 -8
- quantflow-0.7.0/quantflow_tests/test_rates.py +220 -0
- quantflow-0.7.0/quantflow_tests/test_surface_methods.py +82 -0
- quantflow-0.7.0/quantflow_tests/test_svi.py +136 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/utils.py +12 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/uv.lock +806 -750
- quantflow-0.6.3/quantflow/utils/interest_rates.py +0 -51
- quantflow-0.6.3/quantflow_tests/conftest.py +0 -3
- {quantflow-0.6.3 → quantflow-0.7.0}/.coveragerc +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.dockerignore +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/build.yml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/deploy.yml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/docker-multiarch.yml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.gitignore +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/settings.json +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/tasks.json +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/CITATION.cff +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/CLAUDE.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/LICENSE +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/Makefile +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/__main__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/cointegration.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/double_exponential_sampling.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/gaussian_sampling.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/heston_divfm_fit.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/heston_vol_surface.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/hurst.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/poisson_sampling.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/scripts/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/scripts/heston_divfm_fit.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/supersmoother.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/app/utils/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/blocks/quantflow.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/build-examples +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/charts.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/.helmignore +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/Chart.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/_helpers.tpl +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/_service.tpl +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/app.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/configmap.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/secret.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/values.yaml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/install +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/lint +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/marimo +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/quantflow.dockerfile +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/dev/test +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/deribit.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fed.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fmp.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fred.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/black.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/calibration.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/divfm.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/pricer.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/cir.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/compound_poisson.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/copula.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/dsp.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/heston.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/jump_diffusion.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/ou.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/poisson.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/weiner.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/ewma.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/kalman.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/ohlc.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/paths.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/supersmoother.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/bins.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/distributions.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/marginal1d.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/numbers.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/types.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/heston.gif +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/heston_calibrated_smile.png +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/hestonj_calibrated_smile.png +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/linkedin-banner.png +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-light.svg +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-logo.png +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-repo.png +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-repo.svg +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow.svg +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/bibliography.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/contributing.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/heston_volatility_pricer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_heston_calibration.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_hestonj_calibration.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_inputs.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/volsurface.json +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/weiner_volatility_pricer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples_png/vol_surface_heston_plot.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples_png/vol_surface_hestonj_plot.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/javascripts/mathjax.js +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/references.bib +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/characteristic.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/inversion.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/levy.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/option_pricing.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/index.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/option_pricing.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/volatility_surface.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/calibration.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/calibration.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/volatility_surface.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fed.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fiscal_data.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fmp.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/timeseries.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/bns.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/cir.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/gousv.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/heston.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/heston_jumps.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/jump_diffusion.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/ou.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/overview.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/poisson.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/weiner.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/server.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/base.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/charts.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/crypto.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/fred.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/stocks.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/vault.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/deribit.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fed.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fiscal_data.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fmp.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fred.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/vault.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/bs.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/calibration.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/network.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/pricer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/trainer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/weights.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/butterfly.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/calendar_spread.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/spread.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/straddle.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/strangle.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/terminology.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/pricer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/base.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/butterfly.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/calendar_spread.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/spread.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/straddle.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/strangle.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/py.typed +0 -0
- {quantflow-0.6.3/quantflow/sp → quantflow-0.7.0/quantflow/rates}/__init__.py +0 -0
- {quantflow-0.6.3/quantflow/utils → quantflow-0.7.0/quantflow/sp}/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/base.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/bns.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/cir.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/copula.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/dsp.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/heston.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/jump_diffusion.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/ou.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/poisson.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/weiner.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/__init__.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/base.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/ewma.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/kalman.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/ohlc.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/paths.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/supersmoother.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/bins.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/dates.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/distributions.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/functions.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/marginal.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/numbers.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/plot.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/transforms.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/types.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_futures.json +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_options.json +0 -0
- {quantflow-0.6.3/quantflow_tests → quantflow-0.7.0/quantflow_tests/fixtures}/volsurface.json +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_cir.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_copula.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_data.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_distributions.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_divfm.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_frft.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_heston.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_jump_diffusion.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ohlc.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_options_pricer.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ou.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_poisson.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_strategies.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_utils.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_vault.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_weiner.py +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/readme.md +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/rops.toml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/taplo.toml +0 -0
- {quantflow-0.6.3 → quantflow-0.7.0}/test_comparison.py +0 -0
|
@@ -28,7 +28,7 @@ applyTo: '/**'
|
|
|
28
28
|
* The documentation for quantflow is available at `https://quantflow.quantmid.com`
|
|
29
29
|
* Documentation is built using [mkdocs](https://www.mkdocs.org/) and stored in the `docs/` directory. The documentation source files are written in markdown format.
|
|
30
30
|
* Do not use em dashes (—) in documentation files or docstrings. Use colons, parentheses, or restructure the sentence instead.
|
|
31
|
-
* Math in documentation and docstrings
|
|
31
|
+
* Math in documentation and docstrings: always use `\begin{equation}...\end{equation}` for any formula or equation. Use `$...$` only for brief inline references to variables (e.g. $F$, $K$). Do not use `$$...$$`, `` `...` ``, or RST syntax (`.. math::`, `:math:`).
|
|
32
32
|
* Glossary entries in `docs/glossary.md` must be kept in alphabetical order.
|
|
33
33
|
* To rebuild doc examples run `uv run ./dev/build-examples` — runs all scripts in `docs/examples/` and writes their output to `docs/examples_output/`
|
|
34
34
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# This .gitignore file was automatically created by Hypothesis. Hypothesis gitignores
|
|
2
|
+
# .hypothesis by default, because we generally recommend that .hypothesis not be checked
|
|
3
|
+
# into version control.
|
|
4
|
+
#
|
|
5
|
+
# If you *would* like to check .hypothesis into version control, you should delete this
|
|
6
|
+
# file. Hypothesis will not re-create this .gitignore unless .hypothesis is deleted (and
|
|
7
|
+
# if it does, that's a bug - please report it!)
|
|
8
|
+
|
|
9
|
+
*
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/data/fred.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
['FRED_API_KEY', 'a', 'bw', 'category', 'category/children', 'category/series', 'd', 'date', 'json', 'm', 'observations', 'params', 'q', 'sa', 'series/observations', 'value', 'w']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/data/fmp.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
[1.0, 100, 240, 1440, 525600, ',', '15min', '1hour', '1min', '30min', '4hour', '5min', 'API endpoint path', 'FMP_API_KEY', 'Filter by exchange', 'Search query string', 'Ticker symbol', '_', 'apikey', 'changesPercentage', 'date', 'dividends-calendar', 'etf-list', 'from', 'historical', 'index-list', 'insider-trading', 'market-risk-premium', 'params', 'ratios', 'ratios-ttm', 'search-name', 'search-symbol', 'sector', 'sectors-performance', 'stock-list', 'stock_news', 'stock_peers', 'symbol', 'tickers', 'to']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/data/fed.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
['H15', 'ND', 'PRATES', 'RESBME_N.D', 'RESBM_N.D', 'Time Period', 'all', 'csv', 'date', 'filetype', 'from', 'include', 'label', 'lastobs', 'layout', 'month_1', 'month_3', 'month_6', 'package', 'rate', 'seriescolumn', 'to', 'type', 'year_1', 'year_10', 'year_2', 'year_20', 'year_3', 'year_30', 'year_5', 'year_7']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/options/surface.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
[0.0, 0.2, 0.5, 100, 365, 10000, 'Ask option price', 'Ask price', 'Bid option price', 'Bid price', 'Inf', 'S', 'Total volume traded', 'Volume for the spot', 'ignore', 'inf', 'turntable']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/utils/plot.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
['PLOTLY_THEME', 'analytical', 'ask', 'bid', 'blue', 'characteristic', 'characteristic PDF', 'close', 'date', 'frequency', 'high', 'implied_vol', 'lines', 'log', 'low', 'markers', 'model', 'moneyness_ttm', 'name', 'normal', 'open', 'plotly_dark', 'preserve_ui_state', 'red', 'side', 'ttm', 'turntable', 'viridis']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/data/deribit.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
['API path', 'Currency', 'HTTP response object', 'Instrument name', 'ask_price', 'base_currency', 'bid_price', 'call', 'error', 'expiration_timestamp', 'inf', 'instrument_name', 'ms', 'open_interest', 'option_type', 'perpetual', 'result', 'settlement_period', 'strike', 'tick_size', 'timestamp', 'usdc', 'volatility', 'volume_usd']
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# file: /home/runner/work/quantflow/quantflow/quantflow/options/pricer.py
|
|
2
|
+
# hypothesis_version: 6.152.2
|
|
3
|
+
|
|
4
|
+
[-1.8, 0.0, 0.05, 0.3, 0.5, 1.0, 1.2, 1.5, 128, 10000, 'Black', 'M', 'Name of the model', 'TTM', 'Time to maturity', 'call', 'implied_vol', 'moneyness', 'moneyness_ttm', 'time_value', 'turntable', 'viridis', 'white']
|
|
@@ -42,12 +42,6 @@ def _(mo):
|
|
|
42
42
|
return
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
@app.cell
|
|
46
|
-
def _():
|
|
47
|
-
kwargs = dict()
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
45
|
@app.cell
|
|
52
46
|
def _(mo):
|
|
53
47
|
asset = mo.ui.dropdown(["btc", "eth", "sol"], value="btc", label="asset")
|
|
@@ -57,7 +51,7 @@ def _(mo):
|
|
|
57
51
|
|
|
58
52
|
|
|
59
53
|
@app.cell
|
|
60
|
-
async def _(asset, inverse):
|
|
54
|
+
async def _(asset, inverse, mo):
|
|
61
55
|
import pandas as pd
|
|
62
56
|
from quantflow.data.deribit import Deribit
|
|
63
57
|
|
|
@@ -74,20 +68,49 @@ async def _(asset, inverse):
|
|
|
74
68
|
surface.bs()
|
|
75
69
|
# disable outliers
|
|
76
70
|
surface.disable_outliers()
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
#
|
|
72
|
+
def int_or_none(v):
|
|
73
|
+
try:
|
|
74
|
+
return int(v)
|
|
75
|
+
except TypeError:
|
|
76
|
+
return None
|
|
77
|
+
|
|
78
|
+
maturites = [c.maturity for c in surface.maturities]
|
|
79
|
+
maturity_dropdown = mo.ui.dropdown(
|
|
80
|
+
options={m.strftime("%Y-%m-%d"): i for i, m in enumerate(maturites)},
|
|
81
|
+
label="Maturity"
|
|
82
|
+
)
|
|
83
|
+
maturity_dropdown
|
|
84
|
+
return int_or_none, maturity_dropdown, pd, surface
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@app.cell
|
|
88
|
+
def _(int_or_none, maturity_dropdown, surface):
|
|
89
|
+
index = int_or_none(maturity_dropdown.value)
|
|
90
|
+
surface.plot3d(index=index)
|
|
91
|
+
return (index,)
|
|
79
92
|
|
|
80
93
|
|
|
81
94
|
@app.cell
|
|
82
|
-
def _(pd, surface):
|
|
95
|
+
def _(index, pd, surface):
|
|
83
96
|
# display inputs - only options with converged implied volatility
|
|
84
|
-
surface_inputs = surface.inputs(converged=True)
|
|
97
|
+
surface_inputs = surface.inputs(converged=True, index=index)
|
|
85
98
|
pd.DataFrame([i.model_dump() for i in surface_inputs.inputs])
|
|
86
99
|
return
|
|
87
100
|
|
|
88
101
|
|
|
89
102
|
@app.cell
|
|
90
|
-
def _():
|
|
103
|
+
def _(surface):
|
|
104
|
+
ts = surface.term_structure()
|
|
105
|
+
ts
|
|
106
|
+
return (ts,)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@app.cell
|
|
110
|
+
def _(ts):
|
|
111
|
+
from quantflow.utils import plot
|
|
112
|
+
|
|
113
|
+
plot.plot_lines(ts, x="ttm", y="rate_percent")
|
|
91
114
|
return
|
|
92
115
|
|
|
93
116
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Interest Rates
|
|
@@ -97,6 +97,24 @@ The [probability density function](https://en.wikipedia.org/wiki/Probability_den
|
|
|
97
97
|
F_x(x) = \int_{-\infty}^x f_x(s) ds
|
|
98
98
|
\end{equation}
|
|
99
99
|
|
|
100
|
+
## Put-Call Parity
|
|
101
|
+
|
|
102
|
+
Put-call parity is a no-arbitrage relationship between the prices of European call
|
|
103
|
+
and put options with the same strike $K$ and maturity. Denoting forward-space prices
|
|
104
|
+
$c = C/F$ and $p = P/F$ (see [Black Pricing](api/options/black.md)), the relationship
|
|
105
|
+
reads:
|
|
106
|
+
|
|
107
|
+
\begin{equation}
|
|
108
|
+
c - p = 1 - \frac{K}{F} = 1 - e^k
|
|
109
|
+
\end{equation}
|
|
110
|
+
|
|
111
|
+
where $k$ is the [log-strike](#log-strike).
|
|
112
|
+
In quoting currency terms, multiplying through by $F$:
|
|
113
|
+
|
|
114
|
+
\begin{equation}
|
|
115
|
+
C - P = F - K
|
|
116
|
+
\end{equation}
|
|
117
|
+
|
|
100
118
|
## Time To Maturity (TTM)
|
|
101
119
|
|
|
102
120
|
Time to maturity is the time remaining until an option or forward contract expires,
|
|
@@ -72,6 +72,7 @@ nav:
|
|
|
72
72
|
- Calibration: api/options/calibration.md
|
|
73
73
|
- Deep IV Factor Model: api/options/divfm.md
|
|
74
74
|
- Pricer: api/options/pricer.md
|
|
75
|
+
- SVI Smile: api/options/svi.md
|
|
75
76
|
- Volatility Surface: api/options/vol_surface.md
|
|
76
77
|
- Stochastic Processes:
|
|
77
78
|
- api/sp/index.md
|
|
@@ -91,6 +92,10 @@ nav:
|
|
|
91
92
|
- OHLC: api/ta/ohlc.md
|
|
92
93
|
- Paths: api/ta/paths.md
|
|
93
94
|
- Supersmoother: api/ta/supersmoother.md
|
|
95
|
+
- Rates:
|
|
96
|
+
- api/rates/index.md
|
|
97
|
+
- Interest Rate: api/rates/interest_rate.md
|
|
98
|
+
- Yield Curve: api/rates/yield_curve.md
|
|
94
99
|
- Utilities:
|
|
95
100
|
- api/utils/index.md
|
|
96
101
|
- Bins: api/utils/bins.md
|