Skip to main content

Alpha Stochastic Research Open Science

Meta-package and ecosystem registry for ASR quantitative-finance libraries

Alpha Stochastic Research
Independent Quantitative Finance Research Laboratory


PyPI version Python versions Python CI License


Deep Hedging Deep Hedging Paper


Website GitHub Contact


Overview

asr-open-sc is the lightweight meta-package, package catalogue, and installation coordinator for the Alpha Stochastic Research (ASR) Python ecosystem.

The project does not duplicate the scientific implementation of every ASR library. Instead, it provides:

  • a stable registry of ASR distributions;
  • package names, import paths, versions, maturity statuses, repositories, PyPI pages, and research identifiers;
  • optional dependency groups for installing compatible ASR libraries;
  • a shared architectural policy for namespace-based and standalone ASR packages;
  • automated validation of registry metadata and ecosystem integrations.

The current release is:

asr-open-sc 0.3.3

Install the lightweight registry:

python -m pip install --upgrade asr-open-sc

Import it with:

import asr.open_sc as asr_sc

print(asr_sc.__version__)
asr_sc.print_ecosystem()

Expected version:

0.3.3

What is new in version 0.3.3

Version 0.3.3 formally integrates ASR Deep Hedging v0.2.0 into the ecosystem.

The release:

  • registers asr-deep-hedging as a published ASR package;
  • records its real Python import path, deep_hedging;
  • adds the hedging optional dependency group;
  • includes Deep Hedging in the all ecosystem installation;
  • adds package-version, PyPI, DOI, Python-requirement, and category metadata to the registry;
  • adds lookup and filtering utilities;
  • updates Bachelier from research-release to published;
  • synchronizes the package version across pyproject.toml, __init__.py, tests, citation metadata, and documentation;
  • fixes the invalid Dependabot configuration;
  • strengthens CI, packaging validation, clean-wheel testing, and PyPI publication checks;
  • corrects broken installation commands present in the previous README.

Distribution names and import paths

A PyPI distribution name and a Python import path are related, but they are not necessarily identical.

Registry package

Distribution: asr-open-sc
Import path:  asr.open_sc

Bachelier package

Distribution: asr-theory-of-speculation
Import path:  asr.models.bachelier

Tail-risk package

Distribution: asr-var-cvar-tail-risk
Import path:  asr.risk.tail

Deep Hedging package

Distribution: asr-deep-hedging
Import path:  deep_hedging

Deep Hedging intentionally uses a standalone top-level import package. asr-open-sc records the package exactly as it is distributed and does not create a fictitious asr.ml.deep_hedging compatibility layer.


Installation

Registry only

This is the smallest installation:

python -m pip install --upgrade asr-open-sc

It installs the registry without forcing installation of every scientific package.

Bachelier research package

python -m pip install "asr-open-sc[bachelier]"

Equivalent direct installation:

python -m pip install "asr-theory-of-speculation>=1.1.0,<2.0.0"

Import:

from asr.models import bachelier

Tail-risk package

python -m pip install "asr-open-sc[risk]"

Equivalent direct installation:

python -m pip install "asr-var-cvar-tail-risk>=1.0.0,<2.0.0"

Import:

from asr.risk.tail import TailRiskConfig

Deep Hedging package

Deep Hedging requires Python 3.11 or newer.

python -m pip install "asr-open-sc[hedging]"

Equivalent direct installation:

python -m pip install "asr-deep-hedging>=0.2.0,<0.3.0"

Import:

from deep_hedging import (
    Adam,
    TanhMLP,
    black_scholes_delta,
    evaluate_positions,
    simulate_gbm,
    train_step,
)

All activated ASR packages

On Python 3.11 or newer:

python -m pip install "asr-open-sc[all]"

The all extra currently includes:

asr-theory-of-speculation >=1.1.0,<2.0.0
asr-var-cvar-tail-risk    >=1.0.0,<2.0.0
asr-deep-hedging          >=0.2.0,<0.3.0

On Python 3.10, the base registry, Bachelier package, and tail-risk package remain supported. The Deep Hedging dependency is guarded by a Python-version marker because Deep Hedging requires Python 3.11+.

Development installation

git clone https://github.com/Alpha-Stochastic-Research/asr-open-sc.git
cd asr-open-sc

python -m venv .venv
source .venv/bin/activate

python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

Windows PowerShell:

python -m venv .venv
.venv\Scripts\Activate.ps1

python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

Quick start

Print the ecosystem

import asr.open_sc as asr_sc

print(asr_sc.__version__)
asr_sc.print_ecosystem()

List every registered package

from asr.open_sc import available_packages

for package in available_packages():
    print(package.name)
    print(package.import_path)
    print(package.version)
    print(package.status)
    print(package.repository)
    print(package.pypi_url)
    print(package.doi)
    print()

Find one package

from asr.open_sc import get_package

deep_hedging = get_package("asr-deep-hedging")

print(deep_hedging.version)
print(deep_hedging.import_path)
print(deep_hedging.status)

Expected values:

0.2.0
deep_hedging
published

Filter by status

from asr.open_sc import available_packages

published = available_packages(status="published")

for package in published:
    print(package.name, package.version)

Retrieve the status mapping

from asr.open_sc import package_status

print(package_status())

Retrieve only published packages

from asr.open_sc import published_packages

for package in published_packages():
    print(package.name)

Current ecosystem registry

Distribution Import path Version Status Python Category
asr-open-sc asr.open_sc 0.3.3 active >=3.10 Infrastructure
asr-theory-of-speculation asr.models.bachelier 1.1.0 published >=3.10 Financial mathematics
asr-var-cvar-tail-risk asr.risk.tail 1.0.0 published >=3.10 Quantitative risk
asr-deep-hedging deep_hedging 0.2.0 published >=3.11 Financial machine learning
asr-portfolio-optimization asr.portfolio.optimization — planned — Portfolio management
asr-hierarchical-risk-parity asr.portfolio.hrp — planned — Portfolio management
asr-agentic-trading-systems asr.agents.trading — planned — Financial AI

Registry status values

Status Meaning
planned The project is part of the research roadmap but has not been released.
development Implementation is active, but the public release contract is not complete.
research-release A research repository or pre-release artifact exists, but stable package integration is incomplete.
published A public Python distribution has been released and is registered for installation.
active Core ecosystem infrastructure is actively maintained.
deprecated The package should not be selected for new work.

ASR Deep Hedging integration

Research output

Deep Hedging under Transaction Costs: An Auditable NumPy Implementation and Exploratory Study

Scientific scope

The package provides an auditable NumPy implementation for:

  • discrete-time option hedging;
  • proportional and quadratic transaction costs;
  • exact finite-sample empirical CVaR;
  • pathwise hedging-loss gradients;
  • Geometric Brownian Motion simulation;
  • full-truncation Heston simulation;
  • state-only and inventory-aware neural policies;
  • manually implemented neural-network gradients;
  • Adam optimization;
  • classical benchmark strategies;
  • evaluation and paired-bootstrap utilities.

Minimal simulation

from deep_hedging import simulate_gbm

prices = simulate_gbm(
    n_paths=10_000,
    n_steps=30,
    s0=100.0,
    maturity=30 / 252,
    mu=0.0,
    sigma=0.20,
    seed=42,
)

print(prices.shape)

Public API example

from deep_hedging import (
    Adam,
    TanhMLP,
    simulate_gbm,
    train_step,
)

maturity = 30 / 252

network = TanhMLP(
    input_dim=2,
    hidden=16,
    delta_max=1.5,
    seed=1,
)

optimizer = Adam(
    network.params,
    lr=3e-3,
)

prices = simulate_gbm(
    n_paths=4_096,
    n_steps=30,
    s0=100.0,
    maturity=maturity,
    sigma=0.20,
    seed=100,
)

cvar, losses, deltas, details, grad_norm = train_step(
    network,
    optimizer,
    prices=prices,
    strike=100.0,
    maturity=maturity,
    alpha=0.95,
    kappa=0.01,
    cost_kind="linear",
)

print(cvar)
print(grad_norm)
print(deltas.shape)

Published Bachelier package

Install:

python -m pip install "asr-open-sc[bachelier]"

Use:

from asr.models import bachelier

time_grid, paths = bachelier.simulate_paths(
    initial_price=100.0,
    volatility=2.0,
    maturity=1.0,
    n_steps=250,
    n_paths=5_000,
    seed=42,
)

price = bachelier.call_price(
    initial_price=100.0,
    strike=100.0,
    volatility=2.0,
    maturity=1.0,
)

print(paths.shape)
print(price)

Research paper:

https://doi.org/10.5281/zenodo.21385499


Published tail-risk package

Install:

python -m pip install "asr-open-sc[risk]"

Use:

from asr.risk.tail import (
    TailRiskConfig,
    empirical_cvar,
    empirical_var,
    simulate_student_t_losses,
)

config = TailRiskConfig()

losses = simulate_student_t_losses(
    n_paths=config.n_paths,
    notional=config.notional,
    volatility=config.volatility,
    degrees_of_freedom=config.degrees_of_freedom,
    seed=config.seed,
)

var_99 = empirical_var(losses, 0.99)
cvar_99 = empirical_cvar(losses, 0.99)

print(f"99% VaR:  USD {var_99:,.2f}")
print(f"99% CVaR: USD {cvar_99:,.2f}")

Namespace architecture

ASR supports two package-integration patterns.

Shared namespace packages

These packages contribute modules beneath the implicit asr namespace:

asr
├── open_sc
├── models
│   └── bachelier
├── risk
│   └── tail
└── portfolio
    ├── optimization
    └── hrp

Packages participating in the shared namespace should normally avoid creating:

src/asr/__init__.py

The parent asr directory should remain an implicit namespace package so independently distributed projects can coexist.

Recommended configuration:

[tool.setuptools.packages.find]
where = ["src"]
include = ["asr*"]
namespaces = true

Standalone packages

An ASR project may preserve a standalone import identity when that identity is already part of its public package contract.

Deep Hedging uses:

import deep_hedging

The registry records this real import path rather than forcing every project into the shared namespace.


Registry API

ASRPackage

Each registry entry exposes:

name
import_path
description
status
repository
version
pypi_url
doi
python_requires
category

available_packages

from asr.open_sc import available_packages

all_packages = available_packages()
published = available_packages(status="published")

get_package

from asr.open_sc import get_package

package = get_package("asr-deep-hedging")

An unknown distribution name raises KeyError.

package_status

from asr.open_sc import package_status

statuses = package_status()

published_packages

from asr.open_sc import published_packages

packages = published_packages()

print_ecosystem

from asr.open_sc import print_ecosystem

print_ecosystem()

Repository structure

asr-open-sc/
├── .github/
│   ├── CODEOWNERS
│   ├── dependabot.yml
│   └── workflows/
│       ├── publish-pypi.yml
│       └── python-ci.yml
├── src/
│   └── asr/
│       └── open_sc/
│           ├── __init__.py
│           └── registry.py
├── tests/
│   └── test_registry.py
├── AUTHORS.md
├── CHANGELOG.md
├── CITATION.cff
├── CONTRIBUTING_PROJECTS.md
├── LICENSE
├── README.md
├── RELEASE_NOTES_v0.3.3.md
├── pyproject.toml
└── requirements.txt

Development and validation

Install development dependencies:

python -m pip install -e ".[dev]"

Run linting:

ruff check src tests

Run tests:

pytest

Build distributions:

rm -rf build dist *.egg-info src/*.egg-info
python -m build

Validate metadata:

python -m twine check dist/*

Test the wheel in a clean environment:

python -m venv .wheel-test
source .wheel-test/bin/activate

python -m pip install --upgrade pip
python -m pip install dist/asr_open_sc-0.3.3-py3-none-any.whl

python -c "import asr.open_sc as asr_sc; print(asr_sc.__version__)"
python -c "from asr.open_sc import get_package; print(get_package('asr-deep-hedging'))"

deactivate
rm -rf .wheel-test

Test all activated extras on Python 3.11+:

python -m pip install ".[all]"
python -m pip check

python -c "from asr.models import bachelier; print('Bachelier OK')"
python -c "from asr.risk.tail import TailRiskConfig; print('Tail risk OK')"
python -c "from deep_hedging import simulate_gbm; print('Deep Hedging OK')"

Release checklist

Before publishing 0.3.3:

  1. Publish and verify asr-deep-hedging==0.2.0 on PyPI.
  2. Confirm pyproject.toml contains version = "0.3.3".
  3. Confirm asr.open_sc.__version__ == "0.3.3".
  4. Run ruff check src tests.
  5. Run pytest.
  6. Install and test .[all] on Python 3.11+.
  7. Run python -m build.
  8. Run python -m twine check dist/*.
  9. Test the generated wheel in a clean environment.
  10. Create the GitHub tag v0.3.3.
  11. Publish the GitHub release.
  12. Verify asr-open-sc==0.3.3 on PyPI.

The release tag must be:

v0.3.3

not:

v.0.3.3

Scientific and engineering principles

ASR packages are expected to be:

  • independently installable;
  • independently versioned;
  • independently testable;
  • reproducible;
  • explicit about assumptions and limitations;
  • compatible with documented Python versions;
  • supported by citation metadata;
  • transparent about research maturity;
  • integrated into the ecosystem only after release validation.

Contributing

Guidance for creating, publishing, and registering an ASR project is provided in:

CONTRIBUTING_PROJECTS.md

Contributions should use pull requests, pass CI, preserve backward compatibility, and update tests and documentation whenever registry metadata or dependency groups change.


Citation

Citation metadata are provided in CITATION.cff.

Suggested citation:

Alpha Kabinet TOURE.
asr-open-sc: Meta-package and Ecosystem Registry for Alpha Stochastic Research.
Version 0.3.3. Alpha Stochastic Research, 2026.
https://github.com/Alpha-Stochastic-Research/asr-open-sc

License

The source code is released under the MIT License. See LICENSE.


Disclaimer

This software is provided for research, education, reproducibility, and open-source development.

It does not constitute investment, trading, financial, legal, or regulatory advice. It is not a production trading or risk-management system. Users are responsible for independently validating all packages, models, data, assumptions, and numerical results before practical use.


Alpha Stochastic Research
Independent Quantitative Finance Research Laboratory

Research → Modelling → Analysis → Impact

https://asr-lab.online

© 2026 Alpha Stochastic Research

Metadata

Release files for asr-open-sc 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asr-open-sc 0.3.3
File Size Uploaded Provenance
asr_open_sc-0.3.3.tar.gz 19.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for asr-open-sc 0.3.3
File Interpreter ABI Platform
asr_open_sc-0.3.3-py3-none-any.whl Python 3 none any Details

Total release size: 32.1 kB

Release files / asr_open_sc-0.3.3.tar.gz

Download URL asr_open_sc-0.3.3.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dff5235bbc0938bb1af95a9bf679957418dcdc688a510982cecc373263b7317e
BLAKE2b-256 checksum
How to use checksums
b2f082dd4c34f636dc20ff586015145360e59f9f32c9deb6da052a632e12f012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release files / asr_open_sc-0.3.3-py3-none-any.whl

Download URL asr_open_sc-0.3.3-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fdc6732f8db19eef6e4de79d813d4b2a33253eb863952a1e1f81403b805a9f0
BLAKE2b-256 checksum
How to use checksums
dcc2b84d77f5953c25a0bb14c2640ce162c643613b91548267a2dd3451b71d9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Security for asr-open-sc 0.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for asr_open_sc-0.3.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page