quantbt-engine 1.1.1__tar.gz → 1.2.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.
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/CHANGELOG.md +74 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/MANIFEST.in +4 -0
- {quantbt_engine-1.1.1/src/quantbt_engine.egg-info → quantbt_engine-1.2.0}/PKG-INFO +214 -16
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/README.md +210 -14
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/pyproject.toml +4 -2
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/__init__.py +13 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/_native_event_rust.py +72 -13
- quantbt_engine-1.2.0/src/quantbt/backends/native_audit_projection.py +187 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_event.py +123 -142
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_intrabar_rust.py +2 -1
- quantbt_engine-1.2.0/src/quantbt/backends/native_metric_support.py +42 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_option.py +65 -101
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_portfolio.py +55 -229
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_prepared_evaluation.py +27 -3
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_vectorized.py +65 -54
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_public.py +69 -4
- quantbt_engine-1.2.0/src/quantbt/backends/option_validation.py +110 -0
- quantbt_engine-1.2.0/src/quantbt/backends/portfolio_reports.py +206 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo.py +85 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_batch.py +22 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_batch_selection.py +9 -1
- quantbt_engine-1.2.0/src/quantbt/backends/reactive_wfo_sampling.py +199 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_support.py +17 -3
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_workers.py +43 -7
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backtester.py +54 -16
- quantbt_engine-1.2.0/src/quantbt/benchmarks/README.md +118 -0
- quantbt_engine-1.2.0/src/quantbt/benchmarks/phase7_thresholds.json +45 -0
- quantbt_engine-1.2.0/src/quantbt/core/account_metadata.py +17 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/constraints.py +6 -3
- quantbt_engine-1.2.0/src/quantbt/core/delivery_lifecycle.py +74 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/engine.py +112 -8
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/event.py +47 -2
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/generated_product_contracts.py +4 -4
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_kernel.py +4 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_reference.py +2 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/market_tape.py +64 -29
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/performance_contracts.py +11 -1
- quantbt_engine-1.2.0/src/quantbt/core/portfolio_validation.py +26 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/preprocessor.py +71 -20
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/results.py +79 -9
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/schema.py +11 -10
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/types.py +20 -3
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/vectorized.py +54 -4
- quantbt_engine-1.2.0/src/quantbt/core/wfo_failures.py +44 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/__init__.py +32 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/access.py +4 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/account_profile.py +70 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/analysis_profile.py +39 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/archive.py +219 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/archive_contracts.py +276 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/assessment.py +235 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/__init__.py +26 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/donor_binding.py +44 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/donors.py +352 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/pack.py +283 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/reconcile.py +175 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/render.py +109 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/verification.py +85 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/worksheet.py +314 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/contracts.py +140 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/__init__.py +8 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/adapters.py +62 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/completed.py +57 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/contracts.py +219 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/effects.py +80 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/reduction.py +228 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/render.py +211 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/report.py +291 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/snapshots.py +106 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/validation.py +94 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/__init__.py +7 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/attribution.py +141 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/manifests.py +119 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/evidence.py +150 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/__init__.py +20 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/basins.py +94 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/design.py +144 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/estimators.py +396 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/finite_panel.py +259 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/neighborhoods.py +128 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/schema.py +4 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/sensitivity.py +66 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/structured.py +270 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/identity.py +4 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/interpretation.py +111 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/planner.py +50 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/report.py +143 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/research_contracts.py +143 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/research_render.py +76 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/researcher.py +84 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/reuse.py +101 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/search_profile.py +76 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/__init__.py +8 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/accounts.py +238 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/contracts.py +182 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/explanation.py +92 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/render.py +53 -0
- quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/report.py +231 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/endpoint.py +303 -32
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engines.py +19 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/performance.py +97 -20
- quantbt_engine-1.2.0/src/quantbt/metrics/report_contracts.py +209 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/__init__.py +7 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/account.py +172 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/adapters.py +102 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/cache.py +80 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/drawdown.py +147 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/execution.py +118 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/inputs.py +190 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/ledger.py +263 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/ledger_inputs.py +118 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/plot.py +48 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/public.py +122 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/request.py +60 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/results.py +108 -0
- quantbt_engine-1.2.0/src/quantbt/metrics/reporting/snapshots.py +93 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/__init__.py +10 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/artifacts.py +21 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous.py +515 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_binding.py +119 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_eligibility.py +47 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_producer.py +71 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_retention.py +25 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_runtime.py +277 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/continuous_scope.py +167 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/decision_report.py +447 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/__init__.py +1 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/access.py +58 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/full_development.py +113 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/identity.py +73 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/__init__.py +1 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/dossier.py +129 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/evidence.py +110 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/governance.py +110 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/plans.py +90 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/records.py +44 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/dossier/researcher_report.py +340 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/evaluation.py +100 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/event_producer.py +225 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/geometry/__init__.py +1 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/geometry/schema.py +169 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/integration_contracts.py +209 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/runtime.py +256 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/__init__.py +11 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/advisory.py +59 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/contracts.py +316 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/geometry.py +19 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/migration.py +59 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/objectives.py +154 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/pareto.py +113 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/registry.py +26 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/selection/selectors.py +60 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/__init__.py +10 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/analysis.py +137 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/contracts.py +83 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/dependence.py +85 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/moments.py +135 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/tails.py +151 -0
- quantbt_engine-1.2.0/src/quantbt/mode5/statistics/uncertainty.py +65 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/__init__.py +7 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/conditional_sobol.py +142 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/config.py +19 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/continuation/__init__.py +6 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/continuation/contract.py +167 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/continuation/session.py +239 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/continuation/storage.py +64 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/exact_is_reuse.py +37 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/execution_trial_output.py +19 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/__init__.py +25 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/artifacts.py +105 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/capture.py +161 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/common.py +104 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/config.py +173 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/descriptors.py +341 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/__init__.py +9 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/base.py +127 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/contracts.py +183 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/execution.py +101 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/package.py +51 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/package_contract.py +124 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio.py +98 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio_contract.py +117 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio_witness.py +91 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/reactive.py +62 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/registry.py +101 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/scalar.py +106 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/scalar_contract.py +93 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/handoff.py +251 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/history.py +400 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/memo.py +34 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/model.py +450 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/nested.py +142 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/numerics.py +385 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/observer.py +365 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/panel.py +121 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/persistence.py +229 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/prepared.py +95 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive.py +99 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_batch_witness.py +34 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_execution.py +100 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_transport.py +127 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/records.py +356 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/runtime.py +505 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/selection.py +468 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/telemetry.py +47 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/witness.py +131 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/work_cache.py +63 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/optimizer.py +15 -4
- quantbt_engine-1.2.0/src/quantbt/optimization/parameter_space.py +284 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/representatives.py +137 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/sampler_space.py +197 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/samplers.py +150 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/space.py +16 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/study_schedule.py +56 -0
- quantbt_engine-1.2.0/src/quantbt/optimization/wfo_study.py +402 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/authority.py +4 -3
- quantbt_engine-1.2.0/src/quantbt/options/endpoint_validation.py +27 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/execution.py +37 -11
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/fees.py +15 -9
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/hedging.py +11 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/ledger.py +107 -63
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/lifecycle.py +5 -4
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/margin.py +53 -30
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/packages.py +8 -8
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/reporting.py +55 -154
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/schema.py +4 -6
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/strategy.py +7 -0
- quantbt_engine-1.2.0/src/quantbt/options/validation.py +39 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/portfolio.py +138 -63
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_execution.py +4 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_target_requests.py +15 -0
- quantbt_engine-1.2.0/src/quantbt/reporting/executed_attribution.py +30 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/portfolio_audit.py +15 -7
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/fast.py +13 -4
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/modes.py +35 -11
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/walkforward.py +415 -50
- quantbt_engine-1.2.0/src/quantbt/wfo_execution.py +402 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0/src/quantbt_engine.egg-info}/PKG-INFO +214 -16
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/SOURCES.txt +231 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/requires.txt +3 -1
- quantbt_engine-1.2.0/tests/test_acc01_clocks_funding.py +417 -0
- quantbt_engine-1.2.0/tests/test_acc01_event_vectorized.py +155 -0
- quantbt_engine-1.2.0/tests/test_acc01_source_guard.py +53 -0
- quantbt_engine-1.2.0/tests/test_ci_native_identity.py +108 -0
- quantbt_engine-1.2.0/tests/test_ci_shards_keep_going.py +134 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_endpoint.py +36 -5
- quantbt_engine-1.2.0/tests/test_hma_perf_compact_feedback.py +128 -0
- quantbt_engine-1.2.0/tests/test_hma_perf_delta_tape.py +363 -0
- quantbt_engine-1.2.0/tests/test_hma_perf_snapshot.py +394 -0
- quantbt_engine-1.2.0/tests/test_m5_12_benchmark_reporting.py +24 -0
- quantbt_engine-1.2.0/tests/test_m5_12_ci_format_guard.py +283 -0
- quantbt_engine-1.2.0/tests/test_m5_12_ci_rust_guard.py +94 -0
- quantbt_engine-1.2.0/tests/test_m5_12_closeout_report.py +303 -0
- quantbt_engine-1.2.0/tests/test_m5_12_consumer_wiring.py +623 -0
- quantbt_engine-1.2.0/tests/test_m5_12_local_artifacts.py +71 -0
- quantbt_engine-1.2.0/tests/test_m5_12_native_build.py +103 -0
- quantbt_engine-1.2.0/tests/test_m5_12_pct_activity_capability.py +150 -0
- quantbt_engine-1.2.0/tests/test_m5_12_pct_alias.py +44 -0
- quantbt_engine-1.2.0/tests/test_m5_12_pct_alias_guard.py +213 -0
- quantbt_engine-1.2.0/tests/test_m5_12_pct_installed.py +353 -0
- quantbt_engine-1.2.0/tests/test_m5_12_pct_source_guard.py +203 -0
- quantbt_engine-1.2.0/tests/test_m5_12_preparation.py +130 -0
- quantbt_engine-1.2.0/tests/test_m5_12_release120_guard.py +79 -0
- quantbt_engine-1.2.0/tests/test_m5_12_reproduction.py +384 -0
- quantbt_engine-1.2.0/tests/test_m5_12_snapshot_guard.py +343 -0
- quantbt_engine-1.2.0/tests/test_m5_12_traceability.py +235 -0
- quantbt_engine-1.2.0/tests/test_mode4_qualification.py +320 -0
- quantbt_engine-1.2.0/tests/test_mode5_covariance_finance.py +349 -0
- quantbt_engine-1.2.0/tests/test_mode5_covariance_requests.py +253 -0
- quantbt_engine-1.2.0/tests/test_mode5_driver_observer.py +121 -0
- quantbt_engine-1.2.0/tests/test_mode5_feedback_observer.py +794 -0
- quantbt_engine-1.2.0/tests/test_mode5_iteration_witness.py +147 -0
- quantbt_engine-1.2.0/tests/test_mode5_m5081_history.py +88 -0
- quantbt_engine-1.2.0/tests/test_mode5_m509_dossier_report.py +68 -0
- quantbt_engine-1.2.0/tests/test_mode5_missing_probes.py +319 -0
- quantbt_engine-1.2.0/tests/test_mode5_probe_closure.py +425 -0
- quantbt_engine-1.2.0/tests/test_mode5_probe_views.py +282 -0
- quantbt_engine-1.2.0/tests/test_mode5_research_jobs.py +558 -0
- quantbt_engine-1.2.0/tests/test_mode5_selector_checkpoint.py +445 -0
- quantbt_engine-1.2.0/tests/test_next03_product_qualification.py +89 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_01_traceability_and_computation.py +49 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_05_wfo_evaluation_reuse.py +5 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase13_portfolio_report_parity.py +3 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase45d_native_event_zero_object.py +2 -13
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46f_packaging_release.py +14 -3
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase49b_wfo_performance.py +19 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase55a_native_distribution.py +2 -2
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase55b_public_release.py +18 -5
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase56_v1_1_baseline.py +72 -32
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase71_runtime_productization.py +7 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase75_reactive_scalar_retention.py +2 -12
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase76_reactive_wfo.py +1 -1
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_1_measurement_contract.py +20 -6
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_2_pct_equity_native.py +108 -8
- quantbt_engine-1.2.0/tests/test_portfolio_account_review_fixes.py +172 -0
- quantbt_engine-1.2.0/tests/test_portfolio_guard_current_qualification.py +205 -0
- quantbt_engine-1.2.0/tests/test_portfolio_legacy_review_fixes.py +396 -0
- quantbt_engine-1.2.0/tests/test_portfolio_repair_native_parity.py +85 -0
- quantbt_engine-1.2.0/tests/test_portfolio_repair_source_guard.py +44 -0
- quantbt_engine-1.2.0/tests/test_pre_m512_extraction_contract.py +82 -0
- quantbt_engine-1.2.0/tests/test_pre_m512_portfolio_extraction.py +109 -0
- quantbt_engine-1.2.0/tests/test_pre_m512_resources.py +32 -0
- quantbt_engine-1.2.0/tests/test_pre_m512_source_guard.py +83 -0
- quantbt_engine-1.2.0/tests/test_qms_candidate_diagnostics.py +63 -0
- quantbt_engine-1.2.0/tests/test_qms_real_evidence.py +120 -0
- quantbt_engine-1.2.0/tests/test_qms_real_review.py +104 -0
- quantbt_engine-1.2.0/tests/test_scalar_report_contract.py +47 -0
- quantbt_engine-1.2.0/tests/test_vectorized_account_review_fixes.py +235 -0
- quantbt_engine-1.2.0/tests/test_version_pair_120.py +155 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_walkforward_phase1.py +14 -1
- quantbt_engine-1.1.1/src/quantbt/optimization/samplers.py +0 -84
- quantbt_engine-1.1.1/tests/test_next03_product_qualification.py +0 -36
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/LICENSE +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/setup.cfg +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/_dependency.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/backend.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/instruments.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/options.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/reports.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/api/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/api/event_driven.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_package_arbitrage.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_portfolio_package.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_strategy_ir.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_support.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_target.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_preparation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/compare_phase9_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/gamma_scalping_backtestsample.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/profile_phase7.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_arbitrage_phase_e.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_optimization_overhead.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_options_engine.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_pct_equity_nautilus_smoke.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase12_arbitrage_cert.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase12_benchmark_nautilus_cert.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase13_portfolio_report.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase13_wfo_cache.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase14_service_loop.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase15a_nautilus_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase15b_synthetic_depth.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase16_performance_debt.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase30e_reactive_runner.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase31_intrabar.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34a_native_event_memory.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34b_native_event_prepared_score.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34c_native_event_single_pass.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase49b_wfo_performance.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase7.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_portfolio_real_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/v1_1_measurement.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/_trace_columns.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/accounting_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/arbitrage.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/basket.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/event_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_contract.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_depth.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_trace.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/fill_replay_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/generated_native_event_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/instrument_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/instrument_registry_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_session.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/market_calendar_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_capabilities.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_promotion.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_result_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/order_compiler.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/orders.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/package_execution_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/package_execution_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/portfolio.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/portfolio_execution_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/prepared_execution_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/product_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/reactive.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/research_audit.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/research_audit_artifact.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/runtime_governance.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/scopes.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/structured_orders.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/target_intents.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_contracts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_evaluation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_preparation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/errors.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/native_event.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/protocol.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/registry.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/errors.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/options_analytics.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/bootstrap.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/callbacks.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/candidate_selection.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/constraints.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluator.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/arbitrage.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/generic.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/grid_dca.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/intrabar.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/native_event.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/options.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/portfolio.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/signal.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/multiseed.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/objectives.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/result.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/cache.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/capabilities.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/conventions.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/data.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/greeks.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/iv.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/pricing.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/selectors.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/surface.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/tape.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/templates/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/templates/packages.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/capabilities.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/fingerprints.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/models.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/output.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/resolve.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/cache.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/models.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_event.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_intrabar_requests.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_package_requests.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/py.typed +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/arbitrage_audit.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_bundle.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_diagnostics.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/portfolio_nautilus.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/results/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/results/raw.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/commands.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/context.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/driver.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/native_ir.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/reactive_protocols.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/reactive_wfo.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/requirements.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/wfo_prepared.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/verification/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/verification/canonical_trace_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/__init__.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/plots.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/themes.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/dependency_links.txt +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/top_level.txt +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_followup_statistical_work.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_gate_paired_timings.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_generic_callback_audit_regression.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_metrics_intraday_scope.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_native_release_evidence_hygiene.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next01_reactive_public_runtime.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next02_reactive_wfo_benchmark.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_canonical_source_layout.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_capability_surface.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_clean_consumer_proof.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_source_inventory.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_core.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_evaluators.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_integration.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_phase33b.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_samplers.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_pct_equity_nautilus_smoke.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_02_session_reuse.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_03_reactive_boundary.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_04_native_matching.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_06_research_audit.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_07_performance_closure.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_08_wfo_preparation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_09_reactive_boundary.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase0_baseline.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_native_portfolio_backend.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_native_portfolio_full_surface.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_engine_spec.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_institutional_scenarios.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_nautilus_validation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_real_parity_script.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase12_arbitrage_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase12_benchmark_nautilus_cert.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase13_arbitrage_certification_cleanup.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase14_service_loop_benchmark.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase14c_prepared_report_levels.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase15a_nautilus_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase15b_synthetic_depth.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase16_prepared_service_context.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase1_schema.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase2_native_vectorized.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30a_native_event_lifecycle_contract.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30b_native_event_lifecycle_kernel.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30c_native_event_endpoint_lifecycle.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30d_native_event_reactive_runner.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30e_native_event_incremental_runner.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31_merge_blockers.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31a_execution_correctness_contract.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31b_market_tape_intrabar_oracle.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31c_intrabar_kernel.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31d_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31h_intrabar_session_reference.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34a_native_event_artifacts.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34b_native_event_prepared_score.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34c_native_event_single_pass.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase3_native_event.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase42_packaging_layout.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase42c_ci_release.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase45a_source_tree_sync.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46a_correctness_certification.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46b_score_rss.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46c_import_graph.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47a_grid_adapter.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47c_grid_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47d_grid_optimizer.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48a_release_surfaces.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48b_release_hygiene.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48c_event_driven_facade.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48f_release_gate.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase49a_walkforward_schedules.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase4_basket.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase50_nested_mode1_causal.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase54b2_benchmark_policy.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase57_v1_1_specs_oracle_trace.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase58_market_calendar_instrument_v2.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase59_linear_accounting_fill_replay.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_1_nautilus_report_bundle.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_arbitrage_audit.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_institutional_simulations.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_portfolio_audit.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_debt_domain_validation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_endpoint_depth.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_nautilus_depth.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_nautilus_adapter.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase60_execution_metrics_native_result.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase61_static_event_rust_primary.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase62_reactive_numeric_coruntime.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase63_sparse_block_reactive.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase64_wfo_correctness.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase65_native_wfo_runtime.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase66_rust_target_vectorized.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase67_rust_shared_portfolio.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase68_rust_package_authority.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase69_rust_intrabar_authority.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase6_public_api.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase72_measurement_contract.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase73_prepared_evaluation.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase74_public_wfo_native.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_3_kernel_resource_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_3_reactive_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_native_performance_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase78_public_release_closure.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase7_benchmark_suite.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_a.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_b.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_c.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_d.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_e.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_f.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_g.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_h.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase9_performance_parity.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_pre48e_native_event_fast_paths.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_real.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_real_endpoints.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_release_channel_policy.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_release_evidence_hygiene.py +0 -0
- {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_shared_quantity_constraints.py +0 -0
|
@@ -4,6 +4,80 @@ All notable changes to `quantbt-engine` are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.0] - 2026-10-23
|
|
8
|
+
|
|
9
|
+
### Core 1.2.0 / Native 0.4.3
|
|
10
|
+
|
|
11
|
+
- Retargeted the unreleased core candidate from1.1.2to1.2.0 to reflect the
|
|
12
|
+
diagnostics, Mode4/Mode5, sampler/meta, reporting and account upgrade below.
|
|
13
|
+
Historical1.1.2receipts retain their original scope; they are not renamed
|
|
14
|
+
release evidence. Native version remains0.4.3; generated product metadata
|
|
15
|
+
follows the new pair, requiring fresh matching native artifacts.
|
|
16
|
+
- Reduced full Reporting V1 Python scalar-dispatch and metadata overhead;
|
|
17
|
+
closed-ledger reason counting uses one pass instead of one scan per reason.
|
|
18
|
+
Exact before/after output, snapshot/identity and undefined-policy parity are
|
|
19
|
+
tested. Reporting formulas, financial kernels and WFO selection are unchanged;
|
|
20
|
+
timing gains are workload-specific and do not imply a universal speedup.
|
|
21
|
+
|
|
22
|
+
- Added opt-in `reporting=ReportingRequest(...)` on completed endpoint/result
|
|
23
|
+
reports and quick plots. Account-period, execution, closed-trade/action and
|
|
24
|
+
drawdown episode output has explicit baseline, frequency, currency, coverage
|
|
25
|
+
and unavailable policies. This opt-in does not alter execution or WFO/meta
|
|
26
|
+
objectives; separate account repairs below intentionally correct financial
|
|
27
|
+
edge cases. Read [Reporting V1](docs/metrics/PUBLIC_REPORTING.md).
|
|
28
|
+
- Reduced optional reporting copies and duplicate hashing using immutable
|
|
29
|
+
bytes-owned snapshots, a prepared boolean mask and one report/plot snapshot.
|
|
30
|
+
Cache hits still rehash mutable completed input; formulas, exact identities,
|
|
31
|
+
requested episode detail, legacy reports and financial/WFO metrics are unchanged.
|
|
32
|
+
- Fixed immutable reporting snapshot reconstruction after copy/deepcopy and
|
|
33
|
+
pickle, including nested execution paths and drawdown episodes. Constructors
|
|
34
|
+
revalidate storage and recompute hashes; changed observations cannot reuse a
|
|
35
|
+
saved identity. Python reporting scans use zero-copy native scalar access
|
|
36
|
+
with preserved numerical overflow policies and exact differential coverage.
|
|
37
|
+
|
|
38
|
+
- Added opt-in Mode 4 / per-fold causal meta selection and a shared sampler
|
|
39
|
+
bridge for legacy TPE, grouped multivariate TPE, CMA-ES and fixed-space Sobol.
|
|
40
|
+
- Qualified causal history, ridge artifacts, reference/prepared selection
|
|
41
|
+
parity, exact reusable calendar/market witnesses, observed thread telemetry
|
|
42
|
+
and bounded sequential W3 meta on the original native accounting pass.
|
|
43
|
+
- Enabled the already-qualified QMS native exports in default Cargo builds;
|
|
44
|
+
Linux core dependency is exactly `quantbt-native==0.4.3`. The ABI remains
|
|
45
|
+
versioned; later ACC-01 changes affect both Python and Rust financial source
|
|
46
|
+
and require fresh compatible artifacts. Meta remains disabled unless requested.
|
|
47
|
+
- Earlier QMS wheel/sdist, installed-W3 and six-row Ubuntu receipts retain
|
|
48
|
+
their historical source scope. They do not certify the later Mode 5,
|
|
49
|
+
reporting and account repairs. Final M5-12 artifacts, remote qualification
|
|
50
|
+
and public consumers remain separate gates.
|
|
51
|
+
- Added diagnostics-first opt-in Mode 5 calibration with versioned objectives,
|
|
52
|
+
selectors, diagnostic evidence/rights, frozen plans, explanation and winner
|
|
53
|
+
qualification. Shared diagnostics/reporting include Mode 4 fold consistency,
|
|
54
|
+
R/Q, decision coverage and explicit cross-mode researcher handoff. No automatic
|
|
55
|
+
sampler/selector router or universal economic improvement is claimed.
|
|
56
|
+
- Extended the stable endpoint API additively: optional `execution_endpoint`
|
|
57
|
+
on `walk_forward`, keyword-only `meta_history` on `backtest`, optional
|
|
58
|
+
`reporting` on completed reports/plots, and `research_report(...)`.
|
|
59
|
+
- Corrected current-capability account/configuration behavior: financial clocks,
|
|
60
|
+
funding interval coverage, contract multipliers, risk-reducing admission,
|
|
61
|
+
constraints, invalid inputs, actual attribution and reporting horizon/time
|
|
62
|
+
handling. Unsupported non-default options fail explicitly; gross-cross/netting
|
|
63
|
+
is not hedge inventory or isolated liquidation. See
|
|
64
|
+
[ACC-01 migration](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md).
|
|
65
|
+
- Refreshed the generated root API inventory to 527 exports (11 additions to
|
|
66
|
+
the stale generated list, no removals), with an exact metadata-only amendment
|
|
67
|
+
that preserves the separate financial source qualification and historical receipts.
|
|
68
|
+
- Extracted cold option validation and portfolio report helpers, preserving
|
|
69
|
+
endpoint/private aliases, moved function bodies and retained engine code.
|
|
70
|
+
Exact source qualification is separate from historical financial-invariance
|
|
71
|
+
receipts and still does not certify installed artifacts.
|
|
72
|
+
- Added maintained installed-consumer/CI wiring for the Mode 5,
|
|
73
|
+
winner/donor, reporting and account changes. Execution on final wheel/sdist
|
|
74
|
+
artifacts and remote/public qualification remain separate gates.
|
|
75
|
+
- Aligned tag/release regression with the qualified CI native-wheel identity
|
|
76
|
+
pin and isolated host-PID tests. Release publication is native-first and
|
|
77
|
+
requires its own artifact and public-consumer gates; this changelog is not
|
|
78
|
+
a publication receipt or a new scientific acceptance claim. See the
|
|
79
|
+
[release checklist](docs/testpypi_release_checklist.md).
|
|
80
|
+
|
|
7
81
|
## [1.1.1]
|
|
8
82
|
|
|
9
83
|
### Changed
|
|
@@ -4,6 +4,8 @@ include CHANGELOG.md
|
|
|
4
4
|
include pyproject.toml
|
|
5
5
|
|
|
6
6
|
recursive-include src/quantbt *.py py.typed
|
|
7
|
+
include src/quantbt/benchmarks/README.md
|
|
8
|
+
include src/quantbt/benchmarks/phase7_thresholds.json
|
|
7
9
|
|
|
8
10
|
global-exclude *.pem
|
|
9
11
|
global-exclude *.key
|
|
@@ -14,6 +16,8 @@ global-exclude .pypirc
|
|
|
14
16
|
prune upgrade/private
|
|
15
17
|
prune upgrade/local
|
|
16
18
|
prune upgrade/drafts
|
|
19
|
+
prune upgrade/alphas
|
|
20
|
+
exclude upgrade/MODE5_INVARIANT_AND_ALPHA_PROFILING_SPEC_V1.md
|
|
17
21
|
prune benchmarks
|
|
18
22
|
prune artifacts
|
|
19
23
|
prune data/raw
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quantbt-engine
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0
|
|
4
4
|
Summary: Transparent, high-performance quantitative backtesting engine
|
|
5
5
|
Author-email: Vu Cong Minh <vugioan11022002@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -27,9 +27,10 @@ License-File: LICENSE
|
|
|
27
27
|
Requires-Dist: numpy<2.3,>=2.2.6
|
|
28
28
|
Requires-Dist: pandas<2.4,>=2.3.3
|
|
29
29
|
Requires-Dist: numba<0.66,>=0.65.1
|
|
30
|
-
Requires-Dist: quantbt-native==0.4.
|
|
30
|
+
Requires-Dist: quantbt-native==0.4.3; sys_platform == "linux" and platform_machine == "x86_64" and implementation_name == "cpython" and python_version >= "3.11" and python_version < "3.14"
|
|
31
31
|
Provides-Extra: optimization
|
|
32
32
|
Requires-Dist: optuna<4.9,>=4.8.0; extra == "optimization"
|
|
33
|
+
Requires-Dist: cmaes==0.12.0; extra == "optimization"
|
|
33
34
|
Requires-Dist: arch<8.1,>=8.0.0; extra == "optimization"
|
|
34
35
|
Requires-Dist: scikit-learn<1.9,>=1.8.0; extra == "optimization"
|
|
35
36
|
Provides-Extra: reports
|
|
@@ -42,6 +43,7 @@ Requires-Dist: nautilus-trader<1.231,>=1.230.0; python_version >= "3.12" and ext
|
|
|
42
43
|
Provides-Extra: native
|
|
43
44
|
Provides-Extra: all
|
|
44
45
|
Requires-Dist: optuna<4.9,>=4.8.0; extra == "all"
|
|
46
|
+
Requires-Dist: cmaes==0.12.0; extra == "all"
|
|
45
47
|
Requires-Dist: arch<8.1,>=8.0.0; extra == "all"
|
|
46
48
|
Requires-Dist: scikit-learn<1.9,>=1.8.0; extra == "all"
|
|
47
49
|
Requires-Dist: quantstats==0.0.81; extra == "all"
|
|
@@ -64,8 +66,8 @@ walk-forward validation.
|
|
|
64
66
|
|
|
65
67
|
The public API stays Pythonic. NumPy and Numba power portable research paths,
|
|
66
68
|
while a governed Rust/PyO3 companion accelerates certified event workloads.
|
|
67
|
-
|
|
68
|
-
audit
|
|
69
|
+
Completed research/audit runs use the shared result/report surface. Explicit
|
|
70
|
+
score/compact profiles retain only their documented outputs, not full audit data.
|
|
69
71
|
|
|
70
72
|
```python
|
|
71
73
|
from quantbt import QuantBTEndpoint
|
|
@@ -84,15 +86,33 @@ The distribution name is **`quantbt-engine`**; the import name is
|
|
|
84
86
|
|
|
85
87
|
On Linux x86_64 with glibc and CPython 3.11-3.13, installation also resolves
|
|
86
88
|
the exact pre-built **`quantbt-native`** companion. Users do not need Cargo,
|
|
87
|
-
Rust, Maturin, a second import, or a different endpoint.
|
|
88
|
-
|
|
89
|
+
Rust, Maturin, a second import, or a different endpoint. Portable Python/Numba
|
|
90
|
+
routes remain available where their dependencies are supported; explicit Rust
|
|
91
|
+
contracts still require a matching native wheel. Alpine/musl is not covered:
|
|
92
|
+
the dependency marker cannot distinguish musl from glibc, so installation may
|
|
93
|
+
fail there rather than automatically fall back.
|
|
89
94
|
|
|
90
|
-
Release pair:
|
|
95
|
+
Release pair declared by this source revision:
|
|
91
96
|
|
|
92
97
|
| Distribution | Version | Purpose |
|
|
93
98
|
|---|---:|---|
|
|
94
|
-
| `quantbt-engine` | `1.
|
|
95
|
-
| `quantbt-native` | `0.4.
|
|
99
|
+
| `quantbt-engine` | `1.2.0` | Public API, Python/Numba engines, reports, compatibility oracle |
|
|
100
|
+
| `quantbt-native` | `0.4.3` | Internal PyO3 extension, including default QMS numerics and prepared witnesses |
|
|
101
|
+
|
|
102
|
+
The previous release pair was `1.1.1 / 0.4.2`. QMS is opt-in: enabling its
|
|
103
|
+
compiled capability does not enable meta selection or change an existing
|
|
104
|
+
endpoint/account policy. See the
|
|
105
|
+
[QMS release handoff](docs/meta_selection/RELEASE_HANDOFF.md) for exact artifact,
|
|
106
|
+
installed-W3 and public-consumer gates and the owner-controlled release order.
|
|
107
|
+
The [M5-12 preparation checklist](docs/mode5/M5_12_PREPARATION.md) preserves
|
|
108
|
+
the earlier `1.1.2` candidate qualification under its original scope. Current
|
|
109
|
+
source/artifact qualification, platform certification and public-index proof
|
|
110
|
+
are separate from historical receipts. The [release capability map](#prepared-release-capabilities)
|
|
111
|
+
below describes this source revision. For a checkout or candidate artifact,
|
|
112
|
+
verify the installed versions rather than assuming it is already on PyPI.
|
|
113
|
+
The [release checklist](docs/testpypi_release_checklist.md) requires the native
|
|
114
|
+
companion to be public before core publication, then a public consumer proof.
|
|
115
|
+
Local qualification alone is not evidence of publication.
|
|
96
116
|
|
|
97
117
|
Optional features:
|
|
98
118
|
|
|
@@ -112,12 +132,68 @@ print("core:", version("quantbt-engine"))
|
|
|
112
132
|
try:
|
|
113
133
|
print("native:", version("quantbt-native"))
|
|
114
134
|
except PackageNotFoundError:
|
|
115
|
-
print("native: unavailable;
|
|
135
|
+
print("native: unavailable; use a supported portable route or install the exact companion")
|
|
116
136
|
```
|
|
117
137
|
|
|
118
138
|
Read the [native installation matrix](docs/native/install.md) for supported
|
|
119
139
|
platforms, backend controls, and troubleshooting.
|
|
120
140
|
|
|
141
|
+
## Optional Reporting V1
|
|
142
|
+
|
|
143
|
+
Completed endpoint/result `full_report()`, `show_metrics()` and `quick_plot()`
|
|
144
|
+
accept `reporting=ReportingRequest(...)` for explicit account-period, execution,
|
|
145
|
+
closed-trade/action and drawdown-episode reporting. This reporting opt-in does
|
|
146
|
+
not change execution or the WFO/meta objective. Separate account correctness
|
|
147
|
+
fixes in this release can change results; see the migration notice below.
|
|
148
|
+
The four populations stay separate: `account_period`, `execution`,
|
|
149
|
+
`closed_trade` and `closed_action`. Returns/drawdowns are numeric fractions
|
|
150
|
+
(percentages are display-only); PnL/costs retain their currency, durations their
|
|
151
|
+
declared units, and each metric its sample count, coverage and validity.
|
|
152
|
+
Declare the baseline, clock, sampling and annual periods explicitly.
|
|
153
|
+
Missing outcome attribution is metric-specific N/A with a reason, not a guessed
|
|
154
|
+
trade count or zero. Undefined bankruptcy-period ratios and invalid overflow
|
|
155
|
+
remain null with status; no-loss ratios are not JSON Infinity. Legacy scientific
|
|
156
|
+
metrics and `tearsheet()` keep their separate contracts. Read the
|
|
157
|
+
[reporting guide](docs/metrics/PUBLIC_REPORTING.md),
|
|
158
|
+
[metric definitions and units](docs/metrics/REPORTING_CONTRACT_V1.md) and runnable
|
|
159
|
+
[synthetic example](examples/reporting_metrics_v1.py).
|
|
160
|
+
|
|
161
|
+
Measured local CPython 3.12 reporting cost, one thread, one warmup/five samples:
|
|
162
|
+
the opt-in workload includes immutable snapshot/hash, reduction, episode detail
|
|
163
|
+
and grouped dictionary adaptation; it does not time strategy/execution.
|
|
164
|
+
|
|
165
|
+
| Account observations | Python full report p50 / p95 | Explicit Numba p50 / p95 | Numba observations/s | Worker peak RSS Python / Numba |
|
|
166
|
+
|---:|---:|---:|---:|---:|
|
|
167
|
+
| 2,000 | 6.435 / 6.828 ms | 1.728 / 1.826 ms | 1.16M | 202.11 / 300.85 MiB |
|
|
168
|
+
| 100,000 | 206.818 / 225.768 ms | 21.284 / 22.589 ms | 4.70M | 168.77 / 266.43 MiB |
|
|
169
|
+
| 1,000,000 | 2.111 / 2.165 s | 183.730 / 186.878 ms | 5.44M | 286.52 / 373.12 MiB |
|
|
170
|
+
|
|
171
|
+
These are **new report definitions and requested extra work**, not comparable
|
|
172
|
+
to the shorter legacy scientific metric set as a speedup. Text formatting was
|
|
173
|
+
0.05-0.10 ms in the original qualification. Public requests prepare the immutable
|
|
174
|
+
mask once; request preparation, snapshot/hash and serialization are measured
|
|
175
|
+
separately, not advertised as free.
|
|
176
|
+
First-call Numba account compilation/reduction took 5.30-5.80 s and is not in
|
|
177
|
+
the warm table. Python remains the reporting default; small ledgers may be
|
|
178
|
+
faster without compilation. Peak RSS includes the import/JIT floor, and the
|
|
179
|
+
2k row also draws the optional plot, so rows are not memory-scaling forecasts.
|
|
180
|
+
Public cache hits still rehash mutable input and adapt output. Full matched
|
|
181
|
+
legacy/new timings, coverage, caveats and local artifact receipts are in the
|
|
182
|
+
[copy/cost qualification](docs/metrics/MET03_COPY_COST_REPORT.md), with
|
|
183
|
+
historical evidence in the [performance follow-up](docs/metrics/MET03_PERFORMANCE_REPORT.md)
|
|
184
|
+
and [MET-03 report](docs/metrics/MET03_REPORT.md). No universal
|
|
185
|
+
1-10 ms promise or Rust Reporting V1 reducer is claimed.
|
|
186
|
+
|
|
187
|
+
Alternating same-process comparisons, two warmups/30 samples, exact full-output
|
|
188
|
+
hashes: against immediate parent `dc12427`, Python 2k account reporting is
|
|
189
|
+
**8.270 -> 6.335 ms**, 1M is **3.165 -> 2.081 s**, and 2k closed trades are
|
|
190
|
+
**15.491 -> 11.592 ms**. Against historical `24ad469`, Numba 1M is
|
|
191
|
+
**319.356 -> 164.557 ms**. This paired cold-adapter/reducer comparison is
|
|
192
|
+
separate from the full public/fresh-worker table above. Numba p95 and small
|
|
193
|
+
cells are not uniformly better; all measurements remain visible. Copy/deepcopy
|
|
194
|
+
and trusted pickle round trips retain validated readonly snapshots and rederive
|
|
195
|
+
identities; cache correctness does not depend on trusting serialized hashes.
|
|
196
|
+
|
|
121
197
|
## Quick Start
|
|
122
198
|
|
|
123
199
|
```python
|
|
@@ -177,6 +253,114 @@ The full parameter, data, result, and support contracts are in the
|
|
|
177
253
|
[endpoint guide](docs/endpoint.md). For a decision tree, read
|
|
178
254
|
[backend selection](docs/backend_selection.md).
|
|
179
255
|
|
|
256
|
+
<a id="prepared-release-capabilities"></a>
|
|
257
|
+
|
|
258
|
+
## Release Capabilities
|
|
259
|
+
|
|
260
|
+
For the **1.2.0 / 0.4.3** pair, choose each research extension
|
|
261
|
+
explicitly. Installing compiled capabilities does not enable meta, choose a
|
|
262
|
+
sampler/selector, route a strategy or promote a default. Software support,
|
|
263
|
+
registered economic findings and final installed/release certification are
|
|
264
|
+
separate claims.
|
|
265
|
+
|
|
266
|
+
| Research need | Capability and reading path |
|
|
267
|
+
|---|---|
|
|
268
|
+
| Choose search independently of meta | [Four shared sampler recipes](docs/meta_selection/SAMPLERS.md), [optional numeric-space helper](docs/meta_selection/SAMPLER_SPACE_HELPER.md), [synthetic example](examples/wfo_sampler_space.py) |
|
|
269
|
+
| Learn from permitted historical tasks | [Meta off/shadow/active](docs/meta_selection/USAGE.md), [route bounds](docs/meta_selection/CURRENT_ROUTE_REVIEW.md), [nested scalar Mode 1](docs/meta_selection/NESTED_MODE1.md) |
|
|
270
|
+
| Inspect evidence before/after search | [Shared alpha diagnostics](docs/diagnostics/SHARED_ALPHA_DIAGNOSTICS.md), [pre-search researcher view](docs/diagnostics/PRESEARCH_RESEARCHER_REPORT.md), [Mode 4 fold/decision reports](docs/diagnostics/FOLD_DECISION_REPORTS.md) |
|
|
271
|
+
| Calibrate one fixed parameter dict | [Diagnostics-first Mode 5](docs/mode5/PUBLIC_CALIBRATION_V1.md), [sealed executable handoff](docs/diagnostics/MODE5_EXECUTABLE_HANDOFF.md), [decision components](docs/mode5/DECISION_QUALIFICATION_V1.md) |
|
|
272
|
+
| Qualify a winner or explicitly reuse coordinates | [Winner, regime, activity, probe/stress and donor contracts](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md), [synthetic cross-mode example](examples/mode5_cross_mode_qualification.py) |
|
|
273
|
+
| Report completed results with explicit units/coverage | [Reporting V1](#optional-reporting-v1), [public usage](docs/metrics/PUBLIC_REPORTING.md) |
|
|
274
|
+
| Understand corrected account behavior | [ACC-01 supported/inactive/rejected configuration matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md), [current-capability qualification](docs/portfolio_review/ACC01_REPORT.md) |
|
|
275
|
+
|
|
276
|
+
### Independent Samplers And Causal Meta
|
|
277
|
+
|
|
278
|
+
`optimization_config["sampler_config"]` selects `tpe_legacy`,
|
|
279
|
+
`tpe_multivariate_group`, `cmaes` or `sobol` without enabling meta. Omission
|
|
280
|
+
preserves historical sampler defaults. Optional `prepare_sampler_space`
|
|
281
|
+
assesses declared schema compatibility, not profitability: numeric lists stay
|
|
282
|
+
categorical by default. Declared regular integer grids can preserve support;
|
|
283
|
+
float choices need schema overrides. Conversion can change proposal geometry.
|
|
284
|
+
Mixed CMA and conditional Sobol require their
|
|
285
|
+
[explicit policies](docs/meta_selection/CONDITIONAL_POLICIES.md); neither the
|
|
286
|
+
helper nor diagnostics chooses a recipe from OOS outcomes.
|
|
287
|
+
|
|
288
|
+
| Meta mode/schedule | Admitted software scope | Important boundary |
|
|
289
|
+
|---|---|---|
|
|
290
|
+
| Mode 4 / `per_fold_causal` | Five scalar targets; bounded portfolio, basket/arbitrage, intrabar, callback/command and pre-expiry delivery adapters | Original route-specific account, timing and scoring contracts still apply |
|
|
291
|
+
| Nested Mode 1 / `per_fold_causal` | `signal_notional`, `notional`, `unit`, `pct_equity`, signed structural `dca_ladder` | Genuine inner validation within outer IS; not portfolio/package/execution/W3 meta |
|
|
292
|
+
| Prepared W3, Mode 4 causal | Separate sequential, one-symbol reactive adapter | Reset-flat segments, not carry-account, shared multi-symbol or public meta batching |
|
|
293
|
+
|
|
294
|
+
Shadow records proposals but executes the native winner; active may apply the
|
|
295
|
+
learned choice or documented fallback. Current IS and a frozen snapshot of
|
|
296
|
+
permitted matured history may inform selection; the current outer OOS never
|
|
297
|
+
enters its fit/rank. Other mode/route
|
|
298
|
+
combinations, including options/Nautilus meta, are not admitted merely because
|
|
299
|
+
their standalone endpoint or result helper exists. Numeric meta acceleration
|
|
300
|
+
and financial execution remain independent; Python callbacks are not Rust-owned.
|
|
301
|
+
|
|
302
|
+
### Compatibility And Account Corrections
|
|
303
|
+
|
|
304
|
+
Endpoint factory names remain stable. Relative to `v1.1.1`, optional
|
|
305
|
+
`execution_endpoint`, `meta_history` and `reporting` inputs and the
|
|
306
|
+
`research_report(...)` method extend WFO and result analysis. The later ACC-01
|
|
307
|
+
repairs do not change endpoint method signatures, but intentionally correct
|
|
308
|
+
funding, sizing, order admission, attribution and reporting edge cases.
|
|
309
|
+
Unsupported non-default account/execution settings now fail explicitly instead
|
|
310
|
+
of appearing to work. These correctness repairs are not optional research
|
|
311
|
+
policies; omitting meta/diagnostics does not restore old financial defects.
|
|
312
|
+
|
|
313
|
+
| Current account family | Supported authority | Boundary |
|
|
314
|
+
|---|---|---|
|
|
315
|
+
| Linear event | Named event clocks, supported order constraints/risk reductions, costs and funding | Generic accounts are gross-cross/netting, not isolated collateral or simultaneous long/short inventory |
|
|
316
|
+
| Linear vectorized / portfolio | CLOSE targets, quantity constraints, costs/funding and executed-buffer attribution | Other generic fill clocks/partial-fill policies and isolated/hedging accounts are explicitly rejected |
|
|
317
|
+
| Options | Capital-matched opening wallet, reporting currency/explicit constant FX, option execution/margin and authoritative applied fees | Generic compatibility defaults can be inactive; changed generic controls fail rather than replacing option authorities; margin approximations are not venue-exact |
|
|
318
|
+
|
|
319
|
+
Clocks, funding intervals/events, fee denomination/timing and configuration
|
|
320
|
+
precedence retain their individual contracts, not one interchangeable model.
|
|
321
|
+
Read the full [supported / inactive-default / rejected matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md),
|
|
322
|
+
[account qualification](docs/portfolio_review/ACC01_REPORT.md) and
|
|
323
|
+
[API compatibility audit](docs/mode5/M5_12_PREPARATION.md#endpoint-compatibility).
|
|
324
|
+
Historical accounting results and benchmarks remain historical, not current
|
|
325
|
+
artifact certification.
|
|
326
|
+
|
|
327
|
+
### Diagnostics And Opt-In Calibration
|
|
328
|
+
|
|
329
|
+
Shared [alpha diagnostics](docs/diagnostics/SHARED_ALPHA_DIAGNOSTICS.md) expose
|
|
330
|
+
coverage, parameter geometry/branches, activity and source-backed sensitivity,
|
|
331
|
+
local/regime/factor evidence with explicit missing support. They can precede
|
|
332
|
+
any WFO-mode choice and require neither meta nor a new financial engine.
|
|
333
|
+
Mode 4 [fold/meta reports](docs/diagnostics/REPORTING_COVERAGE_AND_HANDOFF.md)
|
|
334
|
+
separate R/Q/IS, matched cohorts and native/proposed/actually applied decisions;
|
|
335
|
+
they read original observations without rerunning accounts or fitting a model.
|
|
336
|
+
|
|
337
|
+
Diagnostics-first [Mode 5 calibration](docs/mode5/PUBLIC_CALIBRATION_V1.md)
|
|
338
|
+
freezes the objective, coefficients/reference, quality/support gates and
|
|
339
|
+
selector before search, then selects **one static parameter dict**. Explicit
|
|
340
|
+
selectors are `full_dro_cvar`, `full_sam_basin` and
|
|
341
|
+
`full_pareto_chebyshev`; SAM needs registered local probes, Pareto frozen
|
|
342
|
+
preferences. Utility, raw Sharpe and PSR are distinct, not interchangeable
|
|
343
|
+
objectives. `NO_SELECTION` retains exclusions rather than inventing a winner.
|
|
344
|
+
Reset-environment and continuous-account providers retain different contracts;
|
|
345
|
+
annual/regime views of one continuous account are dependent descriptions,
|
|
346
|
+
not independently optimized dicts or independent OOS. Annual positivity is not
|
|
347
|
+
silently substituted for the registered objective.
|
|
348
|
+
|
|
349
|
+
Continuous-account [winner qualification](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md)
|
|
350
|
+
joins the exact selected dict/formula/components to whole/annual/regime risk,
|
|
351
|
+
activity/costs, runner-up/baseline trade-offs and exact-winner probe/stress
|
|
352
|
+
support. State labels and evidence need their own source/rights witnesses;
|
|
353
|
+
the reader does not fit regimes, run missing stress or infer fills/campaigns
|
|
354
|
+
from position changes. Missing evidence stays unavailable, not PASS or zero.
|
|
355
|
+
|
|
356
|
+
Cross-mode assistance is an explicit researcher choice: reviewed donor
|
|
357
|
+
coordinates consume the destination budget and are rescored under its current
|
|
358
|
+
contract, without importing old scores, model state or account paths.
|
|
359
|
+
Full-development evidence cannot be backdated into a Mode 4 prefix. There is
|
|
360
|
+
no automatic router, adaptive-selector promotion or universal economic claim;
|
|
361
|
+
observed improvements, trade-offs and inconclusive findings keep their
|
|
362
|
+
registered alpha/window/objective/comparison scope.
|
|
363
|
+
|
|
180
364
|
## Event-Driven Facade
|
|
181
365
|
|
|
182
366
|
New order-sensitive integrations should use `event_driven(...)`. Its three
|
|
@@ -496,17 +680,18 @@ compatibility callback fell from **5.477 s** (**18,259 bars/s**) to **2.430 s**
|
|
|
496
680
|
(**41,145 bars/s**): median paired ratio **0.4473** and CI95
|
|
497
681
|
`[0.4411, 0.4622]`. Both retain the public full-audit result and exact
|
|
498
682
|
accounting/trace parity; isolated peak RSS stays effectively flat around
|
|
499
|
-
**305 MiB**. These are
|
|
683
|
+
**305 MiB**. These are historical NEXT-01 source-tree B1-to-B2 measurements, not a
|
|
500
684
|
published-release comparison, a generic WFO claim, or a Rust decision-callback
|
|
501
685
|
claim. Read the [NEXT-01 evidence](docs/performance/next01_reactive_public_runtime.md).
|
|
502
686
|
|
|
503
|
-
Phase 77.3 records
|
|
687
|
+
Phase 77.3 records historical candidate reactive closure separately from the
|
|
504
688
|
released table above. On its matched 10,000-bar prepared scalar fixture, R1,
|
|
505
689
|
R2, and R3 score-only runs measured `20.077 ms`, `13.588 ms`, and `20.949 ms`
|
|
506
690
|
(`498.1k`, `736.0k`, and `477.3k bars/s`). Its 2,000-bar W3 fixture with eight
|
|
507
691
|
candidates measured `196.556 ms` sequential and `226.748 ms` for the distinct
|
|
508
692
|
R3B schedule (`110.5k` and `105.4k` candidate-fold visits/s). These are
|
|
509
|
-
development evidence on
|
|
693
|
+
development evidence on its recorded source (`db39959`), not current ACC-01
|
|
694
|
+
qualification or a `v1.1.0` release claim,
|
|
510
695
|
not a comparison between different sampling schedules, and not a promise for
|
|
511
696
|
arbitrary Python callback compute. The artifact also proves active Rust
|
|
512
697
|
deadline/cancellation behavior and cross-route parity controls:
|
|
@@ -524,10 +709,11 @@ fold tables, selected parameters, segment equity, fees, funding, positions and
|
|
|
524
709
|
strategy fingerprints match the compatibility path. See the
|
|
525
710
|
[PERF-09 evidence](docs/performance/perf_09_reactive_boundary.md).
|
|
526
711
|
|
|
527
|
-
The local Linux CPython candidate-pair gate
|
|
712
|
+
The historical local Linux CPython candidate-pair gate passed source-hash parity,
|
|
528
713
|
isolated core/native install, direct native-target smoke, and source-tree import
|
|
529
|
-
blocking
|
|
530
|
-
|
|
714
|
+
blocking on its recorded bytes. Current final-source artifact certification is
|
|
715
|
+
M5-12 work, followed by separately approved remote/public gates. Neither those
|
|
716
|
+
historical timings nor the old candidate-pair PASS qualify current ACC-01 artifacts.
|
|
531
717
|
|
|
532
718
|
The direct target rows are intentionally split. The narrow typed Rust score
|
|
533
719
|
is slower than the frozen Numba pure kernel on this fixture, while the explicit
|
|
@@ -654,6 +840,16 @@ Start with the [documentation map](docs/README.md).
|
|
|
654
840
|
| Margin, buying power, and liquidation | [Margin and leverage](docs/margin_leverage.md) |
|
|
655
841
|
| Causal WFO schedules and claims | [Causal walk-forward](docs/walkforward_causal.md) |
|
|
656
842
|
| WFO methodology | [Walk-forward methodology](methodology/walk_forward.md) |
|
|
843
|
+
| Causal meta off/shadow/active, admitted routes and nested scalar Mode 1 | [QMS public integration](docs/meta_selection/INTEGRATION.md), [route matrix](docs/meta_selection/CURRENT_ROUTE_REVIEW.md), [nested Mode 1](docs/meta_selection/NESTED_MODE1.md) |
|
|
844
|
+
| Prepared meta parity and portable decision/model handoff | [QMS-06 capability/report](docs/meta_selection/QMS06_REPORT.md), [host consumer](docs/meta_selection/HANDOFF.md) (historical qualification scope retained) |
|
|
845
|
+
| QMS usage, sampler/meta policy, history and migration | [QMS user guide](docs/meta_selection/USAGE.md), [qualification](docs/meta_selection/QUALIFICATION.md), [complete cases](examples/wfo_meta_contract.py) |
|
|
846
|
+
| Exact owned sampler checkpoints, with no automatic WFO resume | [Continuation contract](docs/meta_selection/EXACT_CONTINUATION.md), [four-recipe example](examples/optimization_exact_continuation.py), [local report](docs/meta_selection/QMSC04_REPORT.md) |
|
|
847
|
+
| Optional sampler-space assessment and caller overrides, independent of meta | [Sampler-space helper](docs/meta_selection/SAMPLER_SPACE_HELPER.md), [pct-equity example](examples/wfo_sampler_space.py) |
|
|
848
|
+
| Diagnostics-first Mode 5 with sealed recipes, shared samplers and original selected-account audit | [Opt-in calibration](docs/mode5/PUBLIC_CALIBRATION_V1.md), [local qualification and matched timings](docs/mode5/M5_10_PUBLIC_RUNTIME_REPORT.md), [optional example](examples/mode5_calibration_optin.py) (not independent OOS) |
|
|
849
|
+
| Shared alpha diagnostics and cold Mode 4/5 decision reports | [Pre-search contract](docs/diagnostics/PRESEARCH_RESEARCHER_REPORT.md), [endpoint/result API](docs/diagnostics/FOLD_DECISION_REPORTS.md), [coverage and handoff](docs/diagnostics/REPORTING_COVERAGE_AND_HANDOFF.md) (explicit permissions; no automatic recipe choice or financial replay) |
|
|
850
|
+
| Mode 5 exact-winner qualification and explicit cross-mode donors | [Winner/account/state/probe/stress report and coordinate-only handoff](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md), [public synthetic example](examples/mode5_cross_mode_qualification.py) (researcher opt-in; unchanged defaults; not a universal superiority claim) |
|
|
851
|
+
| Scalar sizing meta, actual ETH R/Q and repaired liquidation metric compatibility | [E03 assessment](docs/meta_selection/QMSE03_REPORT.md), [G01 repair](docs/meta_selection/QMSE03_G01_CLOSURE.md), [scalar example](examples/wfo_meta_scalar.py) (no economic promotion) |
|
|
852
|
+
| Intrabar fixed-notional sizing, signal timing and zero-fill diagnostic | [Sizing contract](docs/fast_intrabar.md#fixed-notional-units-and-zero-fill-diagnostics), [public BTC/ETH/SOL-like reproduction](examples/intrabar_bracket_diagnostic.py) |
|
|
657
853
|
| Public scalar WFO prepared-native scorer, W0/W1/W2, and fallback matrix | [Public prepared-native WFO scoring](docs/native_prepared_wfo_public.md) |
|
|
658
854
|
| Fresh cache-cold ordinary/reactive WFO performance, parity, and supported-mode boundaries | [NEXT-02 WFO closure](docs/performance/next02_fresh_wfo_reactive_wfo.md) |
|
|
659
855
|
| Exact run-local WFO candidate-analysis reuse and rollback | [PERF-05 WFO evaluation reuse](docs/performance/perf_05_wfo_evaluation_reuse.md) |
|
|
@@ -665,6 +861,8 @@ Start with the [documentation map](docs/README.md).
|
|
|
665
861
|
| Platform wheel matrix and route-level A5 status | [Native productization and A5](docs/native_productization_a5.md) |
|
|
666
862
|
| Direct Rust target timing and target kinds | [Direct Target Execution Clock](docs/contracts/v1_1_target_execution_clock.md) |
|
|
667
863
|
| Portfolio modes and migration | [Portfolio Engine V3](docs/portfolio_engine_v3.md) |
|
|
864
|
+
| Current ACC-01 account/configuration support, intentional errors and migration | [Effective configuration matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md), [local qualification](docs/portfolio_review/ACC01_REPORT.md) |
|
|
865
|
+
| Completed-result metric populations, units, N/A and drawdown episodes | [Reporting V1 usage](docs/metrics/PUBLIC_REPORTING.md), [metric contract](docs/metrics/REPORTING_CONTRACT_V1.md) |
|
|
668
866
|
| Pair and basket packages | [Pair and basket guide](docs/pair_basket_guide.md) |
|
|
669
867
|
| Nautilus validation and bundles | [Nautilus backend](docs/nautilus_backend.md) |
|
|
670
868
|
| Reproduce benchmark evidence | [Benchmarking governance](docs/performance/benchmarking.md) |
|