optPricing 2.2.0__tar.gz → 2.3.1__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 (530) hide show
  1. {optpricing-2.2.0 → optpricing-2.3.1}/.github/ISSUE_TEMPLATE/bug_report.md +5 -9
  2. optpricing-2.3.1/.github/workflows/ci.yml +45 -0
  3. optpricing-2.3.1/.github/workflows/pages.yml +54 -0
  4. {optpricing-2.2.0 → optpricing-2.3.1}/.gitignore +3 -2
  5. {optpricing-2.2.0 → optpricing-2.3.1}/CHANGELOG.md +2 -1
  6. {optpricing-2.2.0 → optpricing-2.3.1}/PKG-INFO +14 -10
  7. {optpricing-2.2.0 → optpricing-2.3.1}/README.md +12 -9
  8. optpricing-2.3.1/artifacts/backtest_logs/SPY_backtest_2025-07-07.csv +6 -0
  9. optpricing-2.3.1/artifacts/backtest_logs/SPY_backtest_2025-07-09.csv +8 -0
  10. optpricing-2.3.1/artifacts/calibrated_params/SPY_BSM_2025-07-03.json +8 -0
  11. optpricing-2.3.1/artifacts/calibrated_params/SPY_BSM_2025-07-07.json +8 -0
  12. optpricing-2.3.1/artifacts/calibrated_params/SPY_BSM_2025-07-08.json +8 -0
  13. optpricing-2.3.1/artifacts/calibrated_params/SPY_BSM_2025-07-09.json +8 -0
  14. optpricing-2.3.1/artifacts/calibrated_params/SPY_Merton_2025-07-03.json +11 -0
  15. optpricing-2.3.1/artifacts/calibrated_params/SPY_Merton_2025-07-07.json +11 -0
  16. optpricing-2.3.1/artifacts/calibrated_params/SPY_Merton_2025-07-08.json +11 -0
  17. optpricing-2.3.1/artifacts/calibrated_params/SPY_Merton_2025-07-09.json +11 -0
  18. optpricing-2.3.1/codecov.yml +5 -0
  19. {optpricing-2.2.0 → optpricing-2.3.1}/config.yaml +1 -1
  20. optpricing-2.3.1/data/market_data_snapshots/AAPL_2025-07-07.parquet +0 -0
  21. optpricing-2.3.1/data/market_data_snapshots/AAPL_2025-07-08.parquet +0 -0
  22. optpricing-2.3.1/data/market_data_snapshots/AAPL_2025-07-09.parquet +0 -0
  23. optpricing-2.3.1/data/market_data_snapshots/AMC_2025-07-07.parquet +0 -0
  24. optpricing-2.3.1/data/market_data_snapshots/AMC_2025-07-08.parquet +0 -0
  25. optpricing-2.3.1/data/market_data_snapshots/AMC_2025-07-09.parquet +0 -0
  26. optpricing-2.3.1/data/market_data_snapshots/AMD_2025-07-07.parquet +0 -0
  27. optpricing-2.3.1/data/market_data_snapshots/AMD_2025-07-08.parquet +0 -0
  28. optpricing-2.3.1/data/market_data_snapshots/AMD_2025-07-09.parquet +0 -0
  29. optpricing-2.3.1/data/market_data_snapshots/AMZN_2025-07-07.parquet +0 -0
  30. optpricing-2.3.1/data/market_data_snapshots/AMZN_2025-07-08.parquet +0 -0
  31. optpricing-2.3.1/data/market_data_snapshots/AMZN_2025-07-09.parquet +0 -0
  32. optpricing-2.3.1/data/market_data_snapshots/BAC_2025-07-07.parquet +0 -0
  33. optpricing-2.3.1/data/market_data_snapshots/BAC_2025-07-08.parquet +0 -0
  34. optpricing-2.3.1/data/market_data_snapshots/BAC_2025-07-09.parquet +0 -0
  35. optpricing-2.3.1/data/market_data_snapshots/BA_2025-07-07.parquet +0 -0
  36. optpricing-2.3.1/data/market_data_snapshots/BA_2025-07-08.parquet +0 -0
  37. optpricing-2.3.1/data/market_data_snapshots/BA_2025-07-09.parquet +0 -0
  38. optpricing-2.3.1/data/market_data_snapshots/CAT_2025-07-07.parquet +0 -0
  39. optpricing-2.3.1/data/market_data_snapshots/CAT_2025-07-08.parquet +0 -0
  40. optpricing-2.3.1/data/market_data_snapshots/CAT_2025-07-09.parquet +0 -0
  41. optpricing-2.3.1/data/market_data_snapshots/CVX_2025-07-07.parquet +0 -0
  42. optpricing-2.3.1/data/market_data_snapshots/CVX_2025-07-08.parquet +0 -0
  43. optpricing-2.3.1/data/market_data_snapshots/CVX_2025-07-09.parquet +0 -0
  44. optpricing-2.3.1/data/market_data_snapshots/GME_2025-07-07.parquet +0 -0
  45. optpricing-2.3.1/data/market_data_snapshots/GME_2025-07-08.parquet +0 -0
  46. optpricing-2.3.1/data/market_data_snapshots/GME_2025-07-09.parquet +0 -0
  47. optpricing-2.3.1/data/market_data_snapshots/GOOGL_2025-07-07.parquet +0 -0
  48. optpricing-2.3.1/data/market_data_snapshots/GOOGL_2025-07-08.parquet +0 -0
  49. optpricing-2.3.1/data/market_data_snapshots/GOOGL_2025-07-09.parquet +0 -0
  50. optpricing-2.3.1/data/market_data_snapshots/GS_2025-07-07.parquet +0 -0
  51. optpricing-2.3.1/data/market_data_snapshots/GS_2025-07-08.parquet +0 -0
  52. optpricing-2.3.1/data/market_data_snapshots/GS_2025-07-09.parquet +0 -0
  53. optpricing-2.3.1/data/market_data_snapshots/HD_2025-07-07.parquet +0 -0
  54. optpricing-2.3.1/data/market_data_snapshots/HD_2025-07-08.parquet +0 -0
  55. optpricing-2.3.1/data/market_data_snapshots/HD_2025-07-09.parquet +0 -0
  56. optpricing-2.3.1/data/market_data_snapshots/JNJ_2025-07-07.parquet +0 -0
  57. optpricing-2.3.1/data/market_data_snapshots/JNJ_2025-07-08.parquet +0 -0
  58. optpricing-2.3.1/data/market_data_snapshots/JNJ_2025-07-09.parquet +0 -0
  59. optpricing-2.3.1/data/market_data_snapshots/JPM_2025-07-07.parquet +0 -0
  60. optpricing-2.3.1/data/market_data_snapshots/JPM_2025-07-08.parquet +0 -0
  61. optpricing-2.3.1/data/market_data_snapshots/JPM_2025-07-09.parquet +0 -0
  62. optpricing-2.3.1/data/market_data_snapshots/META_2025-07-07.parquet +0 -0
  63. optpricing-2.3.1/data/market_data_snapshots/META_2025-07-08.parquet +0 -0
  64. optpricing-2.3.1/data/market_data_snapshots/META_2025-07-09.parquet +0 -0
  65. optpricing-2.3.1/data/market_data_snapshots/MSFT_2025-07-07.parquet +0 -0
  66. optpricing-2.3.1/data/market_data_snapshots/MSFT_2025-07-08.parquet +0 -0
  67. optpricing-2.3.1/data/market_data_snapshots/MSFT_2025-07-09.parquet +0 -0
  68. optpricing-2.3.1/data/market_data_snapshots/NKE_2025-07-07.parquet +0 -0
  69. optpricing-2.3.1/data/market_data_snapshots/NKE_2025-07-08.parquet +0 -0
  70. optpricing-2.3.1/data/market_data_snapshots/NKE_2025-07-09.parquet +0 -0
  71. optpricing-2.3.1/data/market_data_snapshots/NVDA_2025-07-07.parquet +0 -0
  72. optpricing-2.3.1/data/market_data_snapshots/NVDA_2025-07-08.parquet +0 -0
  73. optpricing-2.3.1/data/market_data_snapshots/NVDA_2025-07-09.parquet +0 -0
  74. optpricing-2.3.1/data/market_data_snapshots/PFE_2025-07-07.parquet +0 -0
  75. optpricing-2.3.1/data/market_data_snapshots/PFE_2025-07-08.parquet +0 -0
  76. optpricing-2.3.1/data/market_data_snapshots/PFE_2025-07-09.parquet +0 -0
  77. optpricing-2.3.1/data/market_data_snapshots/QQQ_2025-07-07.parquet +0 -0
  78. optpricing-2.3.1/data/market_data_snapshots/QQQ_2025-07-08.parquet +0 -0
  79. optpricing-2.3.1/data/market_data_snapshots/QQQ_2025-07-09.parquet +0 -0
  80. optpricing-2.3.1/data/market_data_snapshots/SPY_2025-07-07.parquet +0 -0
  81. optpricing-2.3.1/data/market_data_snapshots/SPY_2025-07-08.parquet +0 -0
  82. optpricing-2.3.1/data/market_data_snapshots/SPY_2025-07-09.parquet +0 -0
  83. optpricing-2.3.1/data/market_data_snapshots/TSLA_2025-07-07.parquet +0 -0
  84. optpricing-2.3.1/data/market_data_snapshots/TSLA_2025-07-08.parquet +0 -0
  85. optpricing-2.3.1/data/market_data_snapshots/TSLA_2025-07-09.parquet +0 -0
  86. optpricing-2.3.1/data/market_data_snapshots/UNH_2025-07-07.parquet +0 -0
  87. optpricing-2.3.1/data/market_data_snapshots/UNH_2025-07-08.parquet +0 -0
  88. optpricing-2.3.1/data/market_data_snapshots/UNH_2025-07-09.parquet +0 -0
  89. optpricing-2.3.1/data/market_data_snapshots/WMT_2025-07-07.parquet +0 -0
  90. optpricing-2.3.1/data/market_data_snapshots/WMT_2025-07-08.parquet +0 -0
  91. optpricing-2.3.1/data/market_data_snapshots/WMT_2025-07-09.parquet +0 -0
  92. optpricing-2.3.1/data/market_data_snapshots/XOM_2025-07-07.parquet +0 -0
  93. optpricing-2.3.1/data/market_data_snapshots/XOM_2025-07-08.parquet +0 -0
  94. optpricing-2.3.1/data/market_data_snapshots/XOM_2025-07-09.parquet +0 -0
  95. optpricing-2.3.1/docs/reference/calibration/vectorized_pricer.md +3 -0
  96. optpricing-2.3.1/docs/reference/cli/dashboard.md +3 -0
  97. optpricing-2.3.1/docs/reference/cli/demo.md +6 -0
  98. optpricing-2.3.1/docs/reference/dashboard/Home.md +3 -0
  99. optpricing-2.3.1/docs/reference/dashboard/index.md +14 -0
  100. optpricing-2.3.1/docs/reference/dashboard/pages/1_Pricer_and_Greeks.md +3 -0
  101. optpricing-2.3.1/docs/reference/dashboard/pages/2_Calibration_and_IV.md +3 -0
  102. optpricing-2.3.1/docs/reference/dashboard/pages/3_Market_Analytics.md +3 -0
  103. optpricing-2.3.1/docs/reference/dashboard/pages/4_Model_Fitting.md +3 -0
  104. optpricing-2.3.1/docs/reference/dashboard/pages/5_Term_Structure.md +3 -0
  105. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/dashboard/service.md +1 -1
  106. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/dashboard/widgets.md +1 -1
  107. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/kernels/american_mc_kernels.md +1 -1
  108. optpricing-2.3.1/docs/reference/techniques/kernels/path_kernels.md +5 -0
  109. optpricing-2.2.0/examples/demo_american.py → optpricing-2.3.1/examples/american_options_benchmark.py +38 -22
  110. optpricing-2.2.0/demo.py → optpricing-2.3.1/examples/european_options_benchmark.py +8 -41
  111. optpricing-2.2.0/examples/demo_general.py → optpricing-2.3.1/examples/getting_started.py +5 -3
  112. optpricing-2.3.1/examples/rate_models_benchmark.py +55 -0
  113. {optpricing-2.2.0 → optpricing-2.3.1}/mkdocs.yml +28 -15
  114. {optpricing-2.2.0 → optpricing-2.3.1}/pyproject.toml +3 -3
  115. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/__init__.py +5 -2
  116. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/atoms/rate.py +2 -2
  117. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/__init__.py +4 -1
  118. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/calibrator.py +13 -19
  119. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/iv_surface.py +15 -20
  120. optpricing-2.3.1/src/optpricing/calibration/vectorized_pricer.py +88 -0
  121. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/calibrate.py +11 -3
  122. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/dashboard.py +1 -1
  123. optpricing-2.3.1/src/optpricing/cli/commands/demo.py +89 -0
  124. optpricing-2.3.1/src/optpricing/cli/commands/price.py +237 -0
  125. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/main.py +3 -9
  126. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/config.py +5 -0
  127. optpricing-2.3.1/src/optpricing/dashboard/Home.py +59 -0
  128. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/dashboard/__init__.py +0 -2
  129. optpricing-2.3.1/src/optpricing/dashboard/pages/1_Pricer_and_Greeks.py +251 -0
  130. optpricing-2.3.1/src/optpricing/dashboard/pages/2_Calibration_and_IV.py +99 -0
  131. optpricing-2.3.1/src/optpricing/dashboard/pages/3_Market_Analytics.py +153 -0
  132. optpricing-2.3.1/src/optpricing/dashboard/pages/4_Model_Fitting.py +85 -0
  133. optpricing-2.3.1/src/optpricing/dashboard/pages/5_Term_Structure.py +63 -0
  134. optpricing-2.3.1/src/optpricing/dashboard/plots.py +235 -0
  135. optpricing-2.3.1/src/optpricing/dashboard/service.py +103 -0
  136. optpricing-2.3.1/src/optpricing/dashboard/widgets.py +93 -0
  137. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/data/historical_manager.py +4 -0
  138. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/data/market_data_manager.py +5 -0
  139. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/base/__init__.py +1 -0
  140. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/blacks_approx.py +1 -0
  141. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/cgmy.py +3 -3
  142. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/dupire_local.py +5 -1
  143. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/heston.py +4 -4
  144. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/hyperbolic.py +2 -4
  145. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/kou.py +1 -1
  146. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/nig.py +3 -3
  147. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/vg.py +2 -2
  148. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/parity/implied_rate.py +3 -3
  149. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/parity/parity_model.py +1 -1
  150. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/greek_mixin.py +1 -1
  151. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/lattice_technique.py +4 -0
  152. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/closed_form.py +1 -1
  153. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/kernels/__init__.py +25 -1
  154. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/kernels/path_kernels.py +0 -3
  155. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/monte_carlo.py +3 -3
  156. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/bsm_config.py +4 -0
  157. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/heston_config.py +4 -0
  158. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/kou_config.py +4 -0
  159. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/merton_config.py +5 -1
  160. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/nig_config.py +4 -0
  161. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/sabr_jump_config.py +0 -2
  162. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/vg_config.py +5 -1
  163. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/daily_workflow.py +51 -36
  164. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/PKG-INFO +14 -10
  165. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/SOURCES.txt +110 -9
  166. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/requires.txt +1 -0
  167. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_calibrator.py +2 -2
  168. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_fit_jump_parameters.py +1 -1
  169. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_fit_market_params.py +0 -1
  170. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_iv_surface.py +6 -23
  171. optpricing-2.3.1/tests/calibration/test_vectorized_pricer.py +75 -0
  172. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/commands/test_price.py +1 -1
  173. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/test_main.py +1 -1
  174. optpricing-2.3.1/tests/dashboard/test_plots.py +159 -0
  175. optpricing-2.3.1/tests/dashboard/test_service.py +114 -0
  176. optpricing-2.3.1/tests/dashboard/test_widgets.py +179 -0
  177. {optpricing-2.2.0 → optpricing-2.3.1}/tests/data/test_historical_manager.py +1 -7
  178. optpricing-2.3.1/tests/data/test_market_data_manager.py +193 -0
  179. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_bates.py +3 -1
  180. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_blacks_approx.py +9 -3
  181. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_bsm.py +3 -1
  182. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_cev.py +3 -1
  183. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_cgmy.py +3 -1
  184. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_cir.py +3 -1
  185. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_heston.py +3 -1
  186. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_hyperbolic.py +3 -1
  187. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_kou.py +3 -1
  188. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_merton_jump.py +3 -1
  189. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_nig.py +3 -1
  190. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_perpetual_put.py +3 -1
  191. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_sabr.py +3 -1
  192. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_vasicek.py +3 -1
  193. optpricing-2.3.1/tests/techniques/base/test_greek_mixin.py +158 -0
  194. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/base/test_iv_mixin.py +0 -3
  195. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/kernels/test_lattice_kernels.py +0 -1
  196. optpricing-2.3.1/tests/techniques/kernels/test_mc_kernels.py +484 -0
  197. optpricing-2.3.1/tests/techniques/kernels/test_path_kernels.py +287 -0
  198. optpricing-2.3.1/tests/techniques/test_closed_form.py +172 -0
  199. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_monte_carlo.py +29 -5
  200. optpricing-2.2.0/.github/workflows/ci.yml +0 -80
  201. optpricing-2.2.0/Makefile +0 -23
  202. optpricing-2.2.0/docs/reference/dashboard/index.md +0 -7
  203. optpricing-2.2.0/examples/project_tree.py +0 -39
  204. optpricing-2.2.0/src/optpricing/cli/commands/demo.py +0 -53
  205. optpricing-2.2.0/src/optpricing/cli/commands/price.py +0 -165
  206. optpricing-2.2.0/src/optpricing/dashboard/app.py +0 -26
  207. optpricing-2.2.0/src/optpricing/dashboard/pages/1_Calibration.py +0 -76
  208. optpricing-2.2.0/src/optpricing/dashboard/pages/2_Pricer_and_Greeks.py +0 -260
  209. optpricing-2.2.0/src/optpricing/dashboard/pages/3_Financial_Tools.py +0 -267
  210. optpricing-2.2.0/src/optpricing/dashboard/plots.py +0 -157
  211. optpricing-2.2.0/src/optpricing/dashboard/service.py +0 -176
  212. optpricing-2.2.0/src/optpricing/dashboard/widgets.py +0 -87
  213. optpricing-2.2.0/tests/dashboard/test_plots.py +0 -50
  214. optpricing-2.2.0/tests/dashboard/test_service.py +0 -177
  215. optpricing-2.2.0/tests/data/test_market_data_manager.py +0 -70
  216. optpricing-2.2.0/tests/techniques/base/test_greek_mixin.py +0 -63
  217. optpricing-2.2.0/tests/techniques/kernels/test_mc_kernels.py +0 -146
  218. optpricing-2.2.0/tests/techniques/kernels/test_path_kernels.py +0 -149
  219. optpricing-2.2.0/tests/techniques/test_closed_form.py +0 -83
  220. {optpricing-2.2.0 → optpricing-2.3.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  221. {optpricing-2.2.0 → optpricing-2.3.1}/.github/workflows/publish.yml +0 -0
  222. {optpricing-2.2.0 → optpricing-2.3.1}/.pre-commit-config.yaml +0 -0
  223. {optpricing-2.2.0 → optpricing-2.3.1}/CODE_OF_CONDUCT.md +0 -0
  224. {optpricing-2.2.0 → optpricing-2.3.1}/CONTRIBUTING.md +0 -0
  225. {optpricing-2.2.0 → optpricing-2.3.1}/LICENSE +0 -0
  226. {optpricing-2.2.0 → optpricing-2.3.1}/MANIFEST.in +0 -0
  227. {optpricing-2.2.0 → optpricing-2.3.1}/PULL_REQUEST_TEMPLATE.md +0 -0
  228. {optpricing-2.2.0 → optpricing-2.3.1}/SECURITY.md +0 -0
  229. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/backtest_logs/SPY_backtest_2025-06-17.csv +0 -0
  230. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/calibrated_params/SPY_BSM_2023-01-01.json +0 -0
  231. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/calibrated_params/SPY_BSM_2025-06-17.json +0 -0
  232. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/calibrated_params/SPY_Black-Scholes_2025-06-17.json +0 -0
  233. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/calibrated_params/SPY_Merton_2025-06-17.json +0 -0
  234. {optpricing-2.2.0 → optpricing-2.3.1}/artifacts/calibration_logs/SPY_evaluation_2025-06-16.csv +0 -0
  235. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/AAPL_10y_returns.parquet +0 -0
  236. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/AMC_10y_returns.parquet +0 -0
  237. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/AMD_10y_returns.parquet +0 -0
  238. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/AMZN_10y_returns.parquet +0 -0
  239. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/BAC_10y_returns.parquet +0 -0
  240. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/BA_10y_returns.parquet +0 -0
  241. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/CAT_10y_returns.parquet +0 -0
  242. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/CVX_10y_returns.parquet +0 -0
  243. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/GME_10y_returns.parquet +0 -0
  244. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/GOOGL_10y_returns.parquet +0 -0
  245. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/GS_10y_returns.parquet +0 -0
  246. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/HD_10y_returns.parquet +0 -0
  247. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/JNJ_10y_returns.parquet +0 -0
  248. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/JPM_10y_returns.parquet +0 -0
  249. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/META_10y_returns.parquet +0 -0
  250. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/MSFT_10y_returns.parquet +0 -0
  251. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/NKE_10y_returns.parquet +0 -0
  252. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/NVDA_10y_returns.parquet +0 -0
  253. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/PFE_10y_returns.parquet +0 -0
  254. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/QQQ_10y_returns.parquet +0 -0
  255. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/SPY_10y_returns.parquet +0 -0
  256. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/SPY_5y_returns.parquet +0 -0
  257. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/TSLA_10y_returns.parquet +0 -0
  258. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/UNH_10y_returns.parquet +0 -0
  259. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/WMT_10y_returns.parquet +0 -0
  260. {optpricing-2.2.0 → optpricing-2.3.1}/data/historical_data/XOM_10y_returns.parquet +0 -0
  261. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AAPL_2025-06-16.parquet +0 -0
  262. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AAPL_2025-06-17.parquet +0 -0
  263. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AAPL_2025-06-26.parquet +0 -0
  264. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AAPL_2025-07-02.parquet +0 -0
  265. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AAPL_2025-07-03.parquet +0 -0
  266. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMC_2025-06-17.parquet +0 -0
  267. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMC_2025-06-26.parquet +0 -0
  268. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMC_2025-07-02.parquet +0 -0
  269. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMC_2025-07-03.parquet +0 -0
  270. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMD_2025-06-17.parquet +0 -0
  271. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMD_2025-06-26.parquet +0 -0
  272. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMD_2025-07-02.parquet +0 -0
  273. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMD_2025-07-03.parquet +0 -0
  274. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMZN_2025-06-17.parquet +0 -0
  275. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMZN_2025-06-26.parquet +0 -0
  276. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMZN_2025-07-02.parquet +0 -0
  277. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/AMZN_2025-07-03.parquet +0 -0
  278. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BAC_2025-06-17.parquet +0 -0
  279. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BAC_2025-06-26.parquet +0 -0
  280. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BAC_2025-07-02.parquet +0 -0
  281. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BAC_2025-07-03.parquet +0 -0
  282. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BA_2025-06-17.parquet +0 -0
  283. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BA_2025-06-26.parquet +0 -0
  284. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BA_2025-07-02.parquet +0 -0
  285. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/BA_2025-07-03.parquet +0 -0
  286. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CAT_2025-06-17.parquet +0 -0
  287. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CAT_2025-06-26.parquet +0 -0
  288. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CAT_2025-07-02.parquet +0 -0
  289. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CAT_2025-07-03.parquet +0 -0
  290. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CVX_2025-06-17.parquet +0 -0
  291. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CVX_2025-06-26.parquet +0 -0
  292. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CVX_2025-07-02.parquet +0 -0
  293. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/CVX_2025-07-03.parquet +0 -0
  294. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GME_2025-06-17.parquet +0 -0
  295. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GME_2025-06-26.parquet +0 -0
  296. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GME_2025-07-02.parquet +0 -0
  297. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GME_2025-07-03.parquet +0 -0
  298. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GOOGL_2025-06-16.parquet +0 -0
  299. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GOOGL_2025-06-17.parquet +0 -0
  300. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GOOGL_2025-06-26.parquet +0 -0
  301. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GOOGL_2025-07-02.parquet +0 -0
  302. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GOOGL_2025-07-03.parquet +0 -0
  303. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GS_2025-06-17.parquet +0 -0
  304. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GS_2025-06-26.parquet +0 -0
  305. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GS_2025-07-02.parquet +0 -0
  306. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/GS_2025-07-03.parquet +0 -0
  307. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/HD_2025-06-17.parquet +0 -0
  308. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/HD_2025-06-26.parquet +0 -0
  309. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/HD_2025-07-02.parquet +0 -0
  310. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/HD_2025-07-03.parquet +0 -0
  311. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JNJ_2025-06-17.parquet +0 -0
  312. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JNJ_2025-06-26.parquet +0 -0
  313. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JNJ_2025-07-02.parquet +0 -0
  314. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JNJ_2025-07-03.parquet +0 -0
  315. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JPM_2025-06-17.parquet +0 -0
  316. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JPM_2025-06-26.parquet +0 -0
  317. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JPM_2025-07-02.parquet +0 -0
  318. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/JPM_2025-07-03.parquet +0 -0
  319. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/META_2025-06-16.parquet +0 -0
  320. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/META_2025-06-17.parquet +0 -0
  321. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/META_2025-06-26.parquet +0 -0
  322. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/META_2025-07-02.parquet +0 -0
  323. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/META_2025-07-03.parquet +0 -0
  324. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/MSFT_2025-06-17.parquet +0 -0
  325. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/MSFT_2025-06-26.parquet +0 -0
  326. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/MSFT_2025-07-02.parquet +0 -0
  327. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/MSFT_2025-07-03.parquet +0 -0
  328. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NKE_2025-06-17.parquet +0 -0
  329. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NKE_2025-06-26.parquet +0 -0
  330. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NKE_2025-07-02.parquet +0 -0
  331. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NKE_2025-07-03.parquet +0 -0
  332. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NVDA_2025-06-17.parquet +0 -0
  333. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NVDA_2025-06-26.parquet +0 -0
  334. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NVDA_2025-07-02.parquet +0 -0
  335. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/NVDA_2025-07-03.parquet +0 -0
  336. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/PFE_2025-06-17.parquet +0 -0
  337. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/PFE_2025-06-26.parquet +0 -0
  338. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/PFE_2025-07-02.parquet +0 -0
  339. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/PFE_2025-07-03.parquet +0 -0
  340. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/QQQ_2025-06-17.parquet +0 -0
  341. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/QQQ_2025-06-26.parquet +0 -0
  342. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/QQQ_2025-07-02.parquet +0 -0
  343. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/QQQ_2025-07-03.parquet +0 -0
  344. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/SPY_2025-06-16.parquet +0 -0
  345. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/SPY_2025-06-17.parquet +0 -0
  346. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/SPY_2025-06-26.parquet +0 -0
  347. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/SPY_2025-07-02.parquet +0 -0
  348. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/SPY_2025-07-03.parquet +0 -0
  349. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/TSLA_2025-06-16.parquet +0 -0
  350. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/TSLA_2025-06-17.parquet +0 -0
  351. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/TSLA_2025-06-26.parquet +0 -0
  352. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/TSLA_2025-07-02.parquet +0 -0
  353. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/TSLA_2025-07-03.parquet +0 -0
  354. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/UNH_2025-06-17.parquet +0 -0
  355. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/UNH_2025-06-26.parquet +0 -0
  356. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/UNH_2025-07-02.parquet +0 -0
  357. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/UNH_2025-07-03.parquet +0 -0
  358. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/WMT_2025-06-17.parquet +0 -0
  359. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/WMT_2025-06-26.parquet +0 -0
  360. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/WMT_2025-07-02.parquet +0 -0
  361. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/WMT_2025-07-03.parquet +0 -0
  362. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/XOM_2025-06-17.parquet +0 -0
  363. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/XOM_2025-06-26.parquet +0 -0
  364. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/XOM_2025-07-02.parquet +0 -0
  365. {optpricing-2.2.0 → optpricing-2.3.1}/data/market_data_snapshots/XOM_2025-07-03.parquet +0 -0
  366. {optpricing-2.2.0 → optpricing-2.3.1}/docs/guide/dashboard.md +0 -0
  367. {optpricing-2.2.0 → optpricing-2.3.1}/docs/guide/getting_started.md +0 -0
  368. {optpricing-2.2.0 → optpricing-2.3.1}/docs/guide/installation.md +0 -0
  369. {optpricing-2.2.0 → optpricing-2.3.1}/docs/guide/introduction.md +0 -0
  370. {optpricing-2.2.0 → optpricing-2.3.1}/docs/images/bates.png +0 -0
  371. {optpricing-2.2.0 → optpricing-2.3.1}/docs/images/calibration.png +0 -0
  372. {optpricing-2.2.0 → optpricing-2.3.1}/docs/images/fit_jump.png +0 -0
  373. {optpricing-2.2.0 → optpricing-2.3.1}/docs/images/zcb.png +0 -0
  374. {optpricing-2.2.0 → optpricing-2.3.1}/docs/index.md +0 -0
  375. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/atoms/bond.md +0 -0
  376. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/atoms/index.md +0 -0
  377. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/atoms/option.md +0 -0
  378. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/atoms/rate.md +0 -0
  379. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/atoms/stock.md +0 -0
  380. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/calibrator.md +0 -0
  381. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/fit_jump_parameters.md +0 -0
  382. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/fit_market_params.md +0 -0
  383. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/index.md +0 -0
  384. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/iv_surface.md +0 -0
  385. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/technique_selector.md +0 -0
  386. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/vectorized_bsm_iv.md +0 -0
  387. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/calibration/vectorized_integration_iv.md +0 -0
  388. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/backtest.md +0 -0
  389. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/calibrate.md +0 -0
  390. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/data.md +0 -0
  391. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/index.md +0 -0
  392. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/price.md +0 -0
  393. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/cli/tools.md +0 -0
  394. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/dashboard/plots.md +0 -0
  395. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/data/historical_manager.md +0 -0
  396. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/data/index.md +0 -0
  397. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/data/market_data_manager.md +0 -0
  398. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/base/base_model.md +0 -0
  399. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/base/index.md +0 -0
  400. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/base/validators.md +0 -0
  401. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/bates.md +0 -0
  402. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/blacks_approx.md +0 -0
  403. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/bsm.md +0 -0
  404. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/cev.md +0 -0
  405. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/cgmy.md +0 -0
  406. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/cir.md +0 -0
  407. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/dupire_local.md +0 -0
  408. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/heston.md +0 -0
  409. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/hyperbolic.md +0 -0
  410. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/index.md +0 -0
  411. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/kou.md +0 -0
  412. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/merton_jump.md +0 -0
  413. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/nig.md +0 -0
  414. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/perpetual_put.md +0 -0
  415. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/sabr.md +0 -0
  416. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/sabr_jump.md +0 -0
  417. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/vasicek.md +0 -0
  418. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/models/vg.md +0 -0
  419. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/parity/implied_rate.md +0 -0
  420. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/parity/index.md +0 -0
  421. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/parity/parity_model.md +0 -0
  422. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/american_monte_carlo.md +0 -0
  423. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/base_technique.md +0 -0
  424. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/greek_mixin.md +0 -0
  425. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/index.md +0 -0
  426. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/iv_mixin.md +0 -0
  427. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/lattice_technique.md +0 -0
  428. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/pricing_result.md +0 -0
  429. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/base/random_utils.md +0 -0
  430. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/closed_form.md +0 -0
  431. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/crr.md +0 -0
  432. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/fft.md +0 -0
  433. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/index.md +0 -0
  434. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/integration.md +0 -0
  435. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/kernels/index.md +0 -0
  436. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/kernels/lattice_kernels.md +0 -0
  437. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/kernels/mc_kernels.md +0 -0
  438. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/leisen_reimer.md +0 -0
  439. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/monte_carlo.md +0 -0
  440. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/pde.md +0 -0
  441. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/techniques/topm.md +0 -0
  442. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/workflows/backtest_workflow.md +0 -0
  443. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/workflows/daily_workflow.md +0 -0
  444. {optpricing-2.2.0 → optpricing-2.3.1}/docs/reference/workflows/index.md +0 -0
  445. {optpricing-2.2.0 → optpricing-2.3.1}/setup.cfg +0 -0
  446. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/atoms/__init__.py +0 -0
  447. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/atoms/bond.py +0 -0
  448. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/atoms/option.py +0 -0
  449. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/atoms/stock.py +0 -0
  450. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/fit_jump_parameters.py +0 -0
  451. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/fit_market_params.py +0 -0
  452. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/technique_selector.py +0 -0
  453. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/vectorized_bsm_iv.py +0 -0
  454. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/calibration/vectorized_integration_iv.py +0 -0
  455. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/__init__.py +0 -0
  456. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/__init__.py +0 -0
  457. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/backtest.py +0 -0
  458. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/data.py +0 -0
  459. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/cli/commands/tools.py +0 -0
  460. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/dashboard/pages/__init__.py +0 -0
  461. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/data/__init__.py +0 -0
  462. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/__init__.py +0 -0
  463. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/base/base_model.py +0 -0
  464. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/base/validators.py +0 -0
  465. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/bates.py +0 -0
  466. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/bsm.py +0 -0
  467. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/cev.py +0 -0
  468. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/cir.py +0 -0
  469. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/merton_jump.py +0 -0
  470. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/perpetual_put.py +0 -0
  471. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/sabr.py +0 -0
  472. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/sabr_jump.py +0 -0
  473. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/models/vasicek.py +0 -0
  474. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/parity/__init__.py +0 -0
  475. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/__init__.py +0 -0
  476. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/american_monte_carlo.py +0 -0
  477. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/__init__.py +0 -0
  478. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/base_technique.py +0 -0
  479. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/iv_mixin.py +0 -0
  480. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/pricing_result.py +0 -0
  481. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/base/random_utils.py +0 -0
  482. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/crr.py +0 -0
  483. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/fft.py +0 -0
  484. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/integration.py +0 -0
  485. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/kernels/american_mc_kernels.py +0 -0
  486. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/kernels/lattice_kernels.py +0 -0
  487. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/kernels/mc_kernels.py +0 -0
  488. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/leisen_reimer.py +0 -0
  489. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/pde.py +0 -0
  490. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/techniques/topm.py +0 -0
  491. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/__init__.py +0 -0
  492. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/backtest_workflow.py +0 -0
  493. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/__init__.py +0 -0
  494. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/bates_config.py +0 -0
  495. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/cev_config.py +0 -0
  496. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/cgmy_config.py +0 -0
  497. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/hyperbolic_config.py +0 -0
  498. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing/workflows/configs/sabr_config.py +0 -0
  499. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/dependency_links.txt +0 -0
  500. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/entry_points.txt +0 -0
  501. {optpricing-2.2.0 → optpricing-2.3.1}/src/optpricing.egg-info/top_level.txt +0 -0
  502. {optpricing-2.2.0 → optpricing-2.3.1}/tests/atoms/test_bond.py +0 -0
  503. {optpricing-2.2.0 → optpricing-2.3.1}/tests/atoms/test_option.py +0 -0
  504. {optpricing-2.2.0 → optpricing-2.3.1}/tests/atoms/test_rate.py +0 -0
  505. {optpricing-2.2.0 → optpricing-2.3.1}/tests/atoms/test_stock.py +0 -0
  506. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_technique_selector.py +0 -0
  507. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_vectorized_bsm_iv.py +0 -0
  508. {optpricing-2.2.0 → optpricing-2.3.1}/tests/calibration/test_vectorized_integration_iv.py +0 -0
  509. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/commands/test_backtest.py +0 -0
  510. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/commands/test_calibrate.py +0 -0
  511. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/commands/test_data.py +0 -0
  512. {optpricing-2.2.0 → optpricing-2.3.1}/tests/cli/commands/test_tools.py +0 -0
  513. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/base/test_base_model.py +0 -0
  514. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/base/test_validators.py +0 -0
  515. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_dupire_local.py +0 -0
  516. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_sabr_jump.py +0 -0
  517. {optpricing-2.2.0 → optpricing-2.3.1}/tests/models/test_vg.py +0 -0
  518. {optpricing-2.2.0 → optpricing-2.3.1}/tests/parity/test_implied_rate.py +0 -0
  519. {optpricing-2.2.0 → optpricing-2.3.1}/tests/parity/test_parity_model.py +0 -0
  520. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/base/test_pricing_result.py +0 -0
  521. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/base/test_random_utils.py +0 -0
  522. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_american_monte_carlo.py +0 -0
  523. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_crr.py +0 -0
  524. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_fft.py +0 -0
  525. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_integration.py +0 -0
  526. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_leisen_reimer.py +0 -0
  527. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_pde.py +0 -0
  528. {optpricing-2.2.0 → optpricing-2.3.1}/tests/techniques/test_topm.py +0 -0
  529. {optpricing-2.2.0 → optpricing-2.3.1}/tests/workflows/test_backtest_workflow.py +0 -0
  530. {optpricing-2.2.0 → optpricing-2.3.1}/tests/workflows/test_daily_workflow.py +0 -0
@@ -12,6 +12,7 @@ A clear and concise description of what the bug is.
12
12
 
13
13
  **To Reproduce**
14
14
  Steps to reproduce the behavior:
15
+
15
16
  1. Go to '...'
16
17
  2. Click on '....'
17
18
  3. Scroll down to '....'
@@ -24,15 +25,10 @@ A clear and concise description of what you expected to happen.
24
25
  If applicable, add screenshots to help explain your problem.
25
26
 
26
27
  **Desktop (please complete the following information):**
27
- - OS: [e.g. iOS]
28
- - Browser [e.g. chrome, safari]
29
- - Version [e.g. 22]
30
-
31
- **Smartphone (please complete the following information):**
32
- - Device: [e.g. iPhone6]
33
- - OS: [e.g. iOS8.1]
34
- - Browser [e.g. stock browser, safari]
35
- - Version [e.g. 22]
28
+
29
+ - OS: [e.g. iOS]
30
+ - Browser [e.g. chrome, safari]
31
+ - Version [e.g. 22]
36
32
 
37
33
  **Additional context**
38
34
  Add any other context about the problem here.
@@ -0,0 +1,45 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ jobs:
10
+ test-and-lint:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ python-version: ["3.10", "3.11"]
16
+
17
+ steps:
18
+ - name: Checkout repository
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v4
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+ cache: 'pip'
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install -e .[dev]
31
+
32
+ - name: Lint with ruff
33
+ run: |
34
+ ruff check .
35
+ ruff format --check .
36
+
37
+ - name: Run tests with pytest and generate coverage report
38
+ run: |
39
+ pytest --cov=src/optpricing --cov-report=xml
40
+
41
+ - name: Upload coverage reports to Codecov
42
+ uses: codecov/codecov-action@v5
43
+ with:
44
+ flags: unittests
45
+ fail_ci_if_error: false
@@ -0,0 +1,54 @@
1
+ name: Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+
7
+ pull_request:
8
+ branches: [ "main" ]
9
+
10
+ workflow_dispatch:
11
+
12
+ concurrency:
13
+ group: "pages"
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ build-deploy:
18
+ runs-on: ubuntu-latest
19
+
20
+ permissions:
21
+ contents: read
22
+ pages: write
23
+ id-token: write
24
+
25
+ steps:
26
+ - name: Checkout repository
27
+ uses: actions/checkout@v4
28
+
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v5
31
+ with:
32
+ python-version: '3.11'
33
+ cache: 'pip'
34
+
35
+ - name: Install dependencies for docs
36
+ run: |
37
+ python -m pip install --upgrade pip
38
+ pip install .[dev]
39
+
40
+ - name: Configure Pages
41
+ uses: actions/configure-pages@v4
42
+
43
+ - name: Build MkDocs site
44
+ run: mkdocs build
45
+
46
+ - name: Upload artifact
47
+ uses: actions/upload-pages-artifact@v3
48
+ with:
49
+ path: ./site
50
+
51
+ - name: Deploy to GitHub Pages
52
+ if: github.event_name == 'push'
53
+ id: deployment
54
+ uses: actions/deploy-pages@v4
@@ -25,5 +25,6 @@ htmlcov/
25
25
  site/
26
26
 
27
27
  # Ignore my local notes file
28
- tmp.txt
29
- TODO.txt
28
+ todo.txt
29
+ todo/
30
+ notes/
@@ -1,6 +1,7 @@
1
1
  # Changelog
2
2
 
3
3
  ## [2.0.0] - 2025-06-26
4
+
4
5
  ### Added
5
- - Shipped to PyPI `pyproject.toml`
6
6
 
7
+ - Shipped to PyPI `pyproject.toml`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optpricing
3
- Version: 2.2.0
3
+ Version: 2.3.1
4
4
  Summary: A financial options pricing and analysis library.
5
5
  Author-email: Diljit Singh <first_last22@google.com>
6
6
  License: # MIT LICENSE
@@ -43,14 +43,18 @@ Requires-Dist: mkdocstrings[python]; extra == "dev"
43
43
  Requires-Dist: mkdocs-section-index; extra == "dev"
44
44
  Requires-Dist: line_profiler; extra == "dev"
45
45
  Requires-Dist: pre-commit; extra == "dev"
46
+ Requires-Dist: codecov; extra == "dev"
46
47
  Dynamic: license-file
47
48
 
48
49
  # optpricing
49
50
 
50
- [![CI/CD](https://github.com/diljit22/quantfin/actions/workflows/ci.yml/badge.svg)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
51
- [![PyPI Version](https://badge.fury.io/py/optpricing.svg)](https://pypi.org/project/optpricing/)
52
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
51
+ [![Tests](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=tests)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
52
+ [![Coverage](https://codecov.io/gh/diljit22/quantfin/branch/main/graph/badge.svg)](https://codecov.io/gh/diljit22/quantfin)
53
+ [![Ruff](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=ruff)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
54
+ [![Docs](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=docs)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
55
+ [![PyPI version](https://img.shields.io/pypi/v/optpricing.svg)](https://pypi.org/project/optpricing/)
53
56
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
57
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
54
58
 
55
59
  **A Python library for pricing and calibrating financial options.**
56
60
 
@@ -61,7 +65,7 @@ Welcome to **optpricing**, a comprehensive Python toolkit for pricing and calibr
61
65
  optpricing is structured around four core pillars:
62
66
 
63
67
  - **Atoms**: Fundamental data types (`Option`, `Stock`, `Rate`) that ensure consistency and clarity of inputs across the library.
64
- - **Models**: A broad library ranging from classical Black-Scholes-Merton to advanced stochastic volatility (Heston, SABR) and jump/Lévy processes.
68
+ - **Models**: A broad library ranging from classical Black-Scholes-Merton to advanced stochastic volatility (Heston, SABR) and jump/Levy processes.
65
69
  - **Techniques**: Multiple pricing engines—closed-form formulas, FFT, numerical integration, PDE solvers, lattice methods, and Monte Carlo (`numba`-accelerated with variance reduction methods baked in).
66
70
  - **Workflows**: High-level orchestrators that automate end-to-end tasks like daily calibration and out-of-sample backtesting, all accessible via a CLI or an interactive dashboard.
67
71
 
@@ -87,17 +91,17 @@ optpricing dashboard
87
91
 
88
92
  For a detailed tutorial, full API reference, and more examples, please see the official documentation.
89
93
 
90
- - **Getting Started**:
91
- [Installation Guide](https://diljit22.github.io/quantfin/guide/installation/) ·
94
+ - **Getting Started**:
95
+ [Installation Guide](https://diljit22.github.io/quantfin/guide/installation/) ·
92
96
  [Walkthrough](https://diljit22.github.io/quantfin/guide/getting_started/)
93
97
 
94
- - **Documentation**:
98
+ - **Documentation**:
95
99
  [API Reference](https://diljit22.github.io/quantfin)
96
100
 
97
- - **Interactive Dashboard**:
101
+ - **Interactive Dashboard**:
98
102
  [Launch the UI](https://diljit22.github.io/quantfin/guide/dashboard/)
99
103
 
100
- - **About Me**:
104
+ - **About Me**:
101
105
  [LinkedIn](https://www.linkedin.com/in/singhdiljit/)
102
106
 
103
107
  ## Contributing & License
@@ -1,9 +1,12 @@
1
1
  # optpricing
2
2
 
3
- [![CI/CD](https://github.com/diljit22/quantfin/actions/workflows/ci.yml/badge.svg)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
4
- [![PyPI Version](https://badge.fury.io/py/optpricing.svg)](https://pypi.org/project/optpricing/)
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
3
+ [![Tests](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=tests)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
4
+ [![Coverage](https://codecov.io/gh/diljit22/quantfin/branch/main/graph/badge.svg)](https://codecov.io/gh/diljit22/quantfin)
5
+ [![Ruff](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=ruff)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
6
+ [![Docs](https://img.shields.io/github/actions/workflow/status/diljit22/quantfin/ci.yml?branch=main&label=docs)](https://github.com/diljit22/quantfin/actions/workflows/ci.yml)
7
+ [![PyPI version](https://img.shields.io/pypi/v/optpricing.svg)](https://pypi.org/project/optpricing/)
6
8
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
10
 
8
11
  **A Python library for pricing and calibrating financial options.**
9
12
 
@@ -14,7 +17,7 @@ Welcome to **optpricing**, a comprehensive Python toolkit for pricing and calibr
14
17
  optpricing is structured around four core pillars:
15
18
 
16
19
  - **Atoms**: Fundamental data types (`Option`, `Stock`, `Rate`) that ensure consistency and clarity of inputs across the library.
17
- - **Models**: A broad library ranging from classical Black-Scholes-Merton to advanced stochastic volatility (Heston, SABR) and jump/Lévy processes.
20
+ - **Models**: A broad library ranging from classical Black-Scholes-Merton to advanced stochastic volatility (Heston, SABR) and jump/Levy processes.
18
21
  - **Techniques**: Multiple pricing engines—closed-form formulas, FFT, numerical integration, PDE solvers, lattice methods, and Monte Carlo (`numba`-accelerated with variance reduction methods baked in).
19
22
  - **Workflows**: High-level orchestrators that automate end-to-end tasks like daily calibration and out-of-sample backtesting, all accessible via a CLI or an interactive dashboard.
20
23
 
@@ -40,17 +43,17 @@ optpricing dashboard
40
43
 
41
44
  For a detailed tutorial, full API reference, and more examples, please see the official documentation.
42
45
 
43
- - **Getting Started**:
44
- [Installation Guide](https://diljit22.github.io/quantfin/guide/installation/) ·
46
+ - **Getting Started**:
47
+ [Installation Guide](https://diljit22.github.io/quantfin/guide/installation/) ·
45
48
  [Walkthrough](https://diljit22.github.io/quantfin/guide/getting_started/)
46
49
 
47
- - **Documentation**:
50
+ - **Documentation**:
48
51
  [API Reference](https://diljit22.github.io/quantfin)
49
52
 
50
- - **Interactive Dashboard**:
53
+ - **Interactive Dashboard**:
51
54
  [Launch the UI](https://diljit22.github.io/quantfin/guide/dashboard/)
52
55
 
53
- - **About Me**:
56
+ - **About Me**:
54
57
  [LinkedIn](https://www.linkedin.com/in/singhdiljit/)
55
58
 
56
59
  ## Contributing & License
@@ -0,0 +1,6 @@
1
+ Eval Date,Model,Out-of-Sample RMSE
2
+ 2025-07-03,BSM,11.160890957057632
3
+ 2025-07-02,BSM,10.263303567917294
4
+ 2025-06-26,BSM,11.23164730000395
5
+ 2025-06-17,BSM,8.025361660077047
6
+ 2025-06-16,BSM,8.450145179833529
@@ -0,0 +1,8 @@
1
+ Eval Date,Model,Out-of-Sample RMSE
2
+ 2025-07-08,BSM,10.170957494669732
3
+ 2025-07-07,BSM,9.960832785279184
4
+ 2025-07-03,BSM,11.160890957057632
5
+ 2025-07-02,BSM,10.263303567917294
6
+ 2025-06-26,BSM,11.23164730000395
7
+ 2025-06-17,BSM,8.025361660077047
8
+ 2025-06-16,BSM,8.450145179833529
@@ -0,0 +1,8 @@
1
+ {
2
+ "model": "BSM",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-03",
5
+ "params": {
6
+ "sigma": 0.18311375184055745
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "model": "BSM",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-07",
5
+ "params": {
6
+ "sigma": 0.18518990454903567
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "model": "BSM",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-08",
5
+ "params": {
6
+ "sigma": 0.18289235017900857
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "model": "BSM",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-09",
5
+ "params": {
6
+ "sigma": 0.18053659422178386
7
+ }
8
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "model": "Merton",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-03",
5
+ "params": {
6
+ "sigma": 0.14899806945368946,
7
+ "lambda": 3.5097493036211698,
8
+ "mu_j": -0.013195804678398376,
9
+ "sigma_j": 0.05717547425526682
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "model": "Merton",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-07",
5
+ "params": {
6
+ "sigma": 0.14899806945368946,
7
+ "lambda": 3.5097493036211698,
8
+ "mu_j": -0.013195804678398376,
9
+ "sigma_j": 0.05717547425526682
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "model": "Merton",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-08",
5
+ "params": {
6
+ "sigma": 0.14899806945368946,
7
+ "lambda": 3.5097493036211698,
8
+ "mu_j": -0.013195804678398376,
9
+ "sigma_j": 0.05717547425526682
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "model": "Merton",
3
+ "ticker": "SPY",
4
+ "date": "2025-07-09",
5
+ "params": {
6
+ "sigma": 0.14899806945368946,
7
+ "lambda": 3.5097493036211698,
8
+ "mu_j": -0.013195804678398376,
9
+ "sigma_j": 0.05717547425526682
10
+ }
11
+ }
@@ -0,0 +1,5 @@
1
+ coverage:
2
+ range: "70..90"
3
+ status:
4
+ project:
5
+ enabled: false
@@ -5,7 +5,7 @@ live_data_provider: "yfinance"
5
5
  data_directory: "data"
6
6
  artifacts_directory: "artifacts"
7
7
 
8
- # Used by 'optpricing data download --all'
8
+ # Used by --all in CLI commands
9
9
  default_tickers:
10
10
  - SPY
11
11
  - QQQ
@@ -0,0 +1,3 @@
1
+ # Vectorized Pricer
2
+
3
+ ::: src.optpricing.calibration.vectorized_pricer.price_options_vectorized
@@ -0,0 +1,3 @@
1
+ # Dashboard
2
+
3
+ ::: optpricing.cli.commands.dashboard
@@ -0,0 +1,6 @@
1
+ # Calibrate Command
2
+
3
+ This page details the `demo` command for devs to sample
4
+ each model along with every supported technique.
5
+
6
+ ::: optpricing.cli.commands.demo
@@ -0,0 +1,3 @@
1
+ # Main App
2
+
3
+ ::: src.optpricing.dashboard.Home
@@ -0,0 +1,14 @@
1
+ # Dashboard
2
+
3
+ - [Main App](Home.md)
4
+ - [Plotting Functions](plots.md)
5
+ - [Backend Service](service.md)
6
+ - [UI Widgets](widgets.md)
7
+
8
+ ## Pages
9
+
10
+ - [Pricer & Greeks](pages/1_Pricer_and_Greeks.md)
11
+ - [Calibration & IV](pages/2_Calibration_and_IV.md)
12
+ - [Market Analytics](pages/3_Market_Analytics.md)
13
+ - [Historical](pages/4_Model_Fitting.md)
14
+ - [Term Structure](pages/5_Term_Structure.md)
@@ -0,0 +1,3 @@
1
+ # Pricer & Greeks
2
+
3
+ ::: optpricing.dashboard.pages.1_Pricer_and_Greeks