mlquantx 0.2.6__tar.gz → 0.4.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.
- {mlquantx-0.2.6/src/mlquantx.egg-info → mlquantx-0.4.0}/PKG-INFO +17 -6
- {mlquantx-0.2.6 → mlquantx-0.4.0}/PYPI_README.md +11 -2
- mlquantx-0.4.0/README.md +700 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/pyproject.toml +10 -4
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/__init__.py +1 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/backtest/engine.py +7 -4
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/cli/main.py +258 -33
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/configs/small.yaml +4 -1
- mlquantx-0.4.0/src/mlquant/data/_optional.py +16 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/akshare_loader.py +2 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/baostock_loader.py +3 -2
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/yfinance_loader.py +3 -2
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/__init__.py +2 -2
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_add.py +1 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_best.py +2 -2
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_better.py +3 -3
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_extra.py +1 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_old.py +1 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_original.py +1 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_stock.py +1 -1
- mlquantx-0.4.0/src/mlquant/features/bias.py +162 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/legacy_factors.py +3 -4
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/neutralize.py +0 -1
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/tensor_factors.py +0 -1
- mlquantx-0.4.0/src/mlquant/systemone.py +755 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/training/trainer.py +18 -6
- {mlquantx-0.2.6 → mlquantx-0.4.0/src/mlquantx.egg-info}/PKG-INFO +17 -6
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquantx.egg-info/SOURCES.txt +7 -2
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquantx.egg-info/requires.txt +3 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_baostock.py +0 -2
- mlquantx-0.4.0/tests/test_benchmark_tensor_factors.py +60 -0
- mlquantx-0.4.0/tests/test_bias.py +58 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_cli.py +70 -5
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_cost_drag_units.py +10 -0
- mlquantx-0.4.0/tests/test_optional_data_deps.py +38 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_public_data_validation.py +25 -0
- mlquantx-0.4.0/tests/test_systemone.py +362 -0
- mlquantx-0.4.0/tests/test_technical_pipeline_audit.py +34 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_tensor_factors.py +64 -1
- mlquantx-0.4.0/tests/test_trainer_split.py +48 -0
- mlquantx-0.2.6/README.md +0 -526
- mlquantx-0.2.6/src/mlquant/features/bias.py +0 -81
- mlquantx-0.2.6/src/mlquant/features.py +0 -613
- mlquantx-0.2.6/tests/test_benchmark_tensor_factors.py +0 -15
- mlquantx-0.2.6/tests/test_bias.py +0 -25
- {mlquantx-0.2.6 → mlquantx-0.4.0}/LICENSE +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/NOTICE.md +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/setup.cfg +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/backtest/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/backtest/metrics.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/cli/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/configs/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/loaders.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/panel.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/data/synthetic.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_alpha101.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_change.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/_factors_market.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/alpha101.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/market_breadth.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/features/target.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/models/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/models/losses.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/models/nets.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/portfolio/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/portfolio/frontier.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/portfolio/markowitz.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/training/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/training/augment.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/training/dataset.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/utils/__init__.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/utils/config.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquant/utils/seed.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquantx.egg-info/dependency_links.txt +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquantx.egg-info/entry_points.txt +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/src/mlquantx.egg-info/top_level.txt +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_aggregate_validation_reports.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_akshare.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_akshare_csi300_full_pipeline.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_alpha101.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_audit_validation_report.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_augment.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_export_huggingface_artifacts.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_losses.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_markowitz.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_metrics.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_neutralize.py +0 -0
- {mlquantx-0.2.6 → mlquantx-0.4.0}/tests/test_synthetic.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mlquantx
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Reference implementation of ‘ML-Enhanced Multi-Factor Quantitative Trading’ (arXiv:2507.07107).
|
|
5
5
|
Author: Yimin Du
|
|
6
6
|
License-Expression: MIT
|
|
@@ -36,9 +36,10 @@ Requires-Dist: pyyaml>=6.0
|
|
|
36
36
|
Requires-Dist: click>=8.1
|
|
37
37
|
Requires-Dist: rich>=13.0
|
|
38
38
|
Requires-Dist: tqdm>=4.65
|
|
39
|
-
|
|
40
|
-
Requires-Dist:
|
|
41
|
-
Requires-Dist:
|
|
39
|
+
Provides-Extra: data
|
|
40
|
+
Requires-Dist: yfinance>=0.2.0; extra == "data"
|
|
41
|
+
Requires-Dist: baostock>=0.8.8; extra == "data"
|
|
42
|
+
Requires-Dist: akshare>=1.18.0; extra == "data"
|
|
42
43
|
Provides-Extra: mosek
|
|
43
44
|
Requires-Dist: Mosek>=10.0; extra == "mosek"
|
|
44
45
|
Provides-Extra: ecos
|
|
@@ -46,6 +47,7 @@ Requires-Dist: ecos>=2.0; extra == "ecos"
|
|
|
46
47
|
Provides-Extra: gpu
|
|
47
48
|
Requires-Dist: cupy-cuda12x>=12.0; extra == "gpu"
|
|
48
49
|
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: mlquantx[data]; extra == "dev"
|
|
49
51
|
Requires-Dist: pytest>=7.4; extra == "dev"
|
|
50
52
|
Requires-Dist: pytest-cov>=4.1; extra == "dev"
|
|
51
53
|
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
@@ -56,8 +58,8 @@ Dynamic: license-file
|
|
|
56
58
|
# mlquant
|
|
57
59
|
|
|
58
60
|
**A reproducible PyTorch research stack for machine-learning multi-factor
|
|
59
|
-
trading: 213 factors, bias correction, portfolio optimization,
|
|
60
|
-
backtesting.**
|
|
61
|
+
trading: 213 factors, bias correction, portfolio optimization, vectorized
|
|
62
|
+
backtesting, and System-One-style portfolio decisions.**
|
|
61
63
|
|
|
62
64
|
[](https://github.com/initial-d/ml-quant-trading/actions/workflows/ci.yml)
|
|
63
65
|
[](https://arxiv.org/abs/2507.07107)
|
|
@@ -76,6 +78,12 @@ training, portfolio construction, cost-aware backtesting, and Markdown/JSON
|
|
|
76
78
|
report generation. The default config ships inside the wheel, so the command
|
|
77
79
|
works outside a repository checkout.
|
|
78
80
|
|
|
81
|
+
The AkShare, Baostock, and yfinance public-data loaders are an optional extra:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
python -m pip install 'mlquantx[data]'
|
|
85
|
+
```
|
|
86
|
+
|
|
79
87
|
## Customize or contribute
|
|
80
88
|
|
|
81
89
|
The wheel is the fastest way to try the project. Clone the repository when you
|
|
@@ -102,12 +110,15 @@ If the demo saves you setup time, consider
|
|
|
102
110
|
- vectorized backtesting with turnover and transaction costs
|
|
103
111
|
- AkShare, Baostock, yfinance, and deterministic synthetic data paths
|
|
104
112
|
- auditable public-data validation reports, including negative results
|
|
113
|
+
- `mlquant systemone decide` for typed portfolio-intent decisions from
|
|
114
|
+
structured research state
|
|
105
115
|
|
|
106
116
|
## Start here
|
|
107
117
|
|
|
108
118
|
- [Source and full documentation](https://github.com/initial-d/ml-quant-trading)
|
|
109
119
|
- [Google Colab quick start](https://colab.research.google.com/github/initial-d/ml-quant-trading/blob/main/notebooks/quickstart_colab.ipynb)
|
|
110
120
|
- [Public validation dashboard](https://github.com/initial-d/ml-quant-trading/blob/main/docs/validation_dashboard.md)
|
|
121
|
+
- [System-One-compatible portfolio decisions](https://github.com/initial-d/ml-quant-trading/blob/main/docs/systemone_adapter.md)
|
|
111
122
|
- [Research card and limitations](https://github.com/initial-d/ml-quant-trading/blob/main/docs/research_card.md)
|
|
112
123
|
- [100,000-row synthetic dataset](https://huggingface.co/datasets/dddyym/ml-quant-trading-synthetic)
|
|
113
124
|
- [213-input MLP checkpoint](https://huggingface.co/dddyym/ml-quant-trading-synthetic-mlp)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# mlquant
|
|
2
2
|
|
|
3
3
|
**A reproducible PyTorch research stack for machine-learning multi-factor
|
|
4
|
-
trading: 213 factors, bias correction, portfolio optimization,
|
|
5
|
-
backtesting.**
|
|
4
|
+
trading: 213 factors, bias correction, portfolio optimization, vectorized
|
|
5
|
+
backtesting, and System-One-style portfolio decisions.**
|
|
6
6
|
|
|
7
7
|
[](https://github.com/initial-d/ml-quant-trading/actions/workflows/ci.yml)
|
|
8
8
|
[](https://arxiv.org/abs/2507.07107)
|
|
@@ -21,6 +21,12 @@ training, portfolio construction, cost-aware backtesting, and Markdown/JSON
|
|
|
21
21
|
report generation. The default config ships inside the wheel, so the command
|
|
22
22
|
works outside a repository checkout.
|
|
23
23
|
|
|
24
|
+
The AkShare, Baostock, and yfinance public-data loaders are an optional extra:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
python -m pip install 'mlquantx[data]'
|
|
28
|
+
```
|
|
29
|
+
|
|
24
30
|
## Customize or contribute
|
|
25
31
|
|
|
26
32
|
The wheel is the fastest way to try the project. Clone the repository when you
|
|
@@ -47,12 +53,15 @@ If the demo saves you setup time, consider
|
|
|
47
53
|
- vectorized backtesting with turnover and transaction costs
|
|
48
54
|
- AkShare, Baostock, yfinance, and deterministic synthetic data paths
|
|
49
55
|
- auditable public-data validation reports, including negative results
|
|
56
|
+
- `mlquant systemone decide` for typed portfolio-intent decisions from
|
|
57
|
+
structured research state
|
|
50
58
|
|
|
51
59
|
## Start here
|
|
52
60
|
|
|
53
61
|
- [Source and full documentation](https://github.com/initial-d/ml-quant-trading)
|
|
54
62
|
- [Google Colab quick start](https://colab.research.google.com/github/initial-d/ml-quant-trading/blob/main/notebooks/quickstart_colab.ipynb)
|
|
55
63
|
- [Public validation dashboard](https://github.com/initial-d/ml-quant-trading/blob/main/docs/validation_dashboard.md)
|
|
64
|
+
- [System-One-compatible portfolio decisions](https://github.com/initial-d/ml-quant-trading/blob/main/docs/systemone_adapter.md)
|
|
56
65
|
- [Research card and limitations](https://github.com/initial-d/ml-quant-trading/blob/main/docs/research_card.md)
|
|
57
66
|
- [100,000-row synthetic dataset](https://huggingface.co/datasets/dddyym/ml-quant-trading-synthetic)
|
|
58
67
|
- [213-input MLP checkpoint](https://huggingface.co/dddyym/ml-quant-trading-synthetic-mlp)
|