quantflow 0.6.2__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 (324) hide show
  1. {quantflow-0.6.2 → quantflow-0.7.0}/.github/copilot-instructions.md +8 -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.2 → quantflow-0.7.0}/.vscode/launch.json +1 -1
  69. {quantflow-0.6.2 → quantflow-0.7.0}/Makefile +4 -0
  70. {quantflow-0.6.2 → quantflow-0.7.0}/PKG-INFO +2 -1
  71. {quantflow-0.6.2 → quantflow-0.7.0}/app/gaussian_sampling.py +1 -1
  72. quantflow-0.7.0/app/heston_divfm_fit.py +276 -0
  73. quantflow-0.7.0/app/heston_vol_surface.py +165 -0
  74. quantflow-0.7.0/app/scripts/heston_divfm_fit.py +208 -0
  75. {quantflow-0.6.2 → quantflow-0.7.0}/app/volatility_surface.py +40 -28
  76. quantflow-0.7.0/docs/api/data/index.md +33 -0
  77. quantflow-0.7.0/docs/api/index.md +71 -0
  78. quantflow-0.7.0/docs/api/options/divfm.md +30 -0
  79. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/options/pricer.md +1 -0
  80. quantflow-0.7.0/docs/api/options/svi.md +3 -0
  81. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/options/vol_surface.md +5 -1
  82. quantflow-0.7.0/docs/api/rates/index.md +1 -0
  83. quantflow-0.7.0/docs/api/rates/interest_rate.md +4 -0
  84. quantflow-0.7.0/docs/api/rates/yield_curve.md +6 -0
  85. quantflow-0.7.0/docs/api/sp/copula.md +10 -0
  86. quantflow-0.7.0/docs/assets/heston_calibrated_smile.png +0 -0
  87. quantflow-0.7.0/docs/assets/hestonj_calibrated_smile.png +0 -0
  88. {quantflow-0.6.2 → quantflow-0.7.0}/docs/bibliography.md +8 -0
  89. quantflow-0.7.0/docs/examples/vol_surface_heston_calibration.py +33 -0
  90. quantflow-0.7.0/docs/examples/vol_surface_hestonj_calibration.py +46 -0
  91. quantflow-0.7.0/docs/examples/vol_surface_inputs.py +24 -0
  92. quantflow-0.7.0/docs/examples_png/vol_surface_heston_plot.py +35 -0
  93. quantflow-0.7.0/docs/examples_png/vol_surface_hestonj_plot.py +46 -0
  94. quantflow-0.7.0/docs/glossary.md +128 -0
  95. quantflow-0.7.0/docs/tutorials/index.md +8 -0
  96. quantflow-0.7.0/docs/tutorials/volatility_surface.md +185 -0
  97. {quantflow-0.6.2 → quantflow-0.7.0}/mkdocs.yml +10 -0
  98. {quantflow-0.6.2 → quantflow-0.7.0}/pyproject.toml +12 -1
  99. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/deribit.py +25 -3
  100. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/options/calibration.py +48 -6
  101. quantflow-0.7.0/quantflow/options/divfm/__init__.py +4 -0
  102. quantflow-0.7.0/quantflow/options/divfm/network.py +210 -0
  103. quantflow-0.7.0/quantflow/options/divfm/pricer.py +137 -0
  104. quantflow-0.7.0/quantflow/options/divfm/trainer.py +181 -0
  105. quantflow-0.7.0/quantflow/options/divfm/weights.py +154 -0
  106. quantflow-0.7.0/quantflow/options/docs/butterfly.md +44 -0
  107. quantflow-0.7.0/quantflow/options/docs/calendar_spread.md +47 -0
  108. quantflow-0.7.0/quantflow/options/docs/spread.md +36 -0
  109. quantflow-0.7.0/quantflow/options/docs/straddle.md +22 -0
  110. quantflow-0.7.0/quantflow/options/docs/strangle.md +23 -0
  111. quantflow-0.7.0/quantflow/options/docs/terminology.md +5 -0
  112. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/options/inputs.py +4 -0
  113. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/options/pricer.py +56 -25
  114. quantflow-0.7.0/quantflow/options/strategies/__init__.py +17 -0
  115. quantflow-0.7.0/quantflow/options/strategies/base.py +111 -0
  116. quantflow-0.7.0/quantflow/options/strategies/butterfly.py +100 -0
  117. quantflow-0.7.0/quantflow/options/strategies/calendar_spread.py +75 -0
  118. quantflow-0.7.0/quantflow/options/strategies/spread.py +73 -0
  119. quantflow-0.7.0/quantflow/options/strategies/straddle.py +39 -0
  120. quantflow-0.7.0/quantflow/options/strategies/strangle.py +68 -0
  121. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/options/surface.py +346 -51
  122. quantflow-0.7.0/quantflow/options/svi.py +144 -0
  123. quantflow-0.7.0/quantflow/rates/interest_rate.py +110 -0
  124. quantflow-0.7.0/quantflow/rates/nelson_siegel.py +123 -0
  125. quantflow-0.7.0/quantflow/rates/yield_curve.py +37 -0
  126. quantflow-0.7.0/quantflow/sp/__init__.py +0 -0
  127. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/base.py +7 -5
  128. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/copula.py +7 -6
  129. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/heston.py +6 -2
  130. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/ou.py +0 -2
  131. quantflow-0.7.0/quantflow/utils/__init__.py +0 -0
  132. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/distributions.py +8 -7
  133. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/plot.py +10 -2
  134. quantflow-0.7.0/quantflow_tests/conftest.py +13 -0
  135. quantflow-0.7.0/quantflow_tests/fixtures/deribit_futures.json +23 -0
  136. quantflow-0.7.0/quantflow_tests/fixtures/deribit_instruments.json +48 -0
  137. quantflow-0.7.0/quantflow_tests/fixtures/deribit_options.json +30 -0
  138. quantflow-0.7.0/quantflow_tests/fixtures/volsurface.json +4359 -0
  139. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_ai.py +0 -8
  140. quantflow-0.7.0/quantflow_tests/test_data_deribit.py +94 -0
  141. quantflow-0.7.0/quantflow_tests/test_disable_outliers.py +215 -0
  142. quantflow-0.7.0/quantflow_tests/test_divfm.py +311 -0
  143. quantflow-0.7.0/quantflow_tests/test_implied_fwd.py +175 -0
  144. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_options.py +2 -8
  145. quantflow-0.7.0/quantflow_tests/test_rates.py +220 -0
  146. quantflow-0.7.0/quantflow_tests/test_strategies.py +109 -0
  147. quantflow-0.7.0/quantflow_tests/test_surface_methods.py +82 -0
  148. quantflow-0.7.0/quantflow_tests/test_svi.py +136 -0
  149. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/utils.py +12 -0
  150. {quantflow-0.6.2 → quantflow-0.7.0}/uv.lock +914 -690
  151. quantflow-0.6.2/docs/api/data/index.md +0 -8
  152. quantflow-0.6.2/docs/api/index.md +0 -3
  153. quantflow-0.6.2/notebooks/CNAME +0 -1
  154. quantflow-0.6.2/notebooks/_config.yml +0 -65
  155. quantflow-0.6.2/notebooks/_toc.yml +0 -46
  156. quantflow-0.6.2/notebooks/applications/hurst.md +0 -202
  157. quantflow-0.6.2/notebooks/applications/overview.md +0 -23
  158. quantflow-0.6.2/notebooks/applications/sampling.md +0 -35
  159. quantflow-0.6.2/notebooks/conf.py +0 -38
  160. quantflow-0.6.2/notebooks/examples/heston_vol_surface.md +0 -54
  161. quantflow-0.6.2/notebooks/index.md +0 -54
  162. quantflow-0.6.2/notebooks/reference/biblio.md +0 -18
  163. quantflow-0.6.2/notebooks/reference/contributing.md +0 -68
  164. quantflow-0.6.2/notebooks/reference/glossary.md +0 -80
  165. quantflow-0.6.2/quantflow/utils/interest_rates.py +0 -51
  166. quantflow-0.6.2/quantflow_tests/conftest.py +0 -3
  167. {quantflow-0.6.2 → quantflow-0.7.0}/.coveragerc +0 -0
  168. {quantflow-0.6.2 → quantflow-0.7.0}/.dockerignore +0 -0
  169. {quantflow-0.6.2 → quantflow-0.7.0}/.github/workflows/build.yml +0 -0
  170. {quantflow-0.6.2 → quantflow-0.7.0}/.github/workflows/deploy.yml +0 -0
  171. {quantflow-0.6.2 → quantflow-0.7.0}/.github/workflows/docker-multiarch.yml +0 -0
  172. {quantflow-0.6.2 → quantflow-0.7.0}/.gitignore +0 -0
  173. {quantflow-0.6.2 → quantflow-0.7.0}/.vscode/settings.json +0 -0
  174. {quantflow-0.6.2 → quantflow-0.7.0}/.vscode/tasks.json +0 -0
  175. {quantflow-0.6.2 → quantflow-0.7.0}/CITATION.cff +0 -0
  176. {quantflow-0.6.2 → quantflow-0.7.0}/CLAUDE.md +0 -0
  177. {quantflow-0.6.2 → quantflow-0.7.0}/LICENSE +0 -0
  178. {quantflow-0.6.2 → quantflow-0.7.0}/app/__main__.py +0 -0
  179. {quantflow-0.6.2 → quantflow-0.7.0}/app/cointegration.py +0 -0
  180. {quantflow-0.6.2 → quantflow-0.7.0}/app/double_exponential_sampling.py +0 -0
  181. {quantflow-0.6.2 → quantflow-0.7.0}/app/hurst.py +0 -0
  182. {quantflow-0.6.2 → quantflow-0.7.0}/app/poisson_sampling.py +0 -0
  183. {quantflow-0.6.2/quantflow/ai/tools → quantflow-0.7.0/app/scripts}/__init__.py +0 -0
  184. {quantflow-0.6.2 → quantflow-0.7.0}/app/supersmoother.py +0 -0
  185. {quantflow-0.6.2 → quantflow-0.7.0}/app/utils/__init__.py +0 -0
  186. {quantflow-0.6.2 → quantflow-0.7.0}/dev/blocks/quantflow.yaml +0 -0
  187. {quantflow-0.6.2 → quantflow-0.7.0}/dev/build-examples +0 -0
  188. {quantflow-0.6.2 → quantflow-0.7.0}/dev/charts.yaml +0 -0
  189. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/.helmignore +0 -0
  190. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/Chart.yaml +0 -0
  191. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/templates/_helpers.tpl +0 -0
  192. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/templates/_service.tpl +0 -0
  193. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/templates/app.yaml +0 -0
  194. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/templates/configmap.yaml +0 -0
  195. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/templates/secret.yaml +0 -0
  196. {quantflow-0.6.2 → quantflow-0.7.0}/dev/helm/values.yaml +0 -0
  197. {quantflow-0.6.2 → quantflow-0.7.0}/dev/install +0 -0
  198. {quantflow-0.6.2 → quantflow-0.7.0}/dev/lint +0 -0
  199. {quantflow-0.6.2 → quantflow-0.7.0}/dev/marimo +0 -0
  200. {quantflow-0.6.2 → quantflow-0.7.0}/dev/quantflow.dockerfile +0 -0
  201. {quantflow-0.6.2 → quantflow-0.7.0}/dev/test +0 -0
  202. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/data/deribit.md +0 -0
  203. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/data/fed.md +0 -0
  204. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/data/fmp.md +0 -0
  205. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/data/fred.md +0 -0
  206. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/options/black.md +0 -0
  207. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/options/calibration.md +0 -0
  208. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/options/index.md +0 -0
  209. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/cir.md +0 -0
  210. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/compound_poisson.md +0 -0
  211. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/dsp.md +0 -0
  212. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/heston.md +0 -0
  213. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/index.md +0 -0
  214. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/jump_diffusion.md +0 -0
  215. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/ou.md +0 -0
  216. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/poisson.md +0 -0
  217. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/sp/weiner.md +0 -0
  218. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/ewma.md +0 -0
  219. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/index.md +0 -0
  220. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/kalman.md +0 -0
  221. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/ohlc.md +0 -0
  222. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/paths.md +0 -0
  223. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/ta/supersmoother.md +0 -0
  224. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/bins.md +0 -0
  225. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/distributions.md +0 -0
  226. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/index.md +0 -0
  227. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/marginal1d.md +0 -0
  228. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/numbers.md +0 -0
  229. {quantflow-0.6.2 → quantflow-0.7.0}/docs/api/utils/types.md +0 -0
  230. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/heston.gif +0 -0
  231. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/linkedin-banner.png +0 -0
  232. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/quantflow-light.svg +0 -0
  233. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/quantflow-logo.png +0 -0
  234. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/quantflow-repo.png +0 -0
  235. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/quantflow-repo.svg +0 -0
  236. {quantflow-0.6.2 → quantflow-0.7.0}/docs/assets/quantflow.svg +0 -0
  237. {quantflow-0.6.2 → quantflow-0.7.0}/docs/contributing.md +0 -0
  238. {quantflow-0.6.2 → quantflow-0.7.0}/docs/examples/heston_volatility_pricer.py +0 -0
  239. {quantflow-0.6.2/quantflow_tests → quantflow-0.7.0/docs/examples}/volsurface.json +0 -0
  240. {quantflow-0.6.2 → quantflow-0.7.0}/docs/examples/weiner_volatility_pricer.py +0 -0
  241. {quantflow-0.6.2 → quantflow-0.7.0}/docs/index.md +0 -0
  242. {quantflow-0.6.2 → quantflow-0.7.0}/docs/javascripts/mathjax.js +0 -0
  243. {quantflow-0.6.2/notebooks/reference → quantflow-0.7.0/docs}/references.bib +0 -0
  244. {quantflow-0.6.2 → quantflow-0.7.0}/docs/theory/characteristic.md +0 -0
  245. {quantflow-0.6.2 → quantflow-0.7.0}/docs/theory/index.md +0 -0
  246. {quantflow-0.6.2 → quantflow-0.7.0}/docs/theory/inversion.md +0 -0
  247. {quantflow-0.6.2 → quantflow-0.7.0}/docs/theory/levy.md +0 -0
  248. {quantflow-0.6.2 → quantflow-0.7.0}/docs/theory/option_pricing.md +0 -0
  249. {quantflow-0.6.2 → quantflow-0.7.0}/docs/tutorials/option_pricing.md +0 -0
  250. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/applications/calibration.md +0 -0
  251. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/applications/calibration.py +0 -0
  252. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/applications/volatility_surface.md +0 -0
  253. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/data/fed.md +0 -0
  254. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/data/fiscal_data.md +0 -0
  255. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/data/fmp.md +0 -0
  256. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/data/timeseries.md +0 -0
  257. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/bns.md +0 -0
  258. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/cir.md +0 -0
  259. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/gousv.md +0 -0
  260. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/heston.md +0 -0
  261. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/heston_jumps.md +0 -0
  262. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/jump_diffusion.md +0 -0
  263. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/ou.md +0 -0
  264. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/overview.md +0 -0
  265. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/poisson.md +0 -0
  266. {quantflow-0.6.2 → quantflow-0.7.0}/notebooks/models/weiner.md +0 -0
  267. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/__init__.py +0 -0
  268. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/__init__.py +0 -0
  269. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/server.py +0 -0
  270. {quantflow-0.6.2/quantflow/data → quantflow-0.7.0/quantflow/ai/tools}/__init__.py +0 -0
  271. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/base.py +0 -0
  272. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/charts.py +0 -0
  273. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/crypto.py +0 -0
  274. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/fred.py +0 -0
  275. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/stocks.py +0 -0
  276. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ai/tools/vault.py +0 -0
  277. {quantflow-0.6.2/quantflow/options → quantflow-0.7.0/quantflow/data}/__init__.py +0 -0
  278. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/fed.py +0 -0
  279. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/fiscal_data.py +0 -0
  280. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/fmp.py +0 -0
  281. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/fred.py +0 -0
  282. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/data/vault.py +0 -0
  283. {quantflow-0.6.2/quantflow/sp → quantflow-0.7.0/quantflow/options}/__init__.py +0 -0
  284. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/options/bs.py +0 -0
  285. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/py.typed +0 -0
  286. {quantflow-0.6.2/quantflow/utils → quantflow-0.7.0/quantflow/rates}/__init__.py +0 -0
  287. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/bns.py +0 -0
  288. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/cir.py +0 -0
  289. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/dsp.py +0 -0
  290. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/jump_diffusion.py +0 -0
  291. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/poisson.py +0 -0
  292. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/sp/weiner.py +0 -0
  293. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/__init__.py +0 -0
  294. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/base.py +0 -0
  295. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/ewma.py +0 -0
  296. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/kalman.py +0 -0
  297. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/ohlc.py +0 -0
  298. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/paths.py +0 -0
  299. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/ta/supersmoother.py +0 -0
  300. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/bins.py +0 -0
  301. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/dates.py +0 -0
  302. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/functions.py +0 -0
  303. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/marginal.py +0 -0
  304. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/numbers.py +0 -0
  305. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/transforms.py +0 -0
  306. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow/utils/types.py +0 -0
  307. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_cir.py +0 -0
  308. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_copula.py +0 -0
  309. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_data.py +0 -0
  310. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_distributions.py +0 -0
  311. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_frft.py +0 -0
  312. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_heston.py +0 -0
  313. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_jump_diffusion.py +0 -0
  314. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_ohlc.py +0 -0
  315. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_options_pricer.py +0 -0
  316. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_ou.py +0 -0
  317. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_poisson.py +0 -0
  318. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_utils.py +0 -0
  319. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_vault.py +0 -0
  320. {quantflow-0.6.2 → quantflow-0.7.0}/quantflow_tests/test_weiner.py +0 -0
  321. {quantflow-0.6.2 → quantflow-0.7.0}/readme.md +0 -0
  322. {quantflow-0.6.2 → quantflow-0.7.0}/rops.toml +0 -0
  323. {quantflow-0.6.2 → quantflow-0.7.0}/taplo.toml +0 -0
  324. {quantflow-0.6.2 → quantflow-0.7.0}/test_comparison.py +0 -0
@@ -12,6 +12,7 @@ applyTo: '/**'
12
12
 
13
13
  * Always run `make lint` after code changes — runs taplo, isort, black, ruff, and mypy
14
14
  * Never edit `readme.md` directly — it is generated from `docs/index.md` via `make docs`
15
+ * To install all dependencies (including all optional extras) run `make install-dev` — runs `uv sync --all-extras`
15
16
  * To run all tests use `make test` — runs all tests in the `tests/` directory using pytest
16
17
  * To run a specific test file, use `uv run pytest tests/path/to/test_file.py`
17
18
 
@@ -27,5 +28,11 @@ applyTo: '/**'
27
28
  * The documentation for quantflow is available at `https://quantflow.quantmid.com`
28
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.
29
30
  * Do not use em dashes (—) in documentation files or docstrings. Use colons, parentheses, or restructure the sentence instead.
30
- * 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
+ * Glossary entries in `docs/glossary.md` must be kept in alphabetical order.
31
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
+
35
+ ## Package structure
36
+
37
+ * Strategy runtime markdown descriptions (read by `load_description()` at runtime) live inside the package at `quantflow/options/strategies/docs/` — they must be inside the package to be accessible when the library is installed
38
+ * mkdocs documentation pages live in `docs/api/options/` — do not mix these two locations
@@ -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_options_pricer.py",
17
+ "quantflow_tests/test_data_deribit.py",
18
18
  ]
19
19
  },
20
20
  ]
@@ -24,6 +24,10 @@ install-dev: ## Install development dependencies
24
24
  marimo: ## Run marimo for editing notebooks
25
25
  @./dev/marimo edit
26
26
 
27
+ .PHONY: docs-png
28
+ docs-png: ## Regenerate PNG assets in docs/assets/ (requires Chrome via kaleido)
29
+ @for f in docs/examples_png/*.py; do uv run python $$f; done
30
+
27
31
  .PHONY: docs
28
32
  docs: ## build documentation
29
33
  @cp docs/index.md readme.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantflow
3
- Version: 0.6.2
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
@@ -45,6 +45,7 @@ Requires-Dist: types-python-dateutil>=2.9.0.20251115; extra == 'dev'
45
45
  Provides-Extra: docs
46
46
  Requires-Dist: griffe-pydantic>=1.1.0; extra == 'docs'
47
47
  Requires-Dist: griffe-typingdoc>=0.2.7; extra == 'docs'
48
+ Requires-Dist: kaleido>=1.2.0; extra == 'docs'
48
49
  Requires-Dist: mkdocs-macros-plugin>=1.3.7; extra == 'docs'
49
50
  Requires-Dist: mkdocs-material>=9.7.0; extra == 'docs'
50
51
  Requires-Dist: mkdocs-redirects>=1.2.1; extra == 'docs'
@@ -1,4 +1,4 @@
1
- import marimo
1
+ import marimo
2
2
 
3
3
  __generated_with = "0.19.7"
4
4
  app = marimo.App(width="medium")