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.
Files changed (310) hide show
  1. {quantflow-0.6.3 → quantflow-0.7.0}/.github/copilot-instructions.md +1 -1
  2. quantflow-0.7.0/.hypothesis/.gitignore +9 -0
  3. quantflow-0.7.0/.hypothesis/constants/0254a8e6686c0188 +4 -0
  4. quantflow-0.7.0/.hypothesis/constants/0301065152d9ab0f +4 -0
  5. quantflow-0.7.0/.hypothesis/constants/08a9483e67e42715 +4 -0
  6. quantflow-0.7.0/.hypothesis/constants/12661bda99c599a0 +4 -0
  7. quantflow-0.7.0/.hypothesis/constants/178c27013672fc03 +4 -0
  8. quantflow-0.7.0/.hypothesis/constants/179cb27b16ec61cb +4 -0
  9. quantflow-0.7.0/.hypothesis/constants/1d76d579f73cb78a +4 -0
  10. quantflow-0.7.0/.hypothesis/constants/1fb1e289086a6515 +4 -0
  11. quantflow-0.7.0/.hypothesis/constants/22c995d873e6fc5e +4 -0
  12. quantflow-0.7.0/.hypothesis/constants/28ee0759c42ef0dc +4 -0
  13. quantflow-0.7.0/.hypothesis/constants/359bfc81440230bd +4 -0
  14. quantflow-0.7.0/.hypothesis/constants/38eb4b8a22a4e143 +4 -0
  15. quantflow-0.7.0/.hypothesis/constants/3b743a167ba8a00d +4 -0
  16. quantflow-0.7.0/.hypothesis/constants/3d1ea6cd5c0dd805 +4 -0
  17. quantflow-0.7.0/.hypothesis/constants/3f69026b057c9ea4 +4 -0
  18. quantflow-0.7.0/.hypothesis/constants/43429b7066040416 +4 -0
  19. quantflow-0.7.0/.hypothesis/constants/48eded684f2df5ff +4 -0
  20. quantflow-0.7.0/.hypothesis/constants/48f9e94e06874f1f +4 -0
  21. quantflow-0.7.0/.hypothesis/constants/4a0084c87b2db2c3 +4 -0
  22. quantflow-0.7.0/.hypothesis/constants/559123e9ab320ac4 +4 -0
  23. quantflow-0.7.0/.hypothesis/constants/56b8b5b1f444ca20 +4 -0
  24. quantflow-0.7.0/.hypothesis/constants/57aada3b0484db35 +4 -0
  25. quantflow-0.7.0/.hypothesis/constants/57d925bf614c980e +4 -0
  26. quantflow-0.7.0/.hypothesis/constants/586b6c6bec39754b +4 -0
  27. quantflow-0.7.0/.hypothesis/constants/5db8650c1259a5be +4 -0
  28. quantflow-0.7.0/.hypothesis/constants/5e91d8ab779e1b7f +4 -0
  29. quantflow-0.7.0/.hypothesis/constants/5e9b34ae43a63455 +4 -0
  30. quantflow-0.7.0/.hypothesis/constants/60fd378f4cdd9e2b +4 -0
  31. quantflow-0.7.0/.hypothesis/constants/62b16e163f3080b1 +4 -0
  32. quantflow-0.7.0/.hypothesis/constants/65be84333a21ee0e +4 -0
  33. quantflow-0.7.0/.hypothesis/constants/6c21b394c1448f8f +4 -0
  34. quantflow-0.7.0/.hypothesis/constants/6f23e19523671fa0 +4 -0
  35. quantflow-0.7.0/.hypothesis/constants/7447925d1ef6c39e +4 -0
  36. quantflow-0.7.0/.hypothesis/constants/746b49e5b68d35ad +4 -0
  37. quantflow-0.7.0/.hypothesis/constants/8077ddf6166a85cc +4 -0
  38. quantflow-0.7.0/.hypothesis/constants/81385a74f6fe21d1 +4 -0
  39. quantflow-0.7.0/.hypothesis/constants/8e946ad29fdc078f +4 -0
  40. quantflow-0.7.0/.hypothesis/constants/92a3edfcfc1aea4b +4 -0
  41. quantflow-0.7.0/.hypothesis/constants/93bfbd91994ac4c8 +4 -0
  42. quantflow-0.7.0/.hypothesis/constants/9be9011eed1003b0 +4 -0
  43. quantflow-0.7.0/.hypothesis/constants/9f39c6a9e378f874 +4 -0
  44. quantflow-0.7.0/.hypothesis/constants/a4e02d335ce302fe +4 -0
  45. quantflow-0.7.0/.hypothesis/constants/a5942183658b1820 +4 -0
  46. quantflow-0.7.0/.hypothesis/constants/abe86acdb72d5329 +4 -0
  47. quantflow-0.7.0/.hypothesis/constants/b2bc2ff1a9dc1ebd +4 -0
  48. quantflow-0.7.0/.hypothesis/constants/b43b9a034a123011 +4 -0
  49. quantflow-0.7.0/.hypothesis/constants/bc2ede502ce77baa +4 -0
  50. quantflow-0.7.0/.hypothesis/constants/be48829d39927abc +4 -0
  51. quantflow-0.7.0/.hypothesis/constants/c05e0bd6fe504415 +4 -0
  52. quantflow-0.7.0/.hypothesis/constants/c198e8c7d980ebd0 +4 -0
  53. quantflow-0.7.0/.hypothesis/constants/c42c0c1705a53e64 +4 -0
  54. quantflow-0.7.0/.hypothesis/constants/cc15223c7c9326cd +4 -0
  55. quantflow-0.7.0/.hypothesis/constants/ce1f53f3613afe56 +4 -0
  56. quantflow-0.7.0/.hypothesis/constants/ced58ab73e655e68 +4 -0
  57. quantflow-0.7.0/.hypothesis/constants/cf8267391ea821cf +4 -0
  58. quantflow-0.7.0/.hypothesis/constants/d1c239339de85cf1 +4 -0
  59. quantflow-0.7.0/.hypothesis/constants/da39a3ee5e6b4b0d +4 -0
  60. quantflow-0.7.0/.hypothesis/constants/dfdb158bb5ee458f +4 -0
  61. quantflow-0.7.0/.hypothesis/constants/e0a9a30d56186ce4 +4 -0
  62. quantflow-0.7.0/.hypothesis/constants/e238343dcf50c80f +4 -0
  63. quantflow-0.7.0/.hypothesis/constants/ed5fae84fef8d28d +4 -0
  64. quantflow-0.7.0/.hypothesis/constants/f33893fdc851717e +4 -0
  65. quantflow-0.7.0/.hypothesis/constants/f5861549f7f1821b +4 -0
  66. quantflow-0.7.0/.hypothesis/constants/fc9042c4e0183418 +4 -0
  67. quantflow-0.7.0/.hypothesis/constants/fe8b643a6cddd723 +4 -0
  68. {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/launch.json +1 -1
  69. {quantflow-0.6.3 → quantflow-0.7.0}/PKG-INFO +1 -1
  70. {quantflow-0.6.3 → quantflow-0.7.0}/app/volatility_surface.py +35 -12
  71. quantflow-0.7.0/docs/api/options/svi.md +3 -0
  72. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/vol_surface.md +2 -0
  73. quantflow-0.7.0/docs/api/rates/index.md +1 -0
  74. quantflow-0.7.0/docs/api/rates/interest_rate.md +4 -0
  75. quantflow-0.7.0/docs/api/rates/yield_curve.md +6 -0
  76. {quantflow-0.6.3 → quantflow-0.7.0}/docs/glossary.md +18 -0
  77. {quantflow-0.6.3 → quantflow-0.7.0}/mkdocs.yml +5 -0
  78. {quantflow-0.6.3 → quantflow-0.7.0}/pyproject.toml +11 -1
  79. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/inputs.py +4 -0
  80. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/surface.py +336 -49
  81. quantflow-0.7.0/quantflow/options/svi.py +144 -0
  82. quantflow-0.7.0/quantflow/rates/interest_rate.py +110 -0
  83. quantflow-0.7.0/quantflow/rates/nelson_siegel.py +123 -0
  84. quantflow-0.7.0/quantflow/rates/yield_curve.py +37 -0
  85. quantflow-0.7.0/quantflow/utils/__init__.py +0 -0
  86. quantflow-0.7.0/quantflow_tests/conftest.py +13 -0
  87. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_instruments.json +5 -5
  88. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ai.py +0 -8
  89. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_data_deribit.py +16 -6
  90. quantflow-0.7.0/quantflow_tests/test_disable_outliers.py +215 -0
  91. quantflow-0.7.0/quantflow_tests/test_implied_fwd.py +175 -0
  92. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_options.py +2 -8
  93. quantflow-0.7.0/quantflow_tests/test_rates.py +220 -0
  94. quantflow-0.7.0/quantflow_tests/test_surface_methods.py +82 -0
  95. quantflow-0.7.0/quantflow_tests/test_svi.py +136 -0
  96. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/utils.py +12 -0
  97. {quantflow-0.6.3 → quantflow-0.7.0}/uv.lock +806 -750
  98. quantflow-0.6.3/quantflow/utils/interest_rates.py +0 -51
  99. quantflow-0.6.3/quantflow_tests/conftest.py +0 -3
  100. {quantflow-0.6.3 → quantflow-0.7.0}/.coveragerc +0 -0
  101. {quantflow-0.6.3 → quantflow-0.7.0}/.dockerignore +0 -0
  102. {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/build.yml +0 -0
  103. {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/deploy.yml +0 -0
  104. {quantflow-0.6.3 → quantflow-0.7.0}/.github/workflows/docker-multiarch.yml +0 -0
  105. {quantflow-0.6.3 → quantflow-0.7.0}/.gitignore +0 -0
  106. {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/settings.json +0 -0
  107. {quantflow-0.6.3 → quantflow-0.7.0}/.vscode/tasks.json +0 -0
  108. {quantflow-0.6.3 → quantflow-0.7.0}/CITATION.cff +0 -0
  109. {quantflow-0.6.3 → quantflow-0.7.0}/CLAUDE.md +0 -0
  110. {quantflow-0.6.3 → quantflow-0.7.0}/LICENSE +0 -0
  111. {quantflow-0.6.3 → quantflow-0.7.0}/Makefile +0 -0
  112. {quantflow-0.6.3 → quantflow-0.7.0}/app/__main__.py +0 -0
  113. {quantflow-0.6.3 → quantflow-0.7.0}/app/cointegration.py +0 -0
  114. {quantflow-0.6.3 → quantflow-0.7.0}/app/double_exponential_sampling.py +0 -0
  115. {quantflow-0.6.3 → quantflow-0.7.0}/app/gaussian_sampling.py +0 -0
  116. {quantflow-0.6.3 → quantflow-0.7.0}/app/heston_divfm_fit.py +0 -0
  117. {quantflow-0.6.3 → quantflow-0.7.0}/app/heston_vol_surface.py +0 -0
  118. {quantflow-0.6.3 → quantflow-0.7.0}/app/hurst.py +0 -0
  119. {quantflow-0.6.3 → quantflow-0.7.0}/app/poisson_sampling.py +0 -0
  120. {quantflow-0.6.3 → quantflow-0.7.0}/app/scripts/__init__.py +0 -0
  121. {quantflow-0.6.3 → quantflow-0.7.0}/app/scripts/heston_divfm_fit.py +0 -0
  122. {quantflow-0.6.3 → quantflow-0.7.0}/app/supersmoother.py +0 -0
  123. {quantflow-0.6.3 → quantflow-0.7.0}/app/utils/__init__.py +0 -0
  124. {quantflow-0.6.3 → quantflow-0.7.0}/dev/blocks/quantflow.yaml +0 -0
  125. {quantflow-0.6.3 → quantflow-0.7.0}/dev/build-examples +0 -0
  126. {quantflow-0.6.3 → quantflow-0.7.0}/dev/charts.yaml +0 -0
  127. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/.helmignore +0 -0
  128. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/Chart.yaml +0 -0
  129. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/_helpers.tpl +0 -0
  130. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/_service.tpl +0 -0
  131. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/app.yaml +0 -0
  132. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/configmap.yaml +0 -0
  133. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/templates/secret.yaml +0 -0
  134. {quantflow-0.6.3 → quantflow-0.7.0}/dev/helm/values.yaml +0 -0
  135. {quantflow-0.6.3 → quantflow-0.7.0}/dev/install +0 -0
  136. {quantflow-0.6.3 → quantflow-0.7.0}/dev/lint +0 -0
  137. {quantflow-0.6.3 → quantflow-0.7.0}/dev/marimo +0 -0
  138. {quantflow-0.6.3 → quantflow-0.7.0}/dev/quantflow.dockerfile +0 -0
  139. {quantflow-0.6.3 → quantflow-0.7.0}/dev/test +0 -0
  140. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/deribit.md +0 -0
  141. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fed.md +0 -0
  142. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fmp.md +0 -0
  143. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/fred.md +0 -0
  144. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/data/index.md +0 -0
  145. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/index.md +0 -0
  146. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/black.md +0 -0
  147. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/calibration.md +0 -0
  148. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/divfm.md +0 -0
  149. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/index.md +0 -0
  150. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/options/pricer.md +0 -0
  151. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/cir.md +0 -0
  152. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/compound_poisson.md +0 -0
  153. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/copula.md +0 -0
  154. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/dsp.md +0 -0
  155. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/heston.md +0 -0
  156. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/index.md +0 -0
  157. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/jump_diffusion.md +0 -0
  158. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/ou.md +0 -0
  159. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/poisson.md +0 -0
  160. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/sp/weiner.md +0 -0
  161. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/ewma.md +0 -0
  162. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/index.md +0 -0
  163. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/kalman.md +0 -0
  164. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/ohlc.md +0 -0
  165. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/paths.md +0 -0
  166. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/ta/supersmoother.md +0 -0
  167. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/bins.md +0 -0
  168. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/distributions.md +0 -0
  169. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/index.md +0 -0
  170. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/marginal1d.md +0 -0
  171. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/numbers.md +0 -0
  172. {quantflow-0.6.3 → quantflow-0.7.0}/docs/api/utils/types.md +0 -0
  173. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/heston.gif +0 -0
  174. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/heston_calibrated_smile.png +0 -0
  175. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/hestonj_calibrated_smile.png +0 -0
  176. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/linkedin-banner.png +0 -0
  177. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-light.svg +0 -0
  178. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-logo.png +0 -0
  179. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-repo.png +0 -0
  180. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow-repo.svg +0 -0
  181. {quantflow-0.6.3 → quantflow-0.7.0}/docs/assets/quantflow.svg +0 -0
  182. {quantflow-0.6.3 → quantflow-0.7.0}/docs/bibliography.md +0 -0
  183. {quantflow-0.6.3 → quantflow-0.7.0}/docs/contributing.md +0 -0
  184. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/heston_volatility_pricer.py +0 -0
  185. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_heston_calibration.py +0 -0
  186. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_hestonj_calibration.py +0 -0
  187. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/vol_surface_inputs.py +0 -0
  188. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/volsurface.json +0 -0
  189. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples/weiner_volatility_pricer.py +0 -0
  190. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples_png/vol_surface_heston_plot.py +0 -0
  191. {quantflow-0.6.3 → quantflow-0.7.0}/docs/examples_png/vol_surface_hestonj_plot.py +0 -0
  192. {quantflow-0.6.3 → quantflow-0.7.0}/docs/index.md +0 -0
  193. {quantflow-0.6.3 → quantflow-0.7.0}/docs/javascripts/mathjax.js +0 -0
  194. {quantflow-0.6.3 → quantflow-0.7.0}/docs/references.bib +0 -0
  195. {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/characteristic.md +0 -0
  196. {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/index.md +0 -0
  197. {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/inversion.md +0 -0
  198. {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/levy.md +0 -0
  199. {quantflow-0.6.3 → quantflow-0.7.0}/docs/theory/option_pricing.md +0 -0
  200. {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/index.md +0 -0
  201. {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/option_pricing.md +0 -0
  202. {quantflow-0.6.3 → quantflow-0.7.0}/docs/tutorials/volatility_surface.md +0 -0
  203. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/calibration.md +0 -0
  204. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/calibration.py +0 -0
  205. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/applications/volatility_surface.md +0 -0
  206. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fed.md +0 -0
  207. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fiscal_data.md +0 -0
  208. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/fmp.md +0 -0
  209. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/data/timeseries.md +0 -0
  210. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/bns.md +0 -0
  211. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/cir.md +0 -0
  212. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/gousv.md +0 -0
  213. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/heston.md +0 -0
  214. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/heston_jumps.md +0 -0
  215. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/jump_diffusion.md +0 -0
  216. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/ou.md +0 -0
  217. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/overview.md +0 -0
  218. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/poisson.md +0 -0
  219. {quantflow-0.6.3 → quantflow-0.7.0}/notebooks/models/weiner.md +0 -0
  220. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/__init__.py +0 -0
  221. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/__init__.py +0 -0
  222. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/server.py +0 -0
  223. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/__init__.py +0 -0
  224. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/base.py +0 -0
  225. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/charts.py +0 -0
  226. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/crypto.py +0 -0
  227. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/fred.py +0 -0
  228. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/stocks.py +0 -0
  229. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ai/tools/vault.py +0 -0
  230. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/__init__.py +0 -0
  231. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/deribit.py +0 -0
  232. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fed.py +0 -0
  233. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fiscal_data.py +0 -0
  234. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fmp.py +0 -0
  235. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/fred.py +0 -0
  236. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/data/vault.py +0 -0
  237. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/__init__.py +0 -0
  238. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/bs.py +0 -0
  239. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/calibration.py +0 -0
  240. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/__init__.py +0 -0
  241. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/network.py +0 -0
  242. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/pricer.py +0 -0
  243. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/trainer.py +0 -0
  244. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/divfm/weights.py +0 -0
  245. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/butterfly.md +0 -0
  246. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/calendar_spread.md +0 -0
  247. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/spread.md +0 -0
  248. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/straddle.md +0 -0
  249. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/strangle.md +0 -0
  250. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/docs/terminology.md +0 -0
  251. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/pricer.py +0 -0
  252. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/__init__.py +0 -0
  253. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/base.py +0 -0
  254. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/butterfly.py +0 -0
  255. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/calendar_spread.py +0 -0
  256. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/spread.py +0 -0
  257. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/straddle.py +0 -0
  258. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/options/strategies/strangle.py +0 -0
  259. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/py.typed +0 -0
  260. {quantflow-0.6.3/quantflow/sp → quantflow-0.7.0/quantflow/rates}/__init__.py +0 -0
  261. {quantflow-0.6.3/quantflow/utils → quantflow-0.7.0/quantflow/sp}/__init__.py +0 -0
  262. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/base.py +0 -0
  263. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/bns.py +0 -0
  264. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/cir.py +0 -0
  265. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/copula.py +0 -0
  266. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/dsp.py +0 -0
  267. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/heston.py +0 -0
  268. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/jump_diffusion.py +0 -0
  269. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/ou.py +0 -0
  270. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/poisson.py +0 -0
  271. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/sp/weiner.py +0 -0
  272. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/__init__.py +0 -0
  273. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/base.py +0 -0
  274. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/ewma.py +0 -0
  275. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/kalman.py +0 -0
  276. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/ohlc.py +0 -0
  277. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/paths.py +0 -0
  278. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/ta/supersmoother.py +0 -0
  279. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/bins.py +0 -0
  280. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/dates.py +0 -0
  281. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/distributions.py +0 -0
  282. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/functions.py +0 -0
  283. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/marginal.py +0 -0
  284. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/numbers.py +0 -0
  285. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/plot.py +0 -0
  286. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/transforms.py +0 -0
  287. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow/utils/types.py +0 -0
  288. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_futures.json +0 -0
  289. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/fixtures/deribit_options.json +0 -0
  290. {quantflow-0.6.3/quantflow_tests → quantflow-0.7.0/quantflow_tests/fixtures}/volsurface.json +0 -0
  291. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_cir.py +0 -0
  292. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_copula.py +0 -0
  293. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_data.py +0 -0
  294. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_distributions.py +0 -0
  295. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_divfm.py +0 -0
  296. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_frft.py +0 -0
  297. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_heston.py +0 -0
  298. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_jump_diffusion.py +0 -0
  299. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ohlc.py +0 -0
  300. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_options_pricer.py +0 -0
  301. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_ou.py +0 -0
  302. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_poisson.py +0 -0
  303. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_strategies.py +0 -0
  304. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_utils.py +0 -0
  305. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_vault.py +0 -0
  306. {quantflow-0.6.3 → quantflow-0.7.0}/quantflow_tests/test_weiner.py +0 -0
  307. {quantflow-0.6.3 → quantflow-0.7.0}/readme.md +0 -0
  308. {quantflow-0.6.3 → quantflow-0.7.0}/rops.toml +0 -0
  309. {quantflow-0.6.3 → quantflow-0.7.0}/taplo.toml +0 -0
  310. {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 uses `$...$` for inline and `$$...$$` or `\begin{equation}...\end{equation}` for block equations. Do not use `.. math::` or `:math:` (RST syntax).
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/options/strategies/straddle.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1.0, 'straddle.md']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/types.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/rates/yield_curve.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['forbid']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/calibration.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-2.0, -0.9, 0.0, 0.001, 0.01, 0.5, 0.95, 1.0, 1.5, 2.0, 'M', 'SLSQP', 'fun', 'ineq', 'type']
@@ -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/options/svi.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-1.0, 0.0, 1e-06, 0.1, 0.9, 1.0, 'forbid']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/weiner.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.5, 100, 'volatility']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/bns.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.5, 100, 'Correlation', 'Variance process']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/.venv/bin/pytest
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['-script.pyw', '.exe', '__main__']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/data/fiscal_data.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['data', 'filter', 'links', 'next']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/base.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['.quantflow', '.vault', 'fmp', 'fred']
@@ -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/utils/marginal.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-0.5, 0.001, 0.5, 1.0, 1.1, 2.0, 100, 101, 128, 'CDF not available', 'forbid']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/strategies/calendar_spread.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1.0, 'calendar_spread.md']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/vault.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -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/ta/ewma.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 1.0, 2.0]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/rates/nelson_siegel.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1e-10, 0.01, 1.0, 2.0, 10.0, 'Curvature parameter', 'Decay factor', 'Level parameter', 'Slope parameter', 'bounded', 'ignore']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/bs.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.2, 0.5, 'Time to maturity', 'root']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/divfm/trainer.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 1e-06, 0.001, 100, 1000, 'Adam learning rate', 'Days to evaluate on', 'The network to train', 'Training days']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/divfm/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['DIVFMPricer', 'DIVFMWeights']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/strategies/strangle.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-0.05, 0.05, 1.0, 'strangle.md']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/dsp.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [100, 'intensity process']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/data/vault.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['=', 'w']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/stocks.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['1d', 'close', 'currency', 'date', 'description', 'high', 'low', 'name', 'nan', 'open', 'pe', 'performance', 'sector', 'stockExchange', 'symbol', 'volume']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/strategies/spread.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1.0, 'spread.md']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/bins.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-0.5, 0.5]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/strategies/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['Butterfly', 'CalendarSpread', 'Spread', 'Straddle', 'Strangle', 'Strategy', 'StrategyLeg', 'StrategyPrice']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/inputs.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['P']
@@ -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/options/strategies/butterfly.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-2.0, 0.0, 0.05, 1.0, 'butterfly.md']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/numbers.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['number', 'type']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/kalman.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 0.01, 1.0]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/divfm/network.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/rates/interest_rate.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [100, 10000]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/copula.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['EWMA', 'KalmanFilter', 'SuperSmoother']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/base.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/cir.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 0.25, 0.5, 1.0, 100, 'Mean rate $\\theta$', 'Sampling algorithm', 'Volatility $\\sigma$', 'euler', 'implicit', 'milstein']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['quantflow']
@@ -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/ai/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/ohlc.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.019, 0.383, 0.522, 2.0, 'close', 'high', 'index', 'low', 'open']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/strategies/base.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 1.0, 'Call or put', 'Day count convention', 'Total delta', 'Total gamma', 'docs', 'utf-8']
@@ -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_tests/utils.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.001, 0.1, 1000, 'fixtures']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/base.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.5, 1.0, 100, 'Mean reversion speed', 'P', 'Time horizon', 'forbid', 'frequency', 'number of paths', 'time horizon']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/transforms.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-0.5, 0.5, 'imag', 'real']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/ou.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.5, 1.0, 100, 'Mean rate']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/divfm/weights.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1e-05, 1.0]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/supersmoother.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 2.0]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/crypto.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['close', 'date', 'high', 'implied_vol', 'low', 'open', 'spot', 'ttm', 'volume', '{:.2%}']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/charts.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['close', 'date', 'format', 'height', '{:8,.0f}']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ai/tools/fred.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [100, 'No categories found', 'categories', 'd', 'desc', 'frequency', 'id', 'name', 'observation_end', 'observation_start', 'popularity', 'seriess', 'title']
@@ -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']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow_tests/conftest.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ ['volsurface.json']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/__init__.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/distributions.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1.0, 100]
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/ta/paths.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 1.0, 2.0, 100, 1000, 'D', 'Time horizon']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/poisson.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [-0.5, 0.0, 0.5, 1.0, 100, 'D', 'Number of jumps', 'Number of paths', 'Number of time steps', 'Time horizon']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/options/divfm/pricer.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [1e-06, 3.0, 100, 'DIVFM']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/functions.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/jump_diffusion.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 0.5, 100, 'The jump process', 'diffusion process']
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/utils/dates.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /home/runner/work/quantflow/quantflow/quantflow/sp/heston.py
2
+ # hypothesis_version: 6.152.2
3
+
4
+ [0.0, 0.1, 0.5, 0.8, 1.0, 100, 'Jump process']
@@ -14,7 +14,7 @@
14
14
  "args": [
15
15
  "-x",
16
16
  "-vvv",
17
- "quantflow_tests/test_divfm.py",
17
+ "quantflow_tests/test_data_deribit.py",
18
18
  ]
19
19
  },
20
20
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantflow
3
- Version: 0.6.3
3
+ Version: 0.7.0
4
4
  Summary: quantitative analysis
5
5
  Project-URL: Homepage, https://github.com/quantmind/quantflow
6
6
  Project-URL: Repository, https://github.com/quantmind/quantflow
@@ -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
- surface.plot3d()
78
- return pd, surface
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,3 @@
1
+ # SVI Volatility Smile
2
+
3
+ ::: quantflow.options.svi.SVI
@@ -19,6 +19,8 @@
19
19
 
20
20
  ::: quantflow.options.surface.FwdPrice
21
21
 
22
+ ::: quantflow.options.surface.ImpliedFwdPrice
23
+
22
24
  ::: quantflow.options.surface.Strike
23
25
 
24
26
  ::: quantflow.options.surface.OptionArrays
@@ -0,0 +1 @@
1
+ # Interest Rates
@@ -0,0 +1,4 @@
1
+ # Interest Rates
2
+
3
+
4
+ ::: quantflow.rates.interest_rate.Rate
@@ -0,0 +1,6 @@
1
+ # Yield Curve
2
+
3
+
4
+ ::: quantflow.rates.yield_curve.YieldCurve
5
+
6
+ ::: quantflow.rates.nelson_siegel.NelsonSiegel
@@ -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