High-performance quantitative trading framework based on Rust and Python
Project description
AKQuant
AKQuant 是一款专为量化投研设计的下一代高性能混合框架。核心引擎采用 Rust 编写以确保极致的执行效率,同时提供优雅的 Python 接口以维持灵活的策略开发体验。
🚀 核心亮点:
- 极致性能:得益于 Rust 的零开销抽象与 Zero-Copy 数据架构,回测速度较传统纯 Python 框架(如 Backtrader)提升 X倍+。
- 原生 ML 支持:内置 Walk-forward Validation(滚动训练)框架,无缝集成 PyTorch/Scikit-learn,让 AI 策略开发从实验到回测一气呵成。
- 专业级风控:内置完善的订单流管理与即时风控模块,支持多资产组合回测。
👉 阅读完整文档 | English Documentation
安装说明
AKQuant 已发布至 PyPI,无需安装 Rust 环境即可直接使用。
pip install akquant
快速开始
以下是一个简单的策略示例:
import akshare as ak
import akquant as aq
from akquant import Strategy
# 1. 准备数据
# 使用 akshare 获取 A 股历史数据 (需安装: pip install akshare)
df = ak.stock_zh_a_daily(symbol="sh600000", start_date="20230101", end_date="20231231")
class MyStrategy(Strategy):
def on_bar(self, bar):
# 简单策略示例:
# 当收盘价 > 开盘价 (阳线) -> 买入
# 当收盘价 < 开盘价 (阴线) -> 卖出
# 获取当前持仓
current_pos = self.get_position(bar.symbol)
if current_pos == 0 and bar.close > bar.open:
self.buy(bar.symbol, 100)
print(f"[{bar.timestamp_str}] Buy 100 at {bar.close:.2f}")
elif current_pos > 0 and bar.close < bar.open:
self.close_position(bar.symbol)
print(f"[{bar.timestamp_str}] Sell 100 at {bar.close:.2f}")
# 运行回测
result = aq.run_backtest(
data=df,
strategy=MyStrategy,
symbol="sh600000"
)
# 打印回测结果
print("\n=== Backtest Result ===")
print(result.metrics_df)
运行结果示例:
=== Backtest Result ===
Backtest
total_return_pct -0.056694
annualized_return -0.000575
sharpe_ratio -6.331191
sortino_ratio -6.845218
max_drawdown_pct 0.056694
volatility 0.000091
win_rate 0.339286
end_market_value 999433.064610
initial_market_value 1000000.000000
total_return -0.000567
max_drawdown 0.000567
ulcer_index 0.000306
upi -1.878765
equity_r2 0.981178
std_error 22.986004
文档索引
- 📖 核心特性与架构: 了解 AKQuant 的设计理念与性能优势。
- 🛠️ 安装指南: 详细的安装步骤(含源码编译)。
- 🚀 快速入门: 更多示例与基础用法。
- 🤖 机器学习指南: 如何使用内置的 ML 框架进行滚动训练。
- 📚 API 参考: 详细的类与函数文档。
- 💻 贡献指南: 如何参与项目开发。
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file akquant-0.1.21.tar.gz.
File metadata
- Download URL: akquant-0.1.21.tar.gz
- Upload date:
- Size: 255.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ce7e2a239bd2eaef4bdd072c6501628e5e7b0a1ff98f0e26cedcfdfedb81bdf
|
|
| MD5 |
80caf5cfa70ad74322c7844cd10392bf
|
|
| BLAKE2b-256 |
7e3869fbe24923baf848d88595808bbc1f5670bc1953a8f904e518d4849f059d
|
Provenance
The following attestation bundles were made for akquant-0.1.21.tar.gz:
Publisher:
release.yml on akfamily/akquant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akquant-0.1.21.tar.gz -
Subject digest:
6ce7e2a239bd2eaef4bdd072c6501628e5e7b0a1ff98f0e26cedcfdfedb81bdf - Sigstore transparency entry: 940446263
- Sigstore integration time:
-
Permalink:
akfamily/akquant@2233ca3796f678065ef94216fe5ee72c19353434 -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/akfamily
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2233ca3796f678065ef94216fe5ee72c19353434 -
Trigger Event:
push
-
Statement type:
File details
Details for the file akquant-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: akquant-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 899.0 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
203d091dcd96dc85cde0f8edabbe281e1f350f27dcdd6c53a39f49a149874105
|
|
| MD5 |
162610b603e9afd5a482287487620cea
|
|
| BLAKE2b-256 |
31c7b5c3d3e1e200ba818033badd5a9347cfe6b5035b9304fb2bebdecaaf2d42
|
Provenance
The following attestation bundles were made for akquant-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on akfamily/akquant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akquant-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
203d091dcd96dc85cde0f8edabbe281e1f350f27dcdd6c53a39f49a149874105 - Sigstore transparency entry: 940446277
- Sigstore integration time:
-
Permalink:
akfamily/akquant@2233ca3796f678065ef94216fe5ee72c19353434 -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/akfamily
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2233ca3796f678065ef94216fe5ee72c19353434 -
Trigger Event:
push
-
Statement type:
File details
Details for the file akquant-0.1.21-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: akquant-0.1.21-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 685.1 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0397541c8240a39ca49c828e27698733810b1dbc5bd5a704f1ecd2163747fa0
|
|
| MD5 |
e0bfb0966f50dff46aaa11e492f2a141
|
|
| BLAKE2b-256 |
bddd6a42b857f2b85234a70289544288b5a2a27058abd11ea053dfb09061bec7
|
Provenance
The following attestation bundles were made for akquant-0.1.21-cp310-abi3-win_amd64.whl:
Publisher:
release.yml on akfamily/akquant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akquant-0.1.21-cp310-abi3-win_amd64.whl -
Subject digest:
c0397541c8240a39ca49c828e27698733810b1dbc5bd5a704f1ecd2163747fa0 - Sigstore transparency entry: 940446269
- Sigstore integration time:
-
Permalink:
akfamily/akquant@2233ca3796f678065ef94216fe5ee72c19353434 -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/akfamily
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2233ca3796f678065ef94216fe5ee72c19353434 -
Trigger Event:
push
-
Statement type:
File details
Details for the file akquant-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: akquant-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 903.3 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af66187cf0323f056111f344cba25fb13a4927893165ac94a0b08c8d8c9a4284
|
|
| MD5 |
6ac89337a29e4353657d4501dc8b8339
|
|
| BLAKE2b-256 |
2522884762dcdfbc9f8944c6ef559e632fba99c375936de25c413352650eefff
|
Provenance
The following attestation bundles were made for akquant-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on akfamily/akquant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akquant-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
af66187cf0323f056111f344cba25fb13a4927893165ac94a0b08c8d8c9a4284 - Sigstore transparency entry: 940446265
- Sigstore integration time:
-
Permalink:
akfamily/akquant@2233ca3796f678065ef94216fe5ee72c19353434 -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/akfamily
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2233ca3796f678065ef94216fe5ee72c19353434 -
Trigger Event:
push
-
Statement type:
File details
Details for the file akquant-0.1.21-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: akquant-0.1.21-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 823.4 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
764984145aaa3be0cc7c533d63c370b5ed5a733ef0c2687dbc04545146277573
|
|
| MD5 |
60d20635db3efdd75bda0724ed2fa240
|
|
| BLAKE2b-256 |
02512251b5ea2d52769a8cbce27ca20b91965f619eb63fd2b8422b108c05f162
|
Provenance
The following attestation bundles were made for akquant-0.1.21-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on akfamily/akquant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
akquant-0.1.21-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
764984145aaa3be0cc7c533d63c370b5ed5a733ef0c2687dbc04545146277573 - Sigstore transparency entry: 940446287
- Sigstore integration time:
-
Permalink:
akfamily/akquant@2233ca3796f678065ef94216fe5ee72c19353434 -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/akfamily
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2233ca3796f678065ef94216fe5ee72c19353434 -
Trigger Event:
push
-
Statement type: