quantark 0.2.4__tar.gz → 0.3.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 (806) hide show
  1. quantark-0.3.0/CHANGELOG.md +201 -0
  2. {quantark-0.2.4 → quantark-0.3.0}/PKG-INFO +3 -1
  3. quantark-0.3.0/docs/execution/README.md +82 -0
  4. quantark-0.3.0/example/mo_volmodels/README.md +104 -0
  5. {quantark-0.2.4 → quantark-0.3.0}/pyproject.toml +2 -2
  6. {quantark-0.2.4 → quantark-0.3.0}/quantark/__init__.py +1 -1
  7. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/__init__.py +54 -0
  8. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/accumulator_analytical_engine.py +0 -2
  9. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/black_scholes_engine.py +0 -2
  10. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/deltaone_engine.py +12 -1
  11. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/digital_option_engine.py +0 -2
  12. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/double_barrier_option_engine.py +0 -2
  13. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/double_sharkfin_option_analytical_engine.py +0 -2
  14. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/range_accrual_analytical_engine.py +0 -2
  15. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/single_sharkfin_option_analytical_engine.py +0 -2
  16. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/base_engine.py +13 -0
  17. quantark-0.3.0/quantark/asset/equity/engine/capabilities.py +178 -0
  18. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/event_stats.py +34 -0
  19. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/__init__.py +45 -0
  20. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/accumulator_mc_engine.py +28 -4
  21. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/american_option_mc_engine.py +33 -10
  22. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/asian_option_mc_engine.py +32 -9
  23. quantark-0.3.0/quantark/asset/equity/engine/mc/autocallable_dask_batch.py +137 -0
  24. quantark-0.3.0/quantark/asset/equity/engine/mc/autocallable_execution_adapters.py +224 -0
  25. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/barrier_option_mc_engine.py +49 -20
  26. quantark-0.3.0/quantark/asset/equity/engine/mc/barrier_vol_mc_engines.py +189 -0
  27. quantark-0.3.0/quantark/asset/equity/engine/mc/dcn_execution_adapters.py +824 -0
  28. quantark-0.3.0/quantark/asset/equity/engine/mc/dcn_mc_engine.py +366 -0
  29. quantark-0.3.0/quantark/asset/equity/engine/mc/dcn_payoff.py +119 -0
  30. quantark-0.3.0/quantark/asset/equity/engine/mc/dcn_vol_mc_engines.py +393 -0
  31. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/digital_option_mc_engine.py +24 -12
  32. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/double_sharkfin_option_mc_engine.py +40 -16
  33. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/euro_mc_engine.py +30 -14
  34. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/heston_slv_mc_engine.py +1 -0
  35. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/phoenix_mc_engine.py +172 -131
  36. quantark-0.3.0/quantark/asset/equity/engine/mc/phoenix_vol_mc_engines.py +768 -0
  37. quantark-0.3.0/quantark/asset/equity/engine/mc/qmc_draws.py +64 -0
  38. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/range_accrual_mc_engine.py +32 -9
  39. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/sabr_mc_engine.py +7 -1
  40. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/single_sharkfin_option_mc_engine.py +34 -10
  41. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/snowball_mc_engine.py +264 -246
  42. quantark-0.3.0/quantark/asset/equity/engine/mc/snowball_vol_mc_engines.py +820 -0
  43. quantark-0.3.0/quantark/asset/equity/engine/mc/term_inputs.py +64 -0
  44. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/__init__.py +28 -0
  45. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/backward_operator.py +4 -1
  46. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/barrier_pde_solver.py +17 -95
  47. quantark-0.3.0/quantark/asset/equity/engine/pde/barrier_vol_pde_solvers.py +189 -0
  48. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/base_pde_solver.py +625 -46
  49. quantark-0.3.0/quantark/asset/equity/engine/pde/dcn_pde_solver.py +251 -0
  50. quantark-0.3.0/quantark/asset/equity/engine/pde/dcn_vol_pde_solvers.py +333 -0
  51. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/double_barrier_pde_solver.py +108 -63
  52. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/double_one_touch_pde_solver.py +77 -57
  53. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/european_pde_solver.py +5 -5
  54. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/heston_pde_solver.py +5 -0
  55. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/ko_reset_snowball_pde_solver.py +10 -18
  56. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/one_touch_pde_solver.py +62 -68
  57. quantark-0.3.0/quantark/asset/equity/engine/pde/pde_execution_adapters.py +469 -0
  58. quantark-0.3.0/quantark/asset/equity/engine/pde/pde_session_prep.py +311 -0
  59. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/phoenix_pde_solver.py +43 -49
  60. quantark-0.3.0/quantark/asset/equity/engine/pde/phoenix_vol_pde_solvers.py +774 -0
  61. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/snowball_pde_solver.py +262 -168
  62. quantark-0.3.0/quantark/asset/equity/engine/pde/snowball_vol_pde_solvers.py +634 -0
  63. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/discrete_quad_engine.py +22 -4
  64. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/european_quad_engine.py +23 -9
  65. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/ko_reset_snowball_quad_engine.py +84 -35
  66. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/phoenix_quad_engine.py +38 -73
  67. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/quad_adapters.py +89 -36
  68. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/quad_core.py +5 -1
  69. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/snowball_quad_engine.py +135 -52
  70. quantark-0.3.0/quantark/asset/equity/engine/quad/term_inputs.py +36 -0
  71. quantark-0.3.0/quantark/asset/equity/market/__init__.py +14 -0
  72. quantark-0.3.0/quantark/asset/equity/market/index_futures_curve.py +145 -0
  73. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/bsm_process.py +2 -2
  74. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/qmc_path_generator.py +47 -19
  75. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/__init__.py +14 -0
  76. quantark-0.3.0/quantark/asset/equity/product/option/dcn_grid.py +80 -0
  77. quantark-0.3.0/quantark/asset/equity/product/option/dcn_option.py +150 -0
  78. quantark-0.3.0/quantark/asset/equity/product/option/dcn_schedule.py +198 -0
  79. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/autocallable_risk_report.py +40 -46
  80. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/term_structure.py +26 -2
  81. quantark-0.3.0/quantark/asset/equity/riskmeasures/__init__.py +25 -0
  82. quantark-0.3.0/quantark/asset/equity/riskmeasures/bucketed_greeks.py +300 -0
  83. quantark-0.3.0/quantark/asset/equity/riskmeasures/greek_conventions_report.py +166 -0
  84. quantark-0.3.0/quantark/asset/equity/riskmeasures/greeks_calculator.py +2497 -0
  85. quantark-0.3.0/quantark/asset/equity/riskmeasures/surface_shock_pipeline.py +291 -0
  86. quantark-0.3.0/quantark/asset/equity/riskmeasures/surface_shock_scenarios.py +315 -0
  87. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/heston_slv_mc_engine.py +1 -0
  88. quantark-0.3.0/quantark/asset/fx/engine/pde/fx_pde_execution_adapters.py +164 -0
  89. quantark-0.3.0/quantark/execution/__init__.py +112 -0
  90. quantark-0.3.0/quantark/execution/api.py +327 -0
  91. quantark-0.3.0/quantark/execution/backends/__init__.py +6 -0
  92. quantark-0.3.0/quantark/execution/backends/admission.py +48 -0
  93. quantark-0.3.0/quantark/execution/backends/dask_backend.py +203 -0
  94. quantark-0.3.0/quantark/execution/backends/processes.py +128 -0
  95. quantark-0.3.0/quantark/execution/backends/serial.py +26 -0
  96. quantark-0.3.0/quantark/execution/backends/threads.py +85 -0
  97. quantark-0.3.0/quantark/execution/cache/__init__.py +1 -0
  98. quantark-0.3.0/quantark/execution/cache/artifacts.py +219 -0
  99. quantark-0.3.0/quantark/execution/cache/draws.py +147 -0
  100. quantark-0.3.0/quantark/execution/cache/fingerprint.py +73 -0
  101. quantark-0.3.0/quantark/execution/capability_matrix.py +150 -0
  102. quantark-0.3.0/quantark/execution/context.py +59 -0
  103. quantark-0.3.0/quantark/execution/contracts.py +221 -0
  104. quantark-0.3.0/quantark/execution/diagnostics.py +28 -0
  105. quantark-0.3.0/quantark/execution/errors.py +41 -0
  106. quantark-0.3.0/quantark/execution/greeks.py +472 -0
  107. quantark-0.3.0/quantark/execution/inventory.py +541 -0
  108. quantark-0.3.0/quantark/execution/kernel.py +231 -0
  109. quantark-0.3.0/quantark/execution/leases.py +88 -0
  110. quantark-0.3.0/quantark/execution/legacy_adapter.py +151 -0
  111. quantark-0.3.0/quantark/execution/manifest.py +50 -0
  112. quantark-0.3.0/quantark/execution/policy.py +182 -0
  113. quantark-0.3.0/quantark/execution/prep/__init__.py +10 -0
  114. quantark-0.3.0/quantark/execution/prep/dupire.py +72 -0
  115. quantark-0.3.0/quantark/execution/prep/verify.py +57 -0
  116. quantark-0.3.0/quantark/execution/registry.py +336 -0
  117. quantark-0.3.0/quantark/execution/scenario/__init__.py +23 -0
  118. quantark-0.3.0/quantark/execution/scenario/contracts.py +104 -0
  119. quantark-0.3.0/quantark/execution/scenario/planner.py +304 -0
  120. quantark-0.3.0/quantark/execution/scenario/registries.py +207 -0
  121. quantark-0.3.0/quantark/execution/scenario/runner.py +246 -0
  122. quantark-0.3.0/quantark/execution/scenario/validate.py +159 -0
  123. quantark-0.3.0/quantark/execution/scenario/worker.py +636 -0
  124. {quantark-0.2.4 → quantark-0.3.0}/quantark/montecarlo/__init__.py +10 -1
  125. {quantark-0.2.4 → quantark-0.3.0}/quantark/montecarlo/qmc_brownian_bridge.py +13 -2
  126. {quantark-0.2.4 → quantark-0.3.0}/quantark/montecarlo/qmc_rqmc_driver.py +106 -52
  127. {quantark-0.2.4 → quantark-0.3.0}/quantark/montecarlo/qmc_sobol.py +132 -7
  128. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/__init__.py +5 -0
  129. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/div/__init__.py +2 -0
  130. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/div/dividend_yield.py +62 -14
  131. quantark-0.3.0/quantark/param/div/forward_carry_curve.py +163 -0
  132. quantark-0.3.0/quantark/param/extrapolation.py +109 -0
  133. quantark-0.3.0/quantark/param/node_roles.py +65 -0
  134. quantark-0.3.0/quantark/param/rrf/key_rate.py +43 -0
  135. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/rrf/rate_curve.py +40 -9
  136. quantark-0.3.0/quantark/param/term_sampling.py +123 -0
  137. quantark-0.3.0/quantark/param/vol/marketquotes.py +302 -0
  138. quantark-0.3.0/quantark/param/vol/sticky.py +56 -0
  139. quantark-0.3.0/quantark/param/vol/svi/__init__.py +20 -0
  140. quantark-0.3.0/quantark/param/vol/svi/svi_fit.py +166 -0
  141. quantark-0.3.0/quantark/param/vol/svi/svi_surface.py +186 -0
  142. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vol_surface.py +21 -10
  143. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/equity/__init__.py +6 -0
  144. quantark-0.3.0/quantark/portfolio/equity/futures_buckets.py +81 -0
  145. {quantark-0.2.4 → quantark-0.3.0}/quantark/priceenv/__init__.py +4 -0
  146. quantark-0.3.0/quantark/priceenv/flat_builders.py +54 -0
  147. quantark-0.3.0/quantark/priceenv/market_context.py +138 -0
  148. quantark-0.3.0/quantark/priceenv/term_sampling.py +104 -0
  149. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/calendar/business_calendar.py +28 -0
  150. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/__init__.py +8 -1
  151. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/engine_enums.py +3 -0
  152. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/greek_conventions.py +7 -2
  153. quantark-0.3.0/quantark/util/enum/greeks_enums.py +50 -0
  154. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/models.py +2 -2
  155. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/__init__.py +18 -0
  156. quantark-0.3.0/quantark/util/numerical/finite_difference.py +98 -0
  157. quantark-0.3.0/quantark/util/numerical/tridiag.py +64 -0
  158. quantark-0.3.0/quantark/volmodels/adi_core.py +700 -0
  159. quantark-0.3.0/quantark/volmodels/barrier.py +153 -0
  160. quantark-0.3.0/quantark/volmodels/curves.py +10 -0
  161. quantark-0.3.0/quantark/volmodels/diagnostics.py +162 -0
  162. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/heston/__init__.py +5 -0
  163. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/heston/analytical_kernel.py +122 -22
  164. quantark-0.3.0/quantark/volmodels/heston/calibration.py +333 -0
  165. quantark-0.3.0/quantark/volmodels/heston/from_quotes.py +161 -0
  166. quantark-0.3.0/quantark/volmodels/heston/mc_kernel.py +524 -0
  167. quantark-0.3.0/quantark/volmodels/heston/pde_kernel.py +274 -0
  168. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/localvol/__init__.py +2 -1
  169. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/localvol/dupire.py +46 -74
  170. quantark-0.3.0/quantark/volmodels/localvol/mc_kernel.py +229 -0
  171. quantark-0.3.0/quantark/volmodels/localvol/pde_kernel.py +338 -0
  172. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/localvol/surface.py +11 -1
  173. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/calibration.py +3 -4
  174. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/config.py +25 -12
  175. quantark-0.3.0/quantark/volmodels/slv/fokkerplanck/fp_solver.py +205 -0
  176. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/leverage.py +16 -8
  177. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/slv_mc_kernel.py +166 -22
  178. quantark-0.3.0/quantark/volmodels/slv/slv_pde_kernel.py +231 -0
  179. quantark-0.2.4/CHANGELOG.md +0 -85
  180. quantark-0.2.4/quantark/asset/equity/riskmeasures/__init__.py +0 -7
  181. quantark-0.2.4/quantark/asset/equity/riskmeasures/greeks_calculator.py +0 -1297
  182. quantark-0.2.4/quantark/util/enum/greeks_enums.py +0 -29
  183. quantark-0.2.4/quantark/volmodels/curves.py +0 -61
  184. quantark-0.2.4/quantark/volmodels/heston/calibration.py +0 -162
  185. quantark-0.2.4/quantark/volmodels/heston/mc_kernel.py +0 -201
  186. quantark-0.2.4/quantark/volmodels/heston/pde_kernel.py +0 -395
  187. quantark-0.2.4/quantark/volmodels/localvol/mc_kernel.py +0 -95
  188. quantark-0.2.4/quantark/volmodels/localvol/pde_kernel.py +0 -153
  189. quantark-0.2.4/quantark/volmodels/slv/fokkerplanck/fp_solver.py +0 -108
  190. quantark-0.2.4/quantark/volmodels/slv/slv_pde_kernel.py +0 -281
  191. {quantark-0.2.4 → quantark-0.3.0}/.gitignore +0 -0
  192. {quantark-0.2.4 → quantark-0.3.0}/LICENSE +0 -0
  193. {quantark-0.2.4 → quantark-0.3.0}/NOTICE +0 -0
  194. {quantark-0.2.4 → quantark-0.3.0}/README.md +0 -0
  195. {quantark-0.2.4 → quantark-0.3.0}/quantark/_compat.py +0 -0
  196. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/__init__.py +0 -0
  197. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/__init__.py +0 -0
  198. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/__init__.py +0 -0
  199. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/analytical/__init__.py +0 -0
  200. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/analytical/black_engine.py +0 -0
  201. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/analytical/bond_forward_engine.py +0 -0
  202. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/analytical/bond_futures_engine.py +0 -0
  203. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/convertible/__init__.py +0 -0
  204. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/convertible/convertible_bond_engine.py +0 -0
  205. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/discount/__init__.py +0 -0
  206. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/discount/bond_discount_engine.py +0 -0
  207. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/discount/frn_engine.py +0 -0
  208. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/pde/__init__.py +0 -0
  209. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/pde/convertible/__init__.py +0 -0
  210. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/pde/convertible/jump_diffusion_engine.py +0 -0
  211. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/pde/convertible/pde_params.py +0 -0
  212. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/pde/convertible/tf_engine.py +0 -0
  213. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/tree/__init__.py +0 -0
  214. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/tree/convertible/__init__.py +0 -0
  215. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/tree/convertible/binomial_engine.py +0 -0
  216. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/tree/convertible/tree_params.py +0 -0
  217. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/engine/tree/convertible/trinomial_engine.py +0 -0
  218. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/__init__.py +0 -0
  219. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/base_bond_product.py +0 -0
  220. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/convertible/__init__.py +0 -0
  221. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/convertible/convertible_bond.py +0 -0
  222. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/couponbond/__init__.py +0 -0
  223. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/couponbond/fixed_bond.py +0 -0
  224. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/couponbond/frn.py +0 -0
  225. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/forward/__init__.py +0 -0
  226. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/forward/base_bond_forward.py +0 -0
  227. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/forward/bond_forward.py +0 -0
  228. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/futures/__init__.py +0 -0
  229. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/futures/bond_futures.py +0 -0
  230. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/option/__init__.py +0 -0
  231. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/product/option/euro_short_term_bond_option.py +0 -0
  232. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/riskmeasures/__init__.py +0 -0
  233. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/riskmeasures/bond_greeks_calculator.py +0 -0
  234. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/schedule/__init__.py +0 -0
  235. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/bond/schedule/cashflow.py +0 -0
  236. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/__init__.py +0 -0
  237. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/conventions.py +0 -0
  238. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/__init__.py +0 -0
  239. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/analytical/__init__.py +0 -0
  240. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/analytical/reduced_form.py +0 -0
  241. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/base_credit_engine.py +0 -0
  242. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/mc/__init__.py +0 -0
  243. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/mc/basket_copula.py +0 -0
  244. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/engine/schedule.py +0 -0
  245. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/product/__init__.py +0 -0
  246. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/product/base_credit_product.py +0 -0
  247. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/product/basket_cds.py +0 -0
  248. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/product/cds.py +0 -0
  249. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/riskmeasures/__init__.py +0 -0
  250. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/credit/riskmeasures/credit_greeks_calculator.py +0 -0
  251. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/__init__.py +0 -0
  252. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/analysis/__init__.py +0 -0
  253. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/analysis/autocallable_path_analyzer.py +0 -0
  254. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/__init__.py +0 -0
  255. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/american_option_engine.py +0 -0
  256. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/asian_option_analytical_engine.py +0 -0
  257. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/barrier_analytical_engine.py +0 -0
  258. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/heston_analytical_engine.py +0 -0
  259. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/analytical/one_touch_analytical_engine.py +0 -0
  260. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/__init__.py +0 -0
  261. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/accrual_calculator.py +0 -0
  262. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/total_return_swap_engine.py +0 -0
  263. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/trs_cva_exposure.py +0 -0
  264. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/trs_cva_repricer.py +0 -0
  265. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/cashflow/trs_valuation.py +0 -0
  266. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/localvol_greeks.py +0 -0
  267. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/heston_mc_engine.py +0 -0
  268. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/mc/local_vol_mc_engine.py +0 -0
  269. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/american_pde_solver.py +0 -0
  270. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/heston_slv_pde_solver.py +0 -0
  271. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/local_vol_pde_solver.py +0 -0
  272. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/spatial_grid.py +0 -0
  273. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde/time_grid.py +0 -0
  274. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/pde_engine.py +0 -0
  275. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/__init__.py +0 -0
  276. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/quad/quad_math.py +0 -0
  277. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_american_analytical.py +0 -0
  278. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_american_pde.py +0 -0
  279. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_asian_analytical.py +0 -0
  280. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_barrier_analytical.py +0 -0
  281. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_barrier_pde_solver.py +0 -0
  282. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_digital_option.py +0 -0
  283. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/benchmark_check_snowball_pde_solver.py +0 -0
  284. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_american_analytical.py +0 -0
  285. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_american_pde.py +0 -0
  286. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_asian_analytical.py +0 -0
  287. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_barrier_analytical.py +0 -0
  288. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_barrier_pde_solver.py +0 -0
  289. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_digital_option.py +0 -0
  290. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/boundary_check_snowball_pde_solver.py +0 -0
  291. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/greeks_check_digital_option.py +0 -0
  292. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/mc_comparison_barrier_pde.py +0 -0
  293. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/quick_mc_compare.py +0 -0
  294. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/engine/validation/script/validation_stepdown_improved.py +0 -0
  295. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/__init__.py +0 -0
  296. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/autocallable.py +0 -0
  297. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/barrier.py +0 -0
  298. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/events.py +0 -0
  299. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/manager.py +0 -0
  300. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/lifecycle/state.py +0 -0
  301. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/param/__init__.py +0 -0
  302. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/param/engine_param_profiles.py +0 -0
  303. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/param/engine_params.py +0 -0
  304. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/__init__.py +0 -0
  305. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/__init__.py +0 -0
  306. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/qmc_brownian_bridge.py +0 -0
  307. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/qmc_rqmc_driver.py +0 -0
  308. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/qmc_sobol.py +0 -0
  309. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/bsm/qmc_variance_reduction.py +0 -0
  310. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/sabr/__init__.py +0 -0
  311. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/process/sabr/sabr_process.py +0 -0
  312. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/__init__.py +0 -0
  313. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/base_equity_product.py +0 -0
  314. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/deltaone/__init__.py +0 -0
  315. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/deltaone/base_deltaone_product.py +0 -0
  316. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/deltaone/futures.py +0 -0
  317. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/deltaone/spot_instrument.py +0 -0
  318. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/accumulator_option.py +0 -0
  319. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/american_option.py +0 -0
  320. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/asian_option.py +0 -0
  321. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/barrier_option.py +0 -0
  322. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/base_equity_option.py +0 -0
  323. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/digital_option.py +0 -0
  324. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/double_barrier_option.py +0 -0
  325. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/double_one_touch_option.py +0 -0
  326. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/double_sharkfin_option.py +0 -0
  327. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/european_vanilla_option.py +0 -0
  328. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/ko_reset_snowball_option.py +0 -0
  329. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/observation_schedule.py +0 -0
  330. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/one_touch_option.py +0 -0
  331. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/phoenix_config.py +0 -0
  332. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/phoenix_helpers.py +0 -0
  333. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/phoenix_option.py +0 -0
  334. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/range_accrual_config.py +0 -0
  335. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/range_accrual_helpers.py +0 -0
  336. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/range_accrual_option.py +0 -0
  337. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/single_sharkfin_option.py +0 -0
  338. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/snowball_config.py +0 -0
  339. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/snowball_helpers.py +0 -0
  340. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/option/snowball_option.py +0 -0
  341. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/__init__.py +0 -0
  342. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/base_swap.py +0 -0
  343. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/multi_asset_trs.py +0 -0
  344. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/one_asset_trs.py +0 -0
  345. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/one_asset_trs_dual_ccy.py +0 -0
  346. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/trs_event_handler.py +0 -0
  347. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/trs_params.py +0 -0
  348. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/product/swap/trs_schedule.py +0 -0
  349. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/__init__.py +0 -0
  350. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/plotting.py +0 -0
  351. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/snowball_risk_comparison_report.py +0 -0
  352. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/report/surfaces.py +0 -0
  353. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/equity/riskmeasures/vol_model_risk.py +0 -0
  354. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/__init__.py +0 -0
  355. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/__init__.py +0 -0
  356. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/__init__.py +0 -0
  357. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_deltaone_engine.py +0 -0
  358. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_digital_engine.py +0 -0
  359. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_foreign_range_accrual_engine.py +0 -0
  360. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_heston_analytical_engine.py +0 -0
  361. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_quanto_digital_engine.py +0 -0
  362. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_quanto_range_accrual_engine.py +0 -0
  363. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_quanto_vanilla_engine.py +0 -0
  364. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/fx_range_accrual_engine.py +0 -0
  365. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/garman_kohlhagen_engine.py +0 -0
  366. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/__init__.py +0 -0
  367. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/arbitrage.py +0 -0
  368. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/attenuation.py +0 -0
  369. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/barrier_bs.py +0 -0
  370. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/vv_barrier.py +0 -0
  371. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/vv_barrier_engine.py +0 -0
  372. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/analytical/vannavolga/vv_vanilla_barrier.py +0 -0
  373. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/base_fx_engine.py +0 -0
  374. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/localvol_common.py +0 -0
  375. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/localvol_greeks.py +0 -0
  376. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/__init__.py +0 -0
  377. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_barrier_mc_engine.py +0 -0
  378. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_mc_params.py +0 -0
  379. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_range_accrual_mc_engine.py +0 -0
  380. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_sharkfin_mc_engine.py +0 -0
  381. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_tarf_mc_engine.py +0 -0
  382. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/fx_tarn_note_mc_engine.py +0 -0
  383. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/heston_mc_engine.py +0 -0
  384. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/mc/local_vol_mc_engine.py +0 -0
  385. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/pde/__init__.py +0 -0
  386. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/pde/heston_pde_solver.py +0 -0
  387. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/pde/heston_slv_pde_solver.py +0 -0
  388. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/engine/pde/local_vol_pde_solver.py +0 -0
  389. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/process/__init__.py +0 -0
  390. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/process/fx_gk_path_generator.py +0 -0
  391. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/process/garman_kohlhagen_process.py +0 -0
  392. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/__init__.py +0 -0
  393. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/base_fx_product.py +0 -0
  394. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/currency_pair.py +0 -0
  395. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/deltaone/__init__.py +0 -0
  396. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/deltaone/base_fx_deltaone.py +0 -0
  397. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/deltaone/fx_forward.py +0 -0
  398. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/deltaone/fx_spot.py +0 -0
  399. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/deltaone/fx_swap.py +0 -0
  400. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/__init__.py +0 -0
  401. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_barrier_option.py +0 -0
  402. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_digital_option.py +0 -0
  403. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_foreign_range_accrual_option.py +0 -0
  404. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_one_touch_option.py +0 -0
  405. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_quanto_digital_option.py +0 -0
  406. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_quanto_range_accrual_option.py +0 -0
  407. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_quanto_vanilla_option.py +0 -0
  408. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_range_accrual_config.py +0 -0
  409. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_range_accrual_option.py +0 -0
  410. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_sharkfin_option.py +0 -0
  411. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_target_redemption_forward.py +0 -0
  412. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_target_redemption_note.py +0 -0
  413. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/product/option/fx_vanilla_option.py +0 -0
  414. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/report/__init__.py +0 -0
  415. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/report/fx_report.py +0 -0
  416. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/riskmeasures/__init__.py +0 -0
  417. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/riskmeasures/fx_greeks_calculator.py +0 -0
  418. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/fx/riskmeasures/vol_model_risk.py +0 -0
  419. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/__init__.py +0 -0
  420. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/engine/__init__.py +0 -0
  421. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/engine/cap_floor_engine.py +0 -0
  422. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/engine/fra_engine.py +0 -0
  423. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/engine/irs_discount_engine.py +0 -0
  424. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/engine/swaption_engine.py +0 -0
  425. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/product/__init__.py +0 -0
  426. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/product/cap_floor.py +0 -0
  427. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/product/fra.py +0 -0
  428. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/product/irs.py +0 -0
  429. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/rate/product/swaption.py +0 -0
  430. {quantark-0.2.4 → quantark-0.3.0}/quantark/asset/vol_model_risk.py +0 -0
  431. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/__init__.py +0 -0
  432. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/base.py +0 -0
  433. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/credit/__init__.py +0 -0
  434. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/credit/config.py +0 -0
  435. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/credit/engine.py +0 -0
  436. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/credit/results.py +0 -0
  437. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/dashboard.py +0 -0
  438. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/__init__.py +0 -0
  439. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/config.py +0 -0
  440. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/engine.py +0 -0
  441. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/hedge_executor.py +0 -0
  442. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/metrics.py +0 -0
  443. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/multi_hedge_executor.py +0 -0
  444. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/results.py +0 -0
  445. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/equity/state.py +0 -0
  446. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/examples/__init__.py +0 -0
  447. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/examples/advanced_backtest.py +0 -0
  448. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/examples/basic_delta_hedge.py +0 -0
  449. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/examples/fi_dv01_hedge.py +0 -0
  450. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/__init__.py +0 -0
  451. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/config.py +0 -0
  452. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/engine.py +0 -0
  453. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/hedge_executor.py +0 -0
  454. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/metrics.py +0 -0
  455. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/results.py +0 -0
  456. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fi/state.py +0 -0
  457. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fx/__init__.py +0 -0
  458. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fx/config.py +0 -0
  459. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fx/engine.py +0 -0
  460. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/fx/results.py +0 -0
  461. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/logger.py +0 -0
  462. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/__init__.py +0 -0
  463. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/_replay.py +0 -0
  464. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/book_engine.py +0 -0
  465. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/config.py +0 -0
  466. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/dashboard.py +0 -0
  467. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/engine.py +0 -0
  468. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/engine_factory.py +0 -0
  469. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/market.py +0 -0
  470. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/results.py +0 -0
  471. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/otc/state.py +0 -0
  472. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/report_generator.py +0 -0
  473. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/__init__.py +0 -0
  474. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/barrier_trigger_strategy.py +0 -0
  475. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/base_strategy.py +0 -0
  476. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/convexity_neutral_strategy.py +0 -0
  477. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/credit_spread_neutral_strategy.py +0 -0
  478. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/delta_neutral_strategy.py +0 -0
  479. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/dv01_neutral_strategy.py +0 -0
  480. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/fx_delta_neutral_strategy.py +0 -0
  481. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/hedge_instruments.py +0 -0
  482. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/hedge_optimizer.py +0 -0
  483. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/min_variance_delta_strategy.py +0 -0
  484. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/multi_greek_strategy.py +0 -0
  485. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/scenario_hedge_strategy.py +0 -0
  486. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/scenarios.py +0 -0
  487. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/semi_static_strategy.py +0 -0
  488. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/triggered_hedge_strategy.py +0 -0
  489. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/strategy/whalley_wilmott_strategy.py +0 -0
  490. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/transaction_costs.py +0 -0
  491. {quantark-0.2.4 → quantark-0.3.0}/quantark/backtest/visualizer.py +0 -0
  492. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/__init__.py +0 -0
  493. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/accrual_leg.py +0 -0
  494. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/autocallable_leg.py +0 -0
  495. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/base.py +0 -0
  496. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/base_amount.py +0 -0
  497. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/deterministic_leg.py +0 -0
  498. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/event_distribution.py +0 -0
  499. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/fixed_payoff_leg.py +0 -0
  500. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/leg_schedule.py +0 -0
  501. {quantark-0.2.4 → quantark-0.3.0}/quantark/cashleg/leg_valuator.py +0 -0
  502. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/__init__.py +0 -0
  503. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/base.py +0 -0
  504. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/config.py +0 -0
  505. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/credit/__init__.py +0 -0
  506. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/credit/config.py +0 -0
  507. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/credit/engine.py +0 -0
  508. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/credit/path_library.py +0 -0
  509. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/engine.py +0 -0
  510. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/equity/__init__.py +0 -0
  511. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fi/__init__.py +0 -0
  512. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fi/config.py +0 -0
  513. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fi/engine.py +0 -0
  514. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fi/results.py +0 -0
  515. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fx/__init__.py +0 -0
  516. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fx/config.py +0 -0
  517. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fx/engine.py +0 -0
  518. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/fx/path_library.py +0 -0
  519. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/lifecycle_manager.py +0 -0
  520. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/path/__init__.py +0 -0
  521. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/path/day_path.py +0 -0
  522. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/path/fi_path_library.py +0 -0
  523. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/path/path_builder.py +0 -0
  524. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/path/path_library.py +0 -0
  525. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/report/__init__.py +0 -0
  526. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/report/dynamic_report.py +0 -0
  527. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/report/visualizer.py +0 -0
  528. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/results/__init__.py +0 -0
  529. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/results/dynamic_results.py +0 -0
  530. {quantark-0.2.4 → quantark-0.3.0}/quantark/dynamicscenario/results/result_exporter.py +0 -0
  531. {quantark-0.2.4 → quantark-0.3.0}/quantark/montecarlo/qmc_variance_reduction.py +0 -0
  532. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/basis/__init__.py +0 -0
  533. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/basis/basis_yield.py +0 -0
  534. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/credit/__init__.py +0 -0
  535. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/credit/ajd_hazard_curve.py +0 -0
  536. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/credit/hazard_curve.py +0 -0
  537. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/index/__init__.py +0 -0
  538. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/index/rate_index.py +0 -0
  539. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/quote/__init__.py +0 -0
  540. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/quote/spot_quote.py +0 -0
  541. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/rrf/__init__.py +0 -0
  542. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/__init__.py +0 -0
  543. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/collapse_guard.py +0 -0
  544. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/sabr/__init__.py +0 -0
  545. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/sabr/calibration.py +0 -0
  546. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/sabr/diagnostics.py +0 -0
  547. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/sabr/hagan.py +0 -0
  548. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/sabr/sabr_surface.py +0 -0
  549. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/__init__.py +0 -0
  550. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/bs_fx.py +0 -0
  551. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/market_conventions.py +0 -0
  552. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/smile_builder.py +0 -0
  553. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/vv_core.py +0 -0
  554. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/vv_surface.py +0 -0
  555. {quantark-0.2.4 → quantark-0.3.0}/quantark/param/vol/vannavolga/vv_term_structure.py +0 -0
  556. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/__init__.py +0 -0
  557. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/base.py +0 -0
  558. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/credit/__init__.py +0 -0
  559. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/credit/portfolio.py +0 -0
  560. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/credit/position.py +0 -0
  561. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/equity/portfolio.py +0 -0
  562. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/equity/position.py +0 -0
  563. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/equity/swap_position.py +0 -0
  564. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fi/__init__.py +0 -0
  565. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fi/portfolio.py +0 -0
  566. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fi/position.py +0 -0
  567. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fx/__init__.py +0 -0
  568. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fx/portfolio.py +0 -0
  569. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/fx/position.py +0 -0
  570. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/portfolio_snapshot.py +0 -0
  571. {quantark-0.2.4 → quantark-0.3.0}/quantark/portfolio/portfolio_storage.py +0 -0
  572. {quantark-0.2.4 → quantark-0.3.0}/quantark/priceenv/credit_pricing_environment.py +0 -0
  573. {quantark-0.2.4 → quantark-0.3.0}/quantark/priceenv/fx_pricing_environment.py +0 -0
  574. {quantark-0.2.4 → quantark-0.3.0}/quantark/priceenv/pricing_environment.py +0 -0
  575. {quantark-0.2.4 → quantark-0.3.0}/quantark/rfq/__init__.py +0 -0
  576. {quantark-0.2.4 → quantark-0.3.0}/quantark/rfq/builders.py +0 -0
  577. {quantark-0.2.4 → quantark-0.3.0}/quantark/rfq/models.py +0 -0
  578. {quantark-0.2.4 → quantark-0.3.0}/quantark/rfq/registry.py +0 -0
  579. {quantark-0.2.4 → quantark-0.3.0}/quantark/rfq/service.py +0 -0
  580. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/__init__.py +0 -0
  581. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/calculator.py +0 -0
  582. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/dashboard.py +0 -0
  583. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/__init__.py +0 -0
  584. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/__init__.py +0 -0
  585. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/base.py +0 -0
  586. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/commodity.py +0 -0
  587. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/credit.py +0 -0
  588. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/equity.py +0 -0
  589. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/fx.py +0 -0
  590. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/addons/interest_rate.py +0 -0
  591. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/maths.py +0 -0
  592. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/pfe.py +0 -0
  593. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/engines/replacement_cost.py +0 -0
  594. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/models/__init__.py +0 -0
  595. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/models/enums.py +0 -0
  596. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/models/netting_set.py +0 -0
  597. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/models/trade.py +0 -0
  598. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/parameters/__init__.py +0 -0
  599. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/parameters/supervisory.py +0 -0
  600. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/results/__init__.py +0 -0
  601. {quantark-0.2.4 → quantark-0.3.0}/quantark/saccr/results/result.py +0 -0
  602. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/__init__.py +0 -0
  603. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/calculator.py +0 -0
  604. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/cva/__init__.py +0 -0
  605. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/cva/engine.py +0 -0
  606. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/dashboard.py +0 -0
  607. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/__init__.py +0 -0
  608. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/base.py +0 -0
  609. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/commodity.py +0 -0
  610. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/correlations.py +0 -0
  611. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/counterparty_credit.py +0 -0
  612. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/equity.py +0 -0
  613. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/fx.py +0 -0
  614. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/interest_rate.py +0 -0
  615. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/engines/reference_credit.py +0 -0
  616. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/__init__.py +0 -0
  617. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/asof.py +0 -0
  618. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/correlation.py +0 -0
  619. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/curves.py +0 -0
  620. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/engine.py +0 -0
  621. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/grid.py +0 -0
  622. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/__init__.py +0 -0
  623. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/calibration.py +0 -0
  624. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/engine.py +0 -0
  625. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/path_generator.py +0 -0
  626. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/pfe.py +0 -0
  627. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/historical/resampling.py +0 -0
  628. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/paths.py +0 -0
  629. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/phoenix_surface.py +0 -0
  630. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/repricer.py +0 -0
  631. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/simulator.py +0 -0
  632. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/snowball_surface.py +0 -0
  633. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/statemachine.py +0 -0
  634. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/exposure/value_surface.py +0 -0
  635. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/models/__init__.py +0 -0
  636. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/models/enums.py +0 -0
  637. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/models/portfolio.py +0 -0
  638. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/models/sensitivity.py +0 -0
  639. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/parameters/__init__.py +0 -0
  640. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/parameters/supervisory.py +0 -0
  641. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/__init__.py +0 -0
  642. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/counterparty.py +0 -0
  643. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/credit_curve.py +0 -0
  644. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/netting.py +0 -0
  645. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/trade.py +0 -0
  646. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/portfolio/trade_portfolio.py +0 -0
  647. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/results/__init__.py +0 -0
  648. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/results/result.py +0 -0
  649. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/sacva_engine.py +0 -0
  650. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/sensitivities/__init__.py +0 -0
  651. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/sensitivities/curve_bump.py +0 -0
  652. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/sensitivities/engine.py +0 -0
  653. {quantark-0.2.4 → quantark-0.3.0}/quantark/sacva/sensitivities/shifts.py +0 -0
  654. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/__init__.py +0 -0
  655. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/__init__.py +0 -0
  656. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/accessors.py +0 -0
  657. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/commodity.py +0 -0
  658. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/credit_non_qualifying.py +0 -0
  659. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/credit_qualifying.py +0 -0
  660. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/cross_risk.py +0 -0
  661. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/equity.py +0 -0
  662. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/fx.py +0 -0
  663. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/ir.py +0 -0
  664. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/calibration/version.py +0 -0
  665. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/config.py +0 -0
  666. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/crif/__init__.py +0 -0
  667. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/crif/models.py +0 -0
  668. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/crif/parser.py +0 -0
  669. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/dashboard.py +0 -0
  670. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/__init__.py +0 -0
  671. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/__init__.py +0 -0
  672. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/addon.py +0 -0
  673. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/bucket_aggregator.py +0 -0
  674. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/concentration.py +0 -0
  675. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/correlations.py +0 -0
  676. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/product_class_aggregator.py +0 -0
  677. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/risk_class_aggregator.py +0 -0
  678. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/simm_calculator.py +0 -0
  679. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/aggregation/weighted_sensitivity.py +0 -0
  680. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/base.py +0 -0
  681. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/classification/__init__.py +0 -0
  682. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/classification/bucket_mapper.py +0 -0
  683. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/factory.py +0 -0
  684. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/portfolio_adapter.py +0 -0
  685. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/result.py +0 -0
  686. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/risk_class/__init__.py +0 -0
  687. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/risk_class/equity_engine.py +0 -0
  688. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/risk_class/ir_engine.py +0 -0
  689. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/engines/risk_class/provider_engine.py +0 -0
  690. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/market_data.py +0 -0
  691. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/report/__init__.py +0 -0
  692. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/report/crif_export.py +0 -0
  693. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/report/excel_generator.py +0 -0
  694. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/report/html_generator.py +0 -0
  695. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/results/__init__.py +0 -0
  696. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/results/attribution.py +0 -0
  697. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/results/simm_result.py +0 -0
  698. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/results/whatif.py +0 -0
  699. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/sensitivity.py +0 -0
  700. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/taxonomy.py +0 -0
  701. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/template/__init__.py +0 -0
  702. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/template/xlsx_loader.py +0 -0
  703. {quantark-0.2.4 → quantark-0.3.0}/quantark/simm/template/xlsx_template.py +0 -0
  704. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/__init__.py +0 -0
  705. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/base.py +0 -0
  706. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/config.py +0 -0
  707. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/credit/__init__.py +0 -0
  708. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/credit/config.py +0 -0
  709. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/credit/credit_stress_applicator.py +0 -0
  710. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/credit/engine.py +0 -0
  711. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/engine.py +0 -0
  712. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/__init__.py +0 -0
  713. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/config.py +0 -0
  714. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/engine.py +0 -0
  715. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/report/__init__.py +0 -0
  716. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/report/report_generator.py +0 -0
  717. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/report/visualizer.py +0 -0
  718. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/equity/results.py +0 -0
  719. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fi/__init__.py +0 -0
  720. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fi/config.py +0 -0
  721. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fi/engine.py +0 -0
  722. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fi/metrics.py +0 -0
  723. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fi/results.py +0 -0
  724. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fx/__init__.py +0 -0
  725. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fx/config.py +0 -0
  726. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fx/engine.py +0 -0
  727. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/fx/fx_stress_applicator.py +0 -0
  728. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/report/__init__.py +0 -0
  729. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/report/report_generator.py +0 -0
  730. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/report/visualizer.py +0 -0
  731. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/results/__init__.py +0 -0
  732. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/results/result_aggregator.py +0 -0
  733. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/results/result_exporter.py +0 -0
  734. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/results/stress_results.py +0 -0
  735. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/scenario/__init__.py +0 -0
  736. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/scenario/scenario.py +0 -0
  737. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/scenario/scenario_builder.py +0 -0
  738. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/scenario/scenario_library.py +0 -0
  739. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/scenario/scenario_storage.py +0 -0
  740. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/stress/__init__.py +0 -0
  741. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/stress/stress_applicator.py +0 -0
  742. {quantark-0.2.4 → quantark-0.3.0}/quantark/stresstest/stress/stress_types.py +0 -0
  743. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/__init__.py +0 -0
  744. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/barrier_shift.py +0 -0
  745. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/calendar/__init__.py +0 -0
  746. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/calendar/day_counter.py +0 -0
  747. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/calendar/holidayfile/china.csv +0 -0
  748. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/calendar/holidayfile/china_sse.csv +0 -0
  749. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/bond_enums.py +0 -0
  750. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/deltaone_enums.py +0 -0
  751. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/fx_enums.py +0 -0
  752. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/enum/option_enums.py +0 -0
  753. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/exceptions.py +0 -0
  754. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/__init__.py +0 -0
  755. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/adapter/base_adapter.py +0 -0
  756. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/adapter/mock_adapter.py +0 -0
  757. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/converter.py +0 -0
  758. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/example_usage.py +0 -0
  759. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/generator/__init__.py +0 -0
  760. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/generator/mock_generator.py +0 -0
  761. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/storage/__init__.py +0 -0
  762. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/marketdata/storage/parquet_storage.py +0 -0
  763. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/comparison.py +0 -0
  764. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/constants.py +0 -0
  765. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/formatting.py +0 -0
  766. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/pnl.py +0 -0
  767. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/safe_math.py +0 -0
  768. {quantark-0.2.4 → quantark-0.3.0}/quantark/util/numerical/validation.py +0 -0
  769. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/__init__.py +0 -0
  770. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/attribution.py +0 -0
  771. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/backtest/__init__.py +0 -0
  772. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/backtest/var_backtester.py +0 -0
  773. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/base.py +0 -0
  774. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/config.py +0 -0
  775. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/credit/__init__.py +0 -0
  776. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/credit/config.py +0 -0
  777. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/credit/engine.py +0 -0
  778. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/credit/revaluation.py +0 -0
  779. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/engines/__init__.py +0 -0
  780. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/engines/historical.py +0 -0
  781. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/engines/monte_carlo.py +0 -0
  782. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/engines/parametric.py +0 -0
  783. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/fx/__init__.py +0 -0
  784. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/fx/config.py +0 -0
  785. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/fx/engine.py +0 -0
  786. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/fx/revaluation.py +0 -0
  787. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/results/__init__.py +0 -0
  788. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/results/incremental_var_result.py +0 -0
  789. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/results/var_report.py +0 -0
  790. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/results/var_result.py +0 -0
  791. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/risk_factors/__init__.py +0 -0
  792. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/risk_factors/base.py +0 -0
  793. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/risk_factors/equity_factors.py +0 -0
  794. {quantark-0.2.4 → quantark-0.3.0}/quantark/var/risk_factors/fi_factors.py +0 -0
  795. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/__init__.py +0 -0
  796. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/black_scholes.py +0 -0
  797. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/heston/params.py +0 -0
  798. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/risk/__init__.py +0 -0
  799. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/risk/contracts.py +0 -0
  800. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/risk/scenarios.py +0 -0
  801. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/__init__.py +0 -0
  802. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/__init__.py +0 -0
  803. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/bootstrap.py +0 -0
  804. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/coordinates.py +0 -0
  805. {quantark-0.2.4 → quantark-0.3.0}/quantark/volmodels/slv/fokkerplanck/fp_operators.py +0 -0
  806. {quantark-0.2.4 → quantark-0.3.0}/quantark_compat.pth +0 -0
@@ -0,0 +1,201 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
+ and the project adheres to [Semantic Versioning](https://semver.org/).
6
+ During 0.x the public API may still change between minor versions.
7
+
8
+ ## [0.3.0] - 2026-07-20
9
+
10
+ First release of the `quantark.execution` framework kernel and the
11
+ `quantark.execution.greeks` scenario layer. The `test_snowball_quad_flat_identity_golden`
12
+ failure predates this program and remains quarantined (reproduces on
13
+ unmodified main). The spec §20 controlled-host performance gates in
14
+ `docs/execution/README.md` are documented as release-preparation evidence
15
+ and were not re-measured on the release host.
16
+
17
+ ### Added
18
+ - **`quantark.execution.greeks` — greek bumps as scenario cells** (spec
19
+ 2026-07-20): `TradeState` per-trade base, same-type `greek-bump/v1`
20
+ transformer with real spot/vol/rate/div/time mutation attribution,
21
+ `greek-value/v1` float runner, and assemblers mirroring
22
+ `EquityPosition.get_trade_risk` / `GreeksCalculator.
23
+ calculate_numerical_greeks` operation-for-operation (bitwise unit gate).
24
+ - **`PricingSession.run_scenario_plans`** — many `(base, specs)` plans
25
+ packed through ONE bounded-window process pool (per-cell worker-spec
26
+ payloads; the portfolio × bumps shape), with a per-plan error boundary
27
+ under `collect_errors=True` (base-resolution/planning failures become
28
+ aligned typed `PricingFailure`s while other plans execute).
29
+ - **`quantark.execution` — composable execution kernel** (framework contract
30
+ v1; spec `docs/superpowers/specs/2026-07-15-mc-pde-performance-generalization-design.md`).
31
+ `PricingSession` wraps every exported MC/PDE engine without changing direct
32
+ legacy behavior: adapter registry, resource budgets/leases, prepared-artifact
33
+ and session draw caches, reproducibility manifests and immutable diagnostics.
34
+ Capabilities: fixed-batch MC backends (serial/threads, bit-identical
35
+ reductions in canonical order), adaptive RQMC session mode (bitwise vs
36
+ direct across the 12 autocallable vol engines), PDE preparation artifacts
37
+ (grids, step coefficients, factorization packs; one-solve PV/event/grid
38
+ outputs across 18 prepared engines + FX LV), typed scenario execution with
39
+ verified mutation footprints, spawn-safe `WorkerSpec` process workers, a
40
+ Dask backend over the same plans, `price_many` grouping, and a
41
+ complete-payload scenario validator. Published artifacts: generated
42
+ [capability matrix](docs/execution/capability-matrix.md) (CI-fresh), policy
43
+ guide, legacy-internals rationale, reproducibility JSON Schemas (validated
44
+ against live payloads), and runnable migration examples. Adoption is
45
+ inventory-driven and honest: `temporary_legacy` rows remain, and no
46
+ universal framework support is claimed until the controlled-host gates pass.
47
+ - **DCN (Digital Coupon Note)**: product + observation-schedule generator,
48
+ curve-aware MC engine with leg decomposition and event stats, two-surface
49
+ PDE engine with MC↔PDE cross-validation gates, LocalVol/Heston/QE/SLV DCN
50
+ MC engines sharing one payoff kernel, MLMC-style coupled timestep-ladder
51
+ Heston pair, SVI/cleaned-quote calibration layers with no-arbitrage and
52
+ repricing-residual reports, node-bump vega buckets and carry-invariant rate
53
+ bumps.
54
+ - **Implied futures carry**: `IndexFuturesCurve` implied q(T), futures-tenor
55
+ delta/rhoq buckets, delta-one futures rhoq, portfolio aggregation and hedge
56
+ integration.
57
+ - **Engine term-structure upgrade**: MC, PDE, and quadrature autocallable
58
+ engines consume full r/q/vol term structures with a cross-family term
59
+ agreement gate.
60
+ - **Vol-model barrier exotics**: LV/Heston/SLV barrier MC pricers on a shared
61
+ monitoring core, LV 1D barrier PDE, Heston/SLV 2D barrier ADI solvers.
62
+ - **Vol-model numerics program (phases 2–5)**: vectorized Lewis Heston
63
+ calibration (~21x), unified Heston/SLV ADI core, opt-in Krylov and TR-BDF2
64
+ Fokker–Planck marches, opt-in QE-M martingale correction, concentrated
65
+ (x,v) grids, degenerate v=0 Feller boundary, LV Rannacher start-up
66
+ (default on), opt-in QMC sampling for Heston/SLV/LV kernels.
67
+ - **PDE event-stats API** on Snowball/Phoenix vol solvers with event
68
+ distributions surfaced through session outputs.
69
+
70
+ ### Changed
71
+ - DCN MC engine performance: draw cache, batched threads, LV build hoist.
72
+ - The legacy autocallable Dask batch loop (Snowball vanilla/KO-reset,
73
+ Phoenix) is consolidated into one shared reducer
74
+ (`autocallable_dask_batch`) with byte-preserved behavior, gated by frozen
75
+ bitwise goldens. The legacy `use_dask` route itself is unchanged and
76
+ preserved (see `docs/execution/internals-and-legacy.md` for the §17.3
77
+ removal preconditions).
78
+ - Dev extras now include `dask[distributed]` and `jsonschema`.
79
+
80
+ ### Fixed
81
+ - `PhoenixMCEngine` silently disabled its Dask parallel path on modern dask
82
+ (`from dask.compute import compute` no longer resolves); availability now
83
+ matches `SnowballMCEngine`, with a regression test.
84
+ - Processes scenario backend: a parent whose `__main__` cannot be
85
+ re-imported by spawn children (stdin/heredoc scripts record
86
+ `__file__ = '<stdin>'`; deleted script files) now fails closed with a
87
+ typed `CapabilityError` before any worker is spawned, instead of every
88
+ child dying at bootstrap and surfacing as an opaque
89
+ `BrokenProcessPool` with zero completed cells.
90
+ - Craig–Sneyd ADI corrector order restored (base `Y0` + implicit `-rU`),
91
+ QE sampler sign bug, and the 2026-07 PDE/QUAD audit fixes (13 findings)
92
+ are included via the programs above.
93
+
94
+ ## [0.2.5] - 2026-07-03
95
+
96
+ ### Fixed
97
+ - 2026-07 PDE/QUAD audit: 13 numerical findings fixed (discrete-monitoring
98
+ boundary handling, Rannacher terminal off-by-one, BGK state resolution,
99
+ smoothed KI for Phoenix/KO-reset, shared theta damping schedule) with
100
+ solver-family consolidation and regression tests.
101
+
102
+ ## [0.2.4] - 2026-07-02
103
+
104
+ ### Added
105
+ - Opt-in BGK continuous-KI mode for Snowball and Phoenix PDE solvers
106
+ (direction-aware shifted barrier, per-product flag).
107
+ - `EquityPosition.get_trade_risk` (product + total, frozen one-loop) and
108
+ `AutocallableCashLeg.time_shift`; event streams selected by leg
109
+ requirements.
110
+
111
+ ### Fixed
112
+ - Portfolio vega/rho/dividend-rho aligned with the canonical greek
113
+ convention; bump contexts freeze PDE critical points for grid steadiness.
114
+
115
+ ## [0.2.3] - 2026-07-01
116
+
117
+ ### Added
118
+ - Cross-engine-consistent `ki_ever` / `ki_survive` event-stat fields.
119
+
120
+ ### Fixed
121
+ - Theta advances by business day; quadrature event-stats recursion uses
122
+ smoothed barrier indicators.
123
+
124
+ ## [0.2.2] - 2026-07-01
125
+
126
+ ### Fixed
127
+ - PDE numerical Greeks: freeze the base spatial domain for finite-difference
128
+ bump repricing so rho and dividend rho measure market sensitivity without
129
+ contamination from auto-grid/domain movement under bumped rate, dividend,
130
+ volatility, or time inputs.
131
+
132
+ ## [0.2.1] - 2026-06-30
133
+
134
+ ### Fixed
135
+ - `PhoenixPDESolver`: apply a KO observation scheduled exactly at maturity.
136
+ The inherited grid builder stores the maturity KO in `_ko_terminal_record`
137
+ (intentionally kept out of `_ko_observation_indices`), but the Phoenix
138
+ `_solve` override looked the terminal KO up in `_ko_observation_indices`
139
+ and therefore dropped it — mispricing products with a terminal KO date by
140
+ several percent versus the quadrature and Monte Carlo engines. Terminal KO
141
+ is now applied after the terminal coupon/KI jumps (matching
142
+ `SnowballPDESolver._solve`), routed through `_apply_ko_jump_vector` so the
143
+ same-date coupon-at-KO payoff is preserved.
144
+
145
+ ## [0.1.2] - 2026-06-13
146
+
147
+ ### Added
148
+ - Credit dual-measure framework: a recovery convention layer
149
+ (`quantark.asset.credit.conventions`, `STANDARD_RECOVERY=0.40`) that
150
+ separates the canonical shared-curve **hazard01** factor from the
151
+ recovery-converted **CS01** used by products and SIMM. Curve shocks stay
152
+ in hazard space; spread stresses convert through the recovery convention.
153
+ - Single-name CDS **roll-down / as-of pricing** via effective and maturity
154
+ dates (seasoned and forward-start), with `schedule_asof` and a
155
+ total-return coupon cash ledger threaded through the dynamic-scenario and
156
+ backtest engines. SIMM buckets the remaining tenor. (Basket as-of is
157
+ deferred.)
158
+
159
+ ## [0.1.1] - 2026-06-11
160
+
161
+ ### Added
162
+ - `SnowballQuadEngine`: explicit `ki_monitoring_mode` on `QuadParams`
163
+ (`KnockInMonitoringMode`). `EXACT_DISCRETE` (default) prices every KI
164
+ observation date exactly with adaptive spatial-grid refinement.
165
+ `BGK_APPROXIMATION` is an opt-in performance mode that replaces a dense
166
+ discrete KI schedule with continuous monitoring at a
167
+ Broadie-Glasserman-Kou shifted barrier; the engine validates approximately
168
+ regular spacing (median-band dispersion test), a constant resolved
169
+ barrier, full-horizon coverage, stable volatility, and a minimum schedule
170
+ density (`bgk_min_ki_observations`), raising `ValidationError` otherwise.
171
+ Converted pricing matches the equivalent shifted-continuous product
172
+ exactly (grid-aligned to the shifted barrier) while the valuation-time KI
173
+ state keeps contractual discrete semantics. A first-order residual bias
174
+ remains (a few bp of PV at daily spacing, growing with observation
175
+ spacing and drift).
176
+
177
+ ### Fixed
178
+ - `SnowballQuadEngine`: dense discrete KI schedules now retain their explicit
179
+ observation dates instead of being delegated to continuous monitoring. The
180
+ engine adaptively refines its internal spatial grid to resolve short
181
+ diffusion intervals (accuracy-oriented default of 2.5 cells per interval
182
+ diffusion stddev; lower to 1.25 or opt into BGK for speed), avoiding the
183
+ material fair-KO-rate bias caused by the previous continuous-monitoring
184
+ approximation.
185
+
186
+ ## [0.1.0] - 2026-06-11
187
+
188
+ ### Added
189
+ - First public release.
190
+ - Equity derivatives: European/American/Asian vanilla options, barrier,
191
+ one-touch, digital, sharkfin, and autocallable products (snowball,
192
+ phoenix, KO-reset snowball, range accrual) with analytical, Monte
193
+ Carlo, PDE, quadrature, and tree engines.
194
+ - Fixed income: fixed bonds, FRNs, bond options, bond forwards/futures,
195
+ convertible bonds, interest rate swaps.
196
+ - Market data layer (`quantark.param`, `quantark.priceenv`), Greeks
197
+ calculators, portfolio VaR (parametric/historical/Monte Carlo),
198
+ ISDA SIMM v2.6, stress testing, multi-day scenario simulation, and a
199
+ hedging backtest framework.
200
+ - Legacy flat-import compatibility shim (`asset`, `util`, …) with
201
+ `DeprecationWarning`; slated for removal in 1.0.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantark
3
- Version: 0.2.4
3
+ Version: 0.3.0
4
4
  Summary: Modular derivatives pricing and risk library: options, autocallables, bonds, VaR, SIMM
5
5
  Project-URL: Homepage, https://github.com/deiiiiii93/quantark
6
6
  Project-URL: Repository, https://github.com/deiiiiii93/quantark
@@ -34,6 +34,8 @@ Requires-Dist: pyyaml>=6.0.0
34
34
  Requires-Dist: scipy>=1.10.0
35
35
  Requires-Dist: seaborn>=0.12.0
36
36
  Provides-Extra: dev
37
+ Requires-Dist: dask[distributed]>=2024.1.0; extra == 'dev'
38
+ Requires-Dist: jsonschema>=4.0; extra == 'dev'
37
39
  Requires-Dist: pytest-xdist>=3.0.0; extra == 'dev'
38
40
  Requires-Dist: pytest>=7.0.0; extra == 'dev'
39
41
  Description-Content-Type: text/markdown
@@ -0,0 +1,82 @@
1
+ # QuantArk execution framework
2
+
3
+ `quantark.execution` is the composable execution kernel for QuantArk's MC and
4
+ PDE engines: one immutable plan per request, explicit resource budgets,
5
+ deterministic reproduction manifests, and session-level batch / adaptive /
6
+ prepared-artifact / scenario execution — while every direct legacy call keeps
7
+ its exact historical behavior (framework contract v1, no deprecations).
8
+
9
+ ```python
10
+ from quantark.execution import PricingSession
11
+
12
+ with PricingSession() as session:
13
+ pv = session.price(engine, product, pricing_env) # == engine.price(...)
14
+ ```
15
+
16
+ Spec of record:
17
+ `docs/superpowers/specs/2026-07-15-mc-pde-performance-generalization-design.md`.
18
+
19
+ ## Documents
20
+
21
+ - [Capability matrix](capability-matrix.md) — generated per-engine
22
+ batch/adaptive/prepared adoption states with rationales
23
+ (`python -m quantark.execution.capability_matrix`; CI-enforced freshness).
24
+ - [Policy guide](policy-guide.md) — precedence, environment variables,
25
+ budgets, backend × capability matrix.
26
+ - [Internals and legacy duplicates](internals-and-legacy.md) — what is
27
+ unified, what deliberately remains duplicated and under which removal
28
+ preconditions (spec §17.3).
29
+ - [Reproducibility schemas](schemas/) — JSON Schemas for the WorkerSpec,
30
+ scenario-cell, manifest, and normalized-economics payloads, validated
31
+ against live payloads in CI.
32
+ - Migration examples — `example/execution_session_demo.py` and
33
+ `example/execution_scenarios_demo.py` (runnable; exercised by
34
+ `test/execution/test_examples.py`).
35
+
36
+ ## Performance snapshots
37
+
38
+ Dev-machine (Apple Silicon, macOS) measurements from the Phase 6 exit rerun,
39
+ 2026-07-18, via `test/execution/benchmark_phase{2,4,5}.py`. These are
40
+ **documentation, not gate passes** — the spec §20 release gates run on the
41
+ controlled host with production-sized workloads (see the pre-tag checklist
42
+ below).
43
+
44
+ - **Fixed-batch MC** (DCN, 2^17 paths, 16 batches, cold draws): session
45
+ threads 2.29x @4 workers (PASS vs the 1.5x dev floor); 2.13x @8 workers —
46
+ host-limited (the direct legacy `num_workers=8` path is no faster on this
47
+ machine; ≥2.5x@8 needs the controlled host). Framework adds no threading
48
+ overhead vs engine-internal threads (worst ratio 1.04). CRN draw reuse
49
+ 2.04x (PASS vs 2x). Serial overhead −0.2%.
50
+ - **PDE prepared artifacts** (CRN x10 LV-snowball, 58 ms solves): session
51
+ 1.29x vs uncached direct — march-dominated small fixture; the ≥2x gate is
52
+ sized for production grids on the controlled host. Warm-session single
53
+ European dispatch overhead: −9.7% (session faster) at a 0.8 ms solve.
54
+ - **Scenario processes** (9-cell surface-shock menu, 4096 paths, 4 spawn
55
+ workers): median 1.63x vs serial with **194/194 normalized fields
56
+ matching in every rep**; tiny cells put spawn+import fixed costs and the
57
+ heaviest cell on the critical path — the ≥2.5x gate runs on >10s serial
58
+ grids on the controlled host.
59
+
60
+ ## Before tagging v0.3.0
61
+
62
+ This phase produces **release-preparation evidence only** — pushing a tag IS
63
+ publishing (`.github/workflows/release.yml` is tag-triggered), so the
64
+ version is pinned at `0.3.0rc1` until every prerequisite below is met
65
+ (Codex code-gate 2026-07-18: a final version must not exist while gates are
66
+ open). Outstanding hard prerequisites before any `v0.3.0` tag:
67
+
68
+ 0. **Finalize the version**: flip `0.3.0rc1` → `0.3.0` in `pyproject.toml`
69
+ and `quantark/__init__.py` only after items 1–3 pass.
70
+
71
+ 1. **Controlled-host performance gates** (spec §20): ≥2x fixed-batch MC at 4
72
+ workers on >10s serial workloads, ≥2x PDE CRN-sweep production gate, and
73
+ ≥2.5x scenario/process gate — measured on the controlled multi-core host,
74
+ not this dev machine (dev snapshots below are documentation, not gate
75
+ passes).
76
+ 2. **Full-suite green**: resolve or explicitly quarantine (with written
77
+ rationale) the pre-existing
78
+ `test_snowball_quad_flat_identity_golden` failure — it predates the
79
+ execution-framework program and reproduces on unmodified main, but a tag
80
+ must not ship a red suite silently.
81
+ 3. **Wheel-artifact compatibility**: the otc-price-adapter suite green
82
+ against the installed candidate wheel at the tagged commit.
@@ -0,0 +1,104 @@
1
+ # MO Options Vol-Model Calibration Suite
2
+
3
+ A hands-on, staged example that calibrates **Dupire Local Volatility**, **Heston**, and
4
+ **Heston Stochastic-Local Volatility (SLV)** to real **CSI 1000 index option (MO / 中证1000股指期权,
5
+ underlying `000852.SH`)** market data pulled via AKShare, and renders the whole study as a
6
+ self-contained HTML lecture.
7
+
8
+ The models are European index options — no early exercise — which is exactly the clean setting
9
+ Dupire / Heston / SLV assume.
10
+
11
+ ## The interpreter split (important)
12
+
13
+ Two Python environments are involved and **no single interpreter has both** libraries:
14
+
15
+ | Stage | Interpreter | Why |
16
+ |-------|-------------|-----|
17
+ | `01` fetch | `/opt/anaconda3/bin/python` | has `akshare`, no `quantark` |
18
+ | `02`–`09` | `.venv/bin/python` | has `quantark`, no `akshare` |
19
+
20
+ Stage 01 is the only script that touches the network; it writes a JSON **snapshot** that stages
21
+ 02–09 replay **offline**. A committed synthetic `mo_snapshot_sample.json` (arbitrage-free by
22
+ construction) drives the automated tests and lets 02–09 run with no network at all.
23
+
24
+ ## Running it
25
+
26
+ ```bash
27
+ # 1) live fetch — AKShare interpreter (optional; the sample snapshot works offline)
28
+ /opt/anaconda3/bin/python example/mo_volmodels/01_fetch_mo_snapshot.py
29
+
30
+ # 2-9) replay the snapshot — quantark .venv
31
+ .venv/bin/python example/mo_volmodels/02_build_iv_surface.py --snapshot latest
32
+ .venv/bin/python example/mo_volmodels/03_dupire_localvol.py --tag latest --vol-floor 0.05
33
+ .venv/bin/python example/mo_volmodels/04_heston_calibration.py --tag latest
34
+ .venv/bin/python example/mo_volmodels/05_slv_calibration.py --tag latest --vol-floor 0.05
35
+ .venv/bin/python example/mo_volmodels/07_barrier_exotic.py --tag latest --vol-floor 0.05
36
+ .venv/bin/python example/mo_volmodels/08_snowball_exotic.py --tag latest --vol-floor 0.05
37
+ .venv/bin/python example/mo_volmodels/09_delta_hedging.py --tag latest --vol-floor 0.05
38
+ .venv/bin/python example/mo_volmodels/06_lecture.py --tag latest
39
+ ```
40
+
41
+ Open the result: **`data/mo_volmodels_lecture_latest.html`**.
42
+
43
+ Every artifact is keyed by a `--tag` (`latest` for live data, `sample` for the deterministic
44
+ fixture) so the test pipeline and the live pipeline never clobber each other's files.
45
+
46
+ ## Stages
47
+
48
+ | Script | Does |
49
+ |--------|------|
50
+ | `01_fetch_mo_snapshot.py` | AKShare MO chain + CSI 1000 spot → `data/mo_snapshot_*.json` |
51
+ | `02_build_iv_surface.py` | **put-call parity** → r(T)/forward/carry; **OTM filter**; call-equivalent Black-IV inversion → `GridVolSurface` |
52
+ | `03_dupire_localvol.py` | Dupire σ_LV(K,T); reprice via local-vol PDE; RMSE + surface plot |
53
+ | `04_heston_calibration.py`| calibrate (v0,κ,θ,σ,ρ); Feller check; smile-fit plot + RMSE |
54
+ | `05_slv_calibration.py` | Fokker-Planck leverage surface L(S,t); reprice via SLV PDE + plot |
55
+ | `07_barrier_exotic.py` | up-and-out call priced **MC and PDE** under BSM/LV/Heston/SLV → model-divergence table + bar chart |
56
+ | `08_snowball_exotic.py` | 2Y principal-excluded standard Snowball priced **MC and PDE** under BSM/LV/Heston QE/SLV plus standalone SLV QE MC → autocallable model-divergence table + bar chart |
57
+ | `09_delta_hedging.py` | ATM European call delta-neutral hedge demo under BSM flat vol/LV/Heston/SLV → hedge inventory, turnover, residual PnL + chart |
58
+ | `06_lecture.py` | weave everything into the HTML lecture + comparison CSV |
59
+ | `_mo_common.py` | shared helpers (snapshot IO, parity, OTM filter, IV inversion, env build, leverage, plots) |
60
+
61
+ Stage 07 exercises the standalone barrier engines added to `quantark`
62
+ (`quantark/volmodels/barrier.py` + the `*BarrierMCEngine` / `*BarrierPDESolver` classes under
63
+ `quantark/asset/equity/engine/`), which price a single-barrier option under Local Vol, Heston,
64
+ and SLV by both Monte Carlo and 2-D ADI PDE. Run it after stage 05:
65
+ `.venv/bin/python example/mo_volmodels/07_barrier_exotic.py --tag latest --vol-floor 0.05`.
66
+
67
+ Stage 08 exercises the Snowball vol-model engines under the same MO surface with a 2Y,
68
+ principal-excluded standard Snowball. It reports BSM, Local Vol, Heston QE, and SLV with
69
+ MC/PDE cross-checks where available, plus the standalone SLV QE MC engine for the
70
+ QE-specific stochastic-local-vol path scheme:
71
+ `.venv/bin/python example/mo_volmodels/08_snowball_exotic.py --tag latest --vol-floor 0.05`.
72
+
73
+ Stage 09 isolates hedging behavior. It adds a BSM flat-vol baseline, then holds the
74
+ calibrated LV surface, Heston parameters, and SLV leverage surface fixed while walking
75
+ the same deterministic spot path for an ATM European call and rebalancing to delta
76
+ neutral under each model:
77
+ `.venv/bin/python example/mo_volmodels/09_delta_hedging.py --tag latest --vol-floor 0.05`.
78
+
79
+ ## What the real data teaches
80
+
81
+ - **Negative basis.** The MO forward sits well below spot and falls with maturity; the parity
82
+ regression recovers a large implied carry `q` (10–20%) — not dividends, but the CSI 1000 futures
83
+ discount driven by structured-product hedging flows.
84
+ - **Raw quotes are not arbitrage-free.** Building Dupire directly hits butterfly-arbitrage
85
+ rejections at the wings/short end. The exact path *stops* (no fabricated local vol); the pipeline
86
+ opts into a small `--vol-floor`. A desk would arbitrage-free the smile (SVI/SABR) first.
87
+ - **Parameter identification.** The Heston smile only weakly pins κ vs σ with few maturities — we
88
+ regularize (cap κ, Feller penalty) rather than overfit.
89
+ - **Objective ↔ numerics coupling.** An unconstrained Heston is deeply Feller-violated, and that
90
+ same extreme σ makes the ADI PDE mis-price by ~2 vol-pts. A Feller-aware calibration keeps both
91
+ the fit and the PDE trustworthy.
92
+ - **Which model for which product.** SLV does *not* out-reprice vanillas vs analytic Heston (the SLV
93
+ PDE has an inherent discretization bias). SLV's value is smile-consistent *dynamics* for **exotics**
94
+ (barriers, autocallables, forward-vol); the leverage surface is the reusable deliverable.
95
+
96
+ ## Tests
97
+
98
+ ```bash
99
+ .venv/bin/python -m pytest test/mo_volmodels/ -v
100
+ ```
101
+
102
+ All tests run on the deterministic `sample` snapshot (offline). See
103
+ `docs/superpowers/specs/2026-07-06-mo-volmodels-calibration-suite-design.md` and the matching
104
+ plan for the design rationale, and `quantark/volmodels/` for the model kernels.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "quantark"
7
- version = "0.2.4"
7
+ version = "0.3.0"
8
8
  description = "Modular derivatives pricing and risk library: options, autocallables, bonds, VaR, SIMM"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -42,7 +42,7 @@ dependencies = [
42
42
  ]
43
43
 
44
44
  [project.optional-dependencies]
45
- dev = ["pytest>=7.0.0", "pytest-xdist>=3.0.0"]
45
+ dev = ["pytest>=7.0.0", "pytest-xdist>=3.0.0", "dask[distributed]>=2024.1.0", "jsonschema>=4.0"]
46
46
 
47
47
  [project.urls]
48
48
  Homepage = "https://github.com/deiiiiii93/quantark"
@@ -1,3 +1,3 @@
1
1
  """QuantArk: professional financial derivatives pricing library."""
2
2
 
3
- __version__ = "0.2.4"
3
+ __version__ = "0.3.0"
@@ -3,6 +3,12 @@ Pricing engines for equity derivatives.
3
3
  """
4
4
 
5
5
  from .base_engine import BaseEngine
6
+ from .capabilities import (
7
+ EngineCapability,
8
+ VolDynamicsType,
9
+ get_engine_capability,
10
+ validate_engine_capability,
11
+ )
6
12
  from .analytical import (
7
13
  BlackScholesEngine,
8
14
  BarrierAnalyticalEngine,
@@ -15,6 +21,12 @@ from .pde_engine import PDEEngine
15
21
  from .mc import (
16
22
  EuropeanMCEngine,
17
23
  AmericanOptionMCEngine,
24
+ DCNMCEngine,
25
+ LocalVolDCNMCEngine,
26
+ CoupledCoarseHestonDCNMCEngine,
27
+ HestonDCNMCEngine,
28
+ QEDCNMCEngine,
29
+ coupled_heston_ladder_pair,
18
30
  SnowballMCEngine,
19
31
  PhoenixMCEngine,
20
32
  DigitalOptionMCEngine,
@@ -23,6 +35,16 @@ from .mc import (
23
35
  LocalVolMCEngine,
24
36
  HestonMCEngine,
25
37
  HestonSLVMCEngine,
38
+ LocalVolSnowballMCEngine,
39
+ HestonSnowballMCEngine,
40
+ QESnowballMCEngine,
41
+ HestonSLVSnowballMCEngine,
42
+ HestonSLVQESnowballMCEngine,
43
+ LocalVolPhoenixMCEngine,
44
+ HestonPhoenixMCEngine,
45
+ QEPhoenixMCEngine,
46
+ HestonSLVPhoenixMCEngine,
47
+ HestonSLVQEPhoenixMCEngine,
26
48
  )
27
49
  from .pde import (
28
50
  BasePDESolver,
@@ -37,6 +59,12 @@ from .pde import (
37
59
  LocalVolPDESolver,
38
60
  HestonPDESolver,
39
61
  HestonSLVPDESolver,
62
+ LocalVolSnowballPDESolver,
63
+ HestonSnowballPDESolver,
64
+ HestonSLVSnowballPDESolver,
65
+ LocalVolPhoenixPDESolver,
66
+ HestonPhoenixPDESolver,
67
+ HestonSLVPhoenixPDESolver,
40
68
  TimeGrid,
41
69
  SpatialGrid,
42
70
  )
@@ -52,6 +80,10 @@ from .quad import (
52
80
  __all__ = [
53
81
  # Base
54
82
  "BaseEngine",
83
+ "EngineCapability",
84
+ "VolDynamicsType",
85
+ "get_engine_capability",
86
+ "validate_engine_capability",
55
87
  # Analytical
56
88
  "BlackScholesEngine",
57
89
  "BarrierAnalyticalEngine",
@@ -62,6 +94,12 @@ __all__ = [
62
94
  # Monte Carlo
63
95
  "EuropeanMCEngine",
64
96
  "AmericanOptionMCEngine",
97
+ "DCNMCEngine",
98
+ "LocalVolDCNMCEngine",
99
+ "CoupledCoarseHestonDCNMCEngine",
100
+ "HestonDCNMCEngine",
101
+ "QEDCNMCEngine",
102
+ "coupled_heston_ladder_pair",
65
103
  "SnowballMCEngine",
66
104
  "PhoenixMCEngine",
67
105
  "DigitalOptionMCEngine",
@@ -70,6 +108,16 @@ __all__ = [
70
108
  "LocalVolMCEngine",
71
109
  "HestonMCEngine",
72
110
  "HestonSLVMCEngine",
111
+ "LocalVolSnowballMCEngine",
112
+ "HestonSnowballMCEngine",
113
+ "QESnowballMCEngine",
114
+ "HestonSLVSnowballMCEngine",
115
+ "HestonSLVQESnowballMCEngine",
116
+ "LocalVolPhoenixMCEngine",
117
+ "HestonPhoenixMCEngine",
118
+ "QEPhoenixMCEngine",
119
+ "HestonSLVPhoenixMCEngine",
120
+ "HestonSLVQEPhoenixMCEngine",
73
121
  # Unified PDE Engine
74
122
  "PDEEngine",
75
123
  # PDE Solvers
@@ -85,6 +133,12 @@ __all__ = [
85
133
  "LocalVolPDESolver",
86
134
  "HestonPDESolver",
87
135
  "HestonSLVPDESolver",
136
+ "LocalVolSnowballPDESolver",
137
+ "HestonSnowballPDESolver",
138
+ "HestonSLVSnowballPDESolver",
139
+ "LocalVolPhoenixPDESolver",
140
+ "HestonPhoenixPDESolver",
141
+ "HestonSLVPhoenixPDESolver",
88
142
  # Grid utilities
89
143
  "TimeGrid",
90
144
  "SpatialGrid",
@@ -354,8 +354,6 @@ class AccumulatorAnalyticalEngine(BaseEngine):
354
354
  raise ValidationError(
355
355
  f"Maturity too long for analytical accumulator pricing: {maturity}"
356
356
  )
357
- if div < 0:
358
- raise ValidationError(f"Dividend yield must be non-negative, got {div}")
359
357
  if abs(rate) > 1.0:
360
358
  raise ValidationError(f"Risk-free rate outside reasonable bounds: {rate}")
361
359
 
@@ -154,8 +154,6 @@ class BlackScholesEngine(BaseEngine):
154
154
  raise ValidationError(
155
155
  f"Volatility too high for numerical stability: {sigma}"
156
156
  )
157
- if q < 0:
158
- raise ValidationError(f"Dividend yield must be non-negative, got {q}")
159
157
 
160
158
  # Check for extreme parameter combinations
161
159
  if abs(r) > 1.0:
@@ -267,6 +267,13 @@ class DeltaOneEngine(BaseEngine):
267
267
  greeks["vega"] = 0.0
268
268
  greeks["theta"] = 0.0 # Market price is fixed
269
269
  greeks["rho"] = 0.0 # Market price independent of model rate
270
+ # Dividend rho at the carry implied by the observed mark:
271
+ # q_impl = r - ln(F_mkt/S)/T (basis folded into carry), so
272
+ # dF/dq = -S*T*exp((r - q_impl)*T) = -T*F_mkt. Per 1% q change.
273
+ implied_q = r - math.log(product.market_price / S) / T
274
+ greeks["dividend_rho"] = (
275
+ -S * T * math.exp((r - implied_q) * T) * 0.01
276
+ )
270
277
  return greeks
271
278
 
272
279
  # Theoretical Greeks
@@ -299,7 +306,11 @@ class DeltaOneEngine(BaseEngine):
299
306
  # Rho: derivative with respect to rate
300
307
  # dF/dr = S*T*exp((r-q)*T)
301
308
  greeks["rho"] = S * T * math.exp(carry_cost)
302
-
309
+
310
+ # Dividend rho: dF/dq = -S*T*exp((r-q)*T); basis term is q-independent.
311
+ # Per 1% q change; negative for long futures (higher carry lowers F).
312
+ greeks["dividend_rho"] = -S * T * math.exp(carry_cost) * 0.01
313
+
303
314
  return greeks
304
315
 
305
316
  def get_forward_price(
@@ -176,8 +176,6 @@ class DigitalOptionAnalyticalEngine(BaseEngine):
176
176
  raise ValidationError(
177
177
  f"Volatility {sigma} outside supported range [{self.MIN_VOL}, {self.MAX_VOL}]"
178
178
  )
179
- if q < 0:
180
- raise ValidationError(f"Dividend yield must be non-negative, got {q}")
181
179
  if abs(r) > 1.0:
182
180
  raise ValidationError(f"Risk-free rate outside reasonable bounds: {r}")
183
181
  if T > self.MAX_MATURITY:
@@ -474,8 +474,6 @@ class DoubleBarrierOptionAnalyticalEngine(BaseEngine):
474
474
  if abs(r) > 1.0:
475
475
  raise ValidationError(f"Risk-free rate outside reasonable bounds: {r}")
476
476
 
477
- if q < 0:
478
- raise ValidationError(f"Dividend yield must be non-negative, got {q}")
479
477
 
480
478
  def __repr__(self):
481
479
  return "DoubleBarrierOptionAnalyticalEngine()"
@@ -499,8 +499,6 @@ class DoubleSharkfinOptionAnalyticalEngine(BaseEngine):
499
499
  raise ValidationError(
500
500
  f"Maturity too long for analytical double sharkfin pricing: {maturity}"
501
501
  )
502
- if div < 0:
503
- raise ValidationError(f"Dividend yield must be non-negative, got {div}")
504
502
  if abs(rate) > 1.0:
505
503
  raise ValidationError(f"Risk-free rate outside reasonable bounds: {rate}")
506
504
 
@@ -272,8 +272,6 @@ class RangeAccrualAnalyticalEngine(BaseEngine):
272
272
  raise ValidationError(f"Spot price must be positive, got {S}")
273
273
  if T < 0:
274
274
  raise ValidationError(f"Time to maturity must be non-negative, got {T}")
275
- if q < 0:
276
- raise ValidationError(f"Dividend yield must be non-negative, got {q}")
277
275
  if abs(r) > 1.0:
278
276
  raise ValidationError(
279
277
  f"Risk-free rate outside reasonable bounds: {r}"
@@ -220,8 +220,6 @@ class SingleSharkfinOptionAnalyticalEngine(BaseEngine):
220
220
  raise ValidationError(
221
221
  f"Maturity too long for analytical sharkfin pricing: {maturity}"
222
222
  )
223
- if div < 0:
224
- raise ValidationError(f"Dividend yield must be non-negative, got {div}")
225
223
  if abs(rate) > 1.0:
226
224
  raise ValidationError(f"Risk-free rate outside reasonable bounds: {rate}")
227
225
 
@@ -64,6 +64,19 @@ class BaseEngine(ABC):
64
64
  """
65
65
  return self
66
66
 
67
+ def execute(self, request, context):
68
+ """Route a framework ``PricingRequest`` through the execution kernel.
69
+
70
+ Non-abstract compatibility entry point (execution-framework spec
71
+ section 5.4). Existing subclasses need no change; the kernel resolves
72
+ a capability adapter for this engine and falls back to the serial
73
+ LegacyPriceAdapter. Direct ``price``/``price_detailed`` calls are
74
+ unaffected.
75
+ """
76
+ from quantark.execution.kernel import ExecutionKernel
77
+
78
+ return ExecutionKernel.dispatch(self, request, context)
79
+
67
80
  def price_with_events(
68
81
  self,
69
82
  product: BaseEquityProduct,