asrquant 1.0.0rc3__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.
- asrquant-1.0.0rc3/CHANGELOG.md +72 -0
- asrquant-1.0.0rc3/CITATION.cff +28 -0
- asrquant-1.0.0rc3/CODE_OF_CONDUCT.md +5 -0
- asrquant-1.0.0rc3/CONTRIBUTING.md +32 -0
- asrquant-1.0.0rc3/GO_LIVE_BLOCKERS.md +27 -0
- asrquant-1.0.0rc3/LICENSE +21 -0
- asrquant-1.0.0rc3/MANIFEST.in +11 -0
- asrquant-1.0.0rc3/MONTE_CARLO_AND_MODELLING_AUDIT_v1.0.0rc3.md +82 -0
- asrquant-1.0.0rc3/PKG-INFO +3848 -0
- asrquant-1.0.0rc3/PRODUCTION_READINESS_CHECKLIST.md +69 -0
- asrquant-1.0.0rc3/README.md +3771 -0
- asrquant-1.0.0rc3/RELEASE_CHECKLIST.md +38 -0
- asrquant-1.0.0rc3/RELEASE_NOTES.md +39 -0
- asrquant-1.0.0rc3/SECURITY.md +74 -0
- asrquant-1.0.0rc3/THREAT_MODEL.md +79 -0
- asrquant-1.0.0rc3/VALIDATION_v1.0.0rc3.txt +107 -0
- asrquant-1.0.0rc3/benchmarks/baseline_metrics.csv +20 -0
- asrquant-1.0.0rc3/benchmarks/baseline_timeseries.csv +1501 -0
- asrquant-1.0.0rc3/benchmarks/binomial_validation.csv +8 -0
- asrquant-1.0.0rc3/benchmarks/extended_validation.py +108 -0
- asrquant-1.0.0rc3/benchmarks/fragile_implementation_audit.csv +7 -0
- asrquant-1.0.0rc3/benchmarks/fragile_implementation_audit_diagnostics.csv +8 -0
- asrquant-1.0.0rc3/benchmarks/implementation_audit.csv +25 -0
- asrquant-1.0.0rc3/benchmarks/implementation_audit_diagnostics.csv +8 -0
- asrquant-1.0.0rc3/benchmarks/martingale_validation.csv +9 -0
- asrquant-1.0.0rc3/benchmarks/monte_carlo_validation.csv +6 -0
- asrquant-1.0.0rc3/benchmarks/parameter_landscape.csv +17 -0
- asrquant-1.0.0rc3/benchmarks/regression_validation.csv +4 -0
- asrquant-1.0.0rc3/benchmarks/run_benchmarks.py +88 -0
- asrquant-1.0.0rc3/benchmarks/runtime_scaling.csv +6 -0
- asrquant-1.0.0rc3/deployment/evidence.template.json +31 -0
- asrquant-1.0.0rc3/deployment/risk_policy.example.json +25 -0
- asrquant-1.0.0rc3/docs/algorithmic_trading.md +78 -0
- asrquant-1.0.0rc3/docs/api_catalog.md +84 -0
- asrquant-1.0.0rc3/docs/approximation_and_sensitivities.md +101 -0
- asrquant-1.0.0rc3/docs/data_sources.md +119 -0
- asrquant-1.0.0rc3/docs/deployment.md +56 -0
- asrquant-1.0.0rc3/docs/live_trading.md +160 -0
- asrquant-1.0.0rc3/docs/methodology.md +69 -0
- asrquant-1.0.0rc3/docs/model_catalog.md +144 -0
- asrquant-1.0.0rc3/docs/monte_carlo_universal.md +133 -0
- asrquant-1.0.0rc3/docs/one_import_api.md +88 -0
- asrquant-1.0.0rc3/docs/operations_runbook.md +81 -0
- asrquant-1.0.0rc3/docs/parameter_surfaces.md +163 -0
- asrquant-1.0.0rc3/docs/production_readiness.md +145 -0
- asrquant-1.0.0rc3/docs/quickstart.md +113 -0
- asrquant-1.0.0rc3/docs/regulatory_controls.md +53 -0
- asrquant-1.0.0rc3/docs/release_checklist.md +38 -0
- asrquant-1.0.0rc3/docs/research_workflow.md +340 -0
- asrquant-1.0.0rc3/docs/validation.md +23 -0
- asrquant-1.0.0rc3/docs/visualization_catalog.md +37 -0
- asrquant-1.0.0rc3/examples/animated_parameter_surface.py +50 -0
- asrquant-1.0.0rc3/examples/approximation_surfaces.py +31 -0
- asrquant-1.0.0rc3/examples/csv_end_to_end.py +15 -0
- asrquant-1.0.0rc3/examples/custom_strategy.py +14 -0
- asrquant-1.0.0rc3/examples/derivative_models.py +14 -0
- asrquant-1.0.0rc3/examples/hedging_parameter_animation.py +92 -0
- asrquant-1.0.0rc3/examples/hypothesis_to_paper_trading.py +42 -0
- asrquant-1.0.0rc3/examples/implementation_audit.py +15 -0
- asrquant-1.0.0rc3/examples/literature_to_decision.py +22 -0
- asrquant-1.0.0rc3/examples/martingale_diagnostics.py +13 -0
- asrquant-1.0.0rc3/examples/ml_walk_forward.py +24 -0
- asrquant-1.0.0rc3/examples/multidimensional_parameter_explorer.py +58 -0
- asrquant-1.0.0rc3/examples/options_surface.py +11 -0
- asrquant-1.0.0rc3/examples/parameter_surface_compact.py +23 -0
- asrquant-1.0.0rc3/examples/production_live_guarded.py +56 -0
- asrquant-1.0.0rc3/examples/provider_data.py +14 -0
- asrquant-1.0.0rc3/examples/quickstart.py +9 -0
- asrquant-1.0.0rc3/examples/regression_diagnostics.py +9 -0
- asrquant-1.0.0rc3/examples/regression_econometrics.py +19 -0
- asrquant-1.0.0rc3/examples/sample_prices.csv +301 -0
- asrquant-1.0.0rc3/examples/stochastic_monte_carlo.py +34 -0
- asrquant-1.0.0rc3/examples/universal_monte_carlo.py +47 -0
- asrquant-1.0.0rc3/paper/ASRQuant_paper.pdf +0 -0
- asrquant-1.0.0rc3/paper/figures/asrquant_architecture_v040.png +0 -0
- asrquant-1.0.0rc3/paper/figures/dashboard.png +0 -0
- asrquant-1.0.0rc3/paper/figures/extended_validation_v030.png +0 -0
- asrquant-1.0.0rc3/paper/figures/fragile_implementation_audit.png +0 -0
- asrquant-1.0.0rc3/paper/figures/implementation_audit.png +0 -0
- asrquant-1.0.0rc3/paper/figures/multidimensional_surface_v030.png +0 -0
- asrquant-1.0.0rc3/paper/figures/parameter_surface.png +0 -0
- asrquant-1.0.0rc3/paper/figures/volatility_surface.png +0 -0
- asrquant-1.0.0rc3/paper/main.tex +1365 -0
- asrquant-1.0.0rc3/pyproject.toml +96 -0
- asrquant-1.0.0rc3/requirements/quality.txt +5 -0
- asrquant-1.0.0rc3/requirements/runtime.txt +14 -0
- asrquant-1.0.0rc3/requirements/security.txt +5 -0
- asrquant-1.0.0rc3/scripts/bootstrap_repository.sh +27 -0
- asrquant-1.0.0rc3/scripts/check_release.py +61 -0
- asrquant-1.0.0rc3/scripts/check_secret_scan.py +28 -0
- asrquant-1.0.0rc3/scripts/test_all.py +78 -0
- asrquant-1.0.0rc3/setup.cfg +4 -0
- asrquant-1.0.0rc3/setup.py +3 -0
- asrquant-1.0.0rc3/src/asrquant/__init__.py +229 -0
- asrquant-1.0.0rc3/src/asrquant/__main__.py +3 -0
- asrquant-1.0.0rc3/src/asrquant/api.py +748 -0
- asrquant-1.0.0rc3/src/asrquant/approximation.py +294 -0
- asrquant-1.0.0rc3/src/asrquant/audit.py +72 -0
- asrquant-1.0.0rc3/src/asrquant/audit_store.py +439 -0
- asrquant-1.0.0rc3/src/asrquant/backtest.py +194 -0
- asrquant-1.0.0rc3/src/asrquant/cli.py +394 -0
- asrquant-1.0.0rc3/src/asrquant/config.py +117 -0
- asrquant-1.0.0rc3/src/asrquant/data.py +192 -0
- asrquant-1.0.0rc3/src/asrquant/derivatives.py +305 -0
- asrquant-1.0.0rc3/src/asrquant/easy.py +183 -0
- asrquant-1.0.0rc3/src/asrquant/fixed_income.py +86 -0
- asrquant-1.0.0rc3/src/asrquant/literature.py +536 -0
- asrquant-1.0.0rc3/src/asrquant/live.py +897 -0
- asrquant-1.0.0rc3/src/asrquant/machine_learning.py +178 -0
- asrquant-1.0.0rc3/src/asrquant/martingales.py +74 -0
- asrquant-1.0.0rc3/src/asrquant/math.py +88 -0
- asrquant-1.0.0rc3/src/asrquant/metrics.py +323 -0
- asrquant-1.0.0rc3/src/asrquant/models.py +239 -0
- asrquant-1.0.0rc3/src/asrquant/monte_carlo.py +502 -0
- asrquant-1.0.0rc3/src/asrquant/optimization.py +223 -0
- asrquant-1.0.0rc3/src/asrquant/production.py +475 -0
- asrquant-1.0.0rc3/src/asrquant/provenance.py +47 -0
- asrquant-1.0.0rc3/src/asrquant/providers.py +282 -0
- asrquant-1.0.0rc3/src/asrquant/report.py +68 -0
- asrquant-1.0.0rc3/src/asrquant/research.py +81 -0
- asrquant-1.0.0rc3/src/asrquant/simulation.py +419 -0
- asrquant-1.0.0rc3/src/asrquant/statistics.py +375 -0
- asrquant-1.0.0rc3/src/asrquant/strategies.py +177 -0
- asrquant-1.0.0rc3/src/asrquant/surfaces.py +803 -0
- asrquant-1.0.0rc3/src/asrquant/trading.py +363 -0
- asrquant-1.0.0rc3/src/asrquant/validation.py +99 -0
- asrquant-1.0.0rc3/src/asrquant/version.py +2 -0
- asrquant-1.0.0rc3/src/asrquant/viz/__init__.py +16 -0
- asrquant-1.0.0rc3/src/asrquant/viz/base.py +58 -0
- asrquant-1.0.0rc3/src/asrquant/viz/derivatives.py +182 -0
- asrquant-1.0.0rc3/src/asrquant/viz/general.py +204 -0
- asrquant-1.0.0rc3/src/asrquant/viz/market.py +306 -0
- asrquant-1.0.0rc3/src/asrquant/viz/microstructure.py +137 -0
- asrquant-1.0.0rc3/src/asrquant/viz/ml.py +159 -0
- asrquant-1.0.0rc3/src/asrquant/viz/performance.py +171 -0
- asrquant-1.0.0rc3/src/asrquant/viz/portfolio.py +151 -0
- asrquant-1.0.0rc3/src/asrquant/viz/regression.py +153 -0
- asrquant-1.0.0rc3/src/asrquant/viz/risk.py +182 -0
- asrquant-1.0.0rc3/src/asrquant/viz/simulation.py +135 -0
- asrquant-1.0.0rc3/src/asrquant/volatility.py +70 -0
- asrquant-1.0.0rc3/src/asrquant/workflow.py +1074 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/PKG-INFO +3848 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/SOURCES.txt +163 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/dependency_links.txt +1 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/entry_points.txt +2 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/requires.txt +53 -0
- asrquant-1.0.0rc3/src/asrquant.egg-info/top_level.txt +1 -0
- asrquant-1.0.0rc3/tests/conftest.py +28 -0
- asrquant-1.0.0rc3/tests/test_approximation_rc2.py +94 -0
- asrquant-1.0.0rc3/tests/test_audit_validation.py +28 -0
- asrquant-1.0.0rc3/tests/test_backtest.py +47 -0
- asrquant-1.0.0rc3/tests/test_config_data.py +34 -0
- asrquant-1.0.0rc3/tests/test_derivatives_optimization.py +34 -0
- asrquant-1.0.0rc3/tests/test_metrics.py +46 -0
- asrquant-1.0.0rc3/tests/test_monte_carlo_universal_rc2.py +129 -0
- asrquant-1.0.0rc3/tests/test_one_import_api_v040.py +53 -0
- asrquant-1.0.0rc3/tests/test_production_readiness_v1.py +794 -0
- asrquant-1.0.0rc3/tests/test_research_pipeline_v050.py +151 -0
- asrquant-1.0.0rc3/tests/test_statistics.py +34 -0
- asrquant-1.0.0rc3/tests/test_surface_explorer_v030.py +110 -0
- asrquant-1.0.0rc3/tests/test_surfaces.py +74 -0
- asrquant-1.0.0rc3/tests/test_surfaces_parameterized.py +71 -0
- asrquant-1.0.0rc3/tests/test_v020.py +241 -0
- asrquant-1.0.0rc3/tests/test_visualizations.py +52 -0
- asrquant-1.0.0rc3/tests/test_visualizations_extended.py +79 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.0rc3 - 2026-08-01
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Restored compatibility across Matplotlib 3.8–3.11+ with a boxplot keyword fallback for `tick_labels` and legacy `labels`.
|
|
8
|
+
- Explicitly load the `pytest-cov` plugin when global pytest plugin autoload is disabled.
|
|
9
|
+
- Audit only shipped runtime dependencies instead of mixing development tooling into the blocking dependency gate, and generate the SBOM from an isolated installed-runtime environment.
|
|
10
|
+
- Removed unused imports and aligned the Ruff profile with correctness-oriented rules.
|
|
11
|
+
- Included the rc2 Monte Carlo and approximation tests in isolated CI domain groups.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Added bounded major-version ranges for runtime dependencies to reduce accidental breaking upgrades.
|
|
16
|
+
- Added `requirements/runtime.txt` as the canonical runtime dependency-audit input.
|
|
17
|
+
|
|
18
|
+
## 1.0.0rc2 - 2026-08-01
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Universal Monte Carlo engine implementing generate -> transform -> reduce for arbitrary scenario generators and pathwise quantities.
|
|
23
|
+
- Generic expectation, probability, variance, standard deviation, standard error, confidence interval, quantile, VaR and Expected Shortfall estimators.
|
|
24
|
+
- Inverse-transform sampling, normal sampling, Cholesky-correlated Gaussian scenarios and generic scalar/vector Euler-Maruyama simulation.
|
|
25
|
+
- Path-dependent hedging loss and proportional transaction-cost utilities.
|
|
26
|
+
- Static and animated Monte Carlo parameter surfaces.
|
|
27
|
+
- Linear and bilinear interpolation, cubic splines, Gaussian kernel regression, RBF interpolation and Gaussian-process surrogates.
|
|
28
|
+
- Controlled extrapolation, response-surface linear/polynomial/ridge/lasso regression, RMSE/MAE/R-squared validation, gradients and Hessians.
|
|
29
|
+
- Explicit AR(p) interface and high-level `QuantLab` wrappers for universal Monte Carlo, Monte Carlo surfaces, approximation, AR and GARCH.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- `SurfaceResult` now exposes first- and second-order sensitivity surfaces through `gradient()` and `hessian()`.
|
|
34
|
+
- Release candidate advanced from rc1 to rc2 after filling the generic simulation and approximation gaps identified in the scientific audit.
|
|
35
|
+
|
|
36
|
+
## 1.0.0rc1 - 2026-08-01
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- Production-readiness evidence gate and signed, expiring deployment certificates.
|
|
41
|
+
- Guarded Alpaca paper/live broker adapter.
|
|
42
|
+
- Pre-trade live risk engine, persistent kill switch, reconciliation and durable audit store.
|
|
43
|
+
- Operations, security, threat-model and regulatory-control documentation.
|
|
44
|
+
- 62 production-hardening tests, bringing the total collected suite to 126 tests.
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
|
|
48
|
+
- Version moved from research alpha 0.5.0 to production-hardening release candidate 1.0.0rc1.
|
|
49
|
+
- Security policy and CI/release expectations expanded for live-capable deployments.
|
|
50
|
+
|
|
51
|
+
## 0.5.0 - 2026-08-01
|
|
52
|
+
|
|
53
|
+
- Added PDF paper ingestion with page-level provenance and corpus fingerprints.
|
|
54
|
+
- Added source-linked hypothesis discovery and corpus-relative novelty labels.
|
|
55
|
+
- Added the complete `ResearchProject` workflow from hypothesis through data, features, signals, econometric testing, backtesting, robustness, decisions, manifests, and reports.
|
|
56
|
+
- Added provider-assisted data-plan downloads and leakage-aware feature specifications.
|
|
57
|
+
- Added order-level paper trading, broker-neutral interfaces, order states, partial fills, cash and position accounting, and risk controls.
|
|
58
|
+
- Added CLI `papers` and `research` commands.
|
|
59
|
+
- Added literature-to-decision and algorithmic-trading guides and examples.
|
|
60
|
+
- Expanded the automated suite to 64 tests.
|
|
61
|
+
|
|
62
|
+
## 0.1.0 - 2026-07-31
|
|
63
|
+
|
|
64
|
+
Initial research release.
|
|
65
|
+
|
|
66
|
+
- Added specification-first multi-asset backtesting.
|
|
67
|
+
- Added transparent linear, nonlinear, and borrow costs.
|
|
68
|
+
- Added implementation-contract audit.
|
|
69
|
+
- Added performance, risk, regression, validation, portfolio, derivatives, and simulation modules.
|
|
70
|
+
- Added 69 user-facing visualizations.
|
|
71
|
+
- Added self-contained HTML reports and reproducibility manifests.
|
|
72
|
+
- Added 26 automated tests, examples, benchmarks, and a 24-page paper.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use ASRQuant in research, please cite the software and accompanying paper."
|
|
3
|
+
title: "ASRQuant: From Scientific Literature to Auditable Quantitative Decisions and Algorithmic Trading"
|
|
4
|
+
type: software
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: "TOURE"
|
|
7
|
+
given-names: "Alpha Kabinet"
|
|
8
|
+
- name: "Alpha Stochastic Research"
|
|
9
|
+
version: 1.0.0rc3
|
|
10
|
+
date-released: 2026-08-01
|
|
11
|
+
license: MIT
|
|
12
|
+
repository-code: "https://github.com/Alpha-Stochastic-Research/asrquant"
|
|
13
|
+
url: "https://www.asr-lab.online"
|
|
14
|
+
keywords:
|
|
15
|
+
- scientific literature
|
|
16
|
+
- economic hypotheses
|
|
17
|
+
- algorithmic trading
|
|
18
|
+
- paper trading
|
|
19
|
+
- quantitative finance
|
|
20
|
+
- stochastic processes
|
|
21
|
+
- Monte Carlo
|
|
22
|
+
- derivatives
|
|
23
|
+
- econometrics
|
|
24
|
+
- machine learning
|
|
25
|
+
- backtesting
|
|
26
|
+
- visualization
|
|
27
|
+
- implementation risk
|
|
28
|
+
- reproducibility
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
Participants must communicate professionally, critique ideas rather than people, disclose conflicts of interest, respect licenses and data rights, and avoid presenting unverifiable investment claims as scientific facts. Harassment, discrimination, plagiarism, fabricated results, and manipulation of tests or benchmarks are not accepted.
|
|
4
|
+
|
|
5
|
+
Reports may be sent to research@asr-lab.online.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Contributing to ASRQuant
|
|
2
|
+
|
|
3
|
+
ASRQuant uses pull requests, automated tests, and explicit scientific review.
|
|
4
|
+
|
|
5
|
+
## Development setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
python -m venv .venv
|
|
9
|
+
source .venv/bin/activate
|
|
10
|
+
pip install -e ".[dev]"
|
|
11
|
+
pytest
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Requirements for a contribution
|
|
15
|
+
|
|
16
|
+
1. State the quantitative-finance use case and the formula or convention implemented.
|
|
17
|
+
2. Document timestamp and execution semantics where relevant.
|
|
18
|
+
3. Add deterministic tests, including at least one boundary case.
|
|
19
|
+
4. Return pandas objects for calculations and figure objects for plots.
|
|
20
|
+
5. Avoid implicit forward filling or silent data coercion.
|
|
21
|
+
6. Update the API catalog and changelog.
|
|
22
|
+
7. Do not claim profitability from package examples.
|
|
23
|
+
|
|
24
|
+
## Scientific changes
|
|
25
|
+
|
|
26
|
+
Changes to metrics, costs, timing, optimization, or statistical tests must include:
|
|
27
|
+
|
|
28
|
+
- mathematical definition;
|
|
29
|
+
- source or derivation;
|
|
30
|
+
- units and annualization convention;
|
|
31
|
+
- numerical test against a known result;
|
|
32
|
+
- limitations and failure modes.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ASRQuant 1.0 promotion and go-live blockers
|
|
2
|
+
|
|
3
|
+
The software boundary is implemented in `1.0.0rc3`. The following evidence cannot be generated honestly without the target GitHub repository, broker account, infrastructure, strategy and accountable reviewers.
|
|
4
|
+
|
|
5
|
+
## Required before tagging stable `v1.0.0`
|
|
6
|
+
|
|
7
|
+
1. Protected-branch CI passes on Linux, macOS and Windows for Python 3.10–3.13.
|
|
8
|
+
2. Ruff, mypy, CodeQL, Bandit, dependency audit and secret scan pass with no unresolved critical finding.
|
|
9
|
+
3. Full resolved SBOM and GitHub artifact attestations are attached.
|
|
10
|
+
4. A second independent runner reproduces the release artifacts.
|
|
11
|
+
5. Independent model validation signs the exact strategy version and limits.
|
|
12
|
+
6. Legal/compliance reviews the jurisdiction, entity, broker, instruments, venues and automation obligations.
|
|
13
|
+
7. Market-data and research-data licences permit the intended use.
|
|
14
|
+
|
|
15
|
+
## Required before real capital
|
|
16
|
+
|
|
17
|
+
1. At least 30 broker-paper days and 500 representative orders.
|
|
18
|
+
2. Rejects, cancellations, partial fills, market closures, reconnects and ambiguous timeouts tested.
|
|
19
|
+
3. Zero unresolved reconciliation mismatch and zero unresolved critical incident.
|
|
20
|
+
4. Monitoring and alert delivery exercised with named on-call operators.
|
|
21
|
+
5. Backup/restore, disaster recovery and rollback drills completed.
|
|
22
|
+
6. Live-data shadow mode agrees with paper execution within approved tolerances.
|
|
23
|
+
7. A limited-capital canary is approved by risk and operations owners.
|
|
24
|
+
8. `deployment/evidence.release.json` passes `asrquant readiness`.
|
|
25
|
+
9. A short-lived `DeploymentCertificate` is issued for the exact release, account, risk policy, environment and capital.
|
|
26
|
+
|
|
27
|
+
Until these conditions are evidenced, ASRQuant deliberately refuses to treat the deployment as ready.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alpha Stochastic Research and Alpha Kabinet TOURE
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
include README.md MONTE_CARLO_AND_MODELLING_AUDIT_v1.0.0rc3.md LICENSE CITATION.cff CHANGELOG.md CONTRIBUTING.md CODE_OF_CONDUCT.md SECURITY.md RELEASE_NOTES.md RELEASE_CHECKLIST.md PRODUCTION_READINESS_CHECKLIST.md THREAT_MODEL.md GO_LIVE_BLOCKERS.md VALIDATION_v1.0.0rc3.txt
|
|
2
|
+
recursive-include docs *.md
|
|
3
|
+
recursive-include deployment *.json
|
|
4
|
+
recursive-include examples *.py *.csv
|
|
5
|
+
recursive-include benchmarks *.py *.csv
|
|
6
|
+
recursive-include paper *.tex *.pdf *.png
|
|
7
|
+
recursive-include scripts *.py *.sh
|
|
8
|
+
recursive-include tests *.py
|
|
9
|
+
prune **/__pycache__
|
|
10
|
+
global-exclude *.py[cod]
|
|
11
|
+
recursive-include requirements *.txt
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# ASRQuant v1.0.0rc3 — Monte Carlo and modelling coverage audit
|
|
2
|
+
|
|
3
|
+
## Verdict
|
|
4
|
+
|
|
5
|
+
The previous v1.0.0rc1 already contained stochastic-process simulation, derivative Monte Carlo, empirical VaR/Expected Shortfall, regressions, bootstrap, GARCH, factor models, generic parameter surfaces and animations. It did **not** expose every item below as a reusable generic API.
|
|
6
|
+
|
|
7
|
+
Version v1.0.0rc3 fills those gaps. The complete automated suite contains 136 passing tests.
|
|
8
|
+
|
|
9
|
+
## Monte Carlo checklist
|
|
10
|
+
|
|
11
|
+
| Requested concept | v1.0.0rc3 implementation | Status |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| Generate scenarios, transform each scenario, reduce outcomes | `run_monte_carlo(generator, quantity, ...)` | Complete |
|
|
14
|
+
| Expectation/sample mean | estimator `mean` or `expectation` | Complete |
|
|
15
|
+
| Probability through an indicator | estimator `probability`; `event_probability` | Complete |
|
|
16
|
+
| Unbiased sample variance | `sample_variance`; `MonteCarloResult.variance` | Complete |
|
|
17
|
+
| Sample standard deviation | `MonteCarloResult.standard_deviation` | Complete |
|
|
18
|
+
| Monte Carlo standard error | `standard_error`; `MonteCarloResult.standard_error` | Complete |
|
|
19
|
+
| Confidence interval for the mean | `mean_confidence_interval`; result property | Complete |
|
|
20
|
+
| Empirical quantile | `empirical_quantile`; result method | Complete |
|
|
21
|
+
| VaR | `monte_carlo_value_at_risk`; result method | Complete |
|
|
22
|
+
| CVaR/Expected Shortfall | `monte_carlo_expected_shortfall`; result method | Complete |
|
|
23
|
+
| Uniform inverse-transform sampling | `uniform_inverse_transform` | Complete |
|
|
24
|
+
| Normal simulation | `normal_samples` | Complete |
|
|
25
|
+
| Correlated variables with Cholesky | `correlated_normal`; existing `correlated_gbm` | Complete |
|
|
26
|
+
| Generic Euler-Maruyama | `euler_maruyama` for scalar/vector states | Complete |
|
|
27
|
+
| Full path-dependent quantities | arbitrary `quantity(paths, ...)` | Complete |
|
|
28
|
+
| Proportional transaction costs | `proportional_transaction_cost` | Complete |
|
|
29
|
+
| Hedging-loss distribution | `hedging_loss` | Complete |
|
|
30
|
+
| Monte Carlo surface | `monte_carlo_parameter_surface` | Complete |
|
|
31
|
+
| Animated parameter surface | `animate_by` plus `SurfaceResult.animate/save_animation` | Complete |
|
|
32
|
+
| Custom reducer | user callable passed as `estimator` | Complete |
|
|
33
|
+
| Reproducible random scenarios | `random_state` throughout | Complete |
|
|
34
|
+
|
|
35
|
+
### Sign convention
|
|
36
|
+
|
|
37
|
+
The new Monte Carlo VaR and CVaR functions accept samples already expressed as **positive losses**. Existing `asrquant.metrics.value_at_risk` and `expected_shortfall` accept return series and convert the lower return tail into positive risk numbers. The two APIs are intentionally named separately at the package root to prevent silent sign errors.
|
|
38
|
+
|
|
39
|
+
## Approximation and modelling checklist
|
|
40
|
+
|
|
41
|
+
| Requested concept | v1.0.0rc3 implementation | Status |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| Linear interpolation | `linear_interpolation` | Complete |
|
|
44
|
+
| Bilinear interpolation | `bilinear_interpolation` | Complete |
|
|
45
|
+
| Linear regression | existing OLS and `response_regression(method="linear")` | Complete |
|
|
46
|
+
| Polynomial regression/surface | existing polynomial regression and response regression | Complete |
|
|
47
|
+
| Cubic splines | `cubic_spline` | Complete |
|
|
48
|
+
| Kernel regression | `kernel_regression` | Complete |
|
|
49
|
+
| RBF interpolation | `rbf_interpolation` | Complete |
|
|
50
|
+
| Gaussian process | `gaussian_process`, mean plus uncertainty | Complete |
|
|
51
|
+
| Ridge and Lasso | existing regularized regression plus response surfaces | Complete |
|
|
52
|
+
| Controlled extrapolation | rejected by default; explicit opt-in with warning | Complete |
|
|
53
|
+
| Gradient/sensitivities | callable and `SurfaceResult.gradient()` | Complete |
|
|
54
|
+
| Hessian/curvature | callable and `SurfaceResult.hessian()` | Complete |
|
|
55
|
+
| Bootstrap | existing moving-block and stationary bootstrap | Complete |
|
|
56
|
+
| RMSE, MAE, R-squared | `regression_metrics` and existing walk-forward ML | Complete |
|
|
57
|
+
| AR(p) | `autoregression_fit`; `QuantLab.autoregression` | Complete |
|
|
58
|
+
| ARIMA and VAR | existing `arima_fit`, `var_fit` | Complete |
|
|
59
|
+
| GARCH(1,1) and GARCH(p,q) | existing optional `garch_forecast`; `QuantLab.garch` | Complete, optional `arch` dependency |
|
|
60
|
+
| Factor model | existing `factor_regression` | Complete |
|
|
61
|
+
| Optimization | existing minimum variance, max Sharpe, ERC, HRP, Black-Litterman, etc. | Complete |
|
|
62
|
+
| Out-of-sample validation | existing walk-forward and purged validation | Complete |
|
|
63
|
+
|
|
64
|
+
## Surface and animation contract
|
|
65
|
+
|
|
66
|
+
Any scalar experiment can be represented as
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Z = f(theta_1, theta_2)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
and any additional selected parameters can define animation frames:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
Z = f(theta_1, theta_2 | theta_3, theta_4, ...).
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The experiment may return a scalar directly or a result object reduced through a metric selector. Outputs support 3D surfaces, heatmaps, contours, Plotly HTML, Matplotlib animation, GIF, MP4 and frame export, subject to the relevant local writer dependency for GIF/MP4.
|
|
79
|
+
|
|
80
|
+
## Important boundary
|
|
81
|
+
|
|
82
|
+
“Any surface” means any experiment that produces one finite scalar for each parameter combination. It does not mean that arbitrary discontinuous, invalid or computationally unbounded functions can be rendered without a finite grid, valid outputs and sufficient compute resources.
|