[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74283":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},74283,"akquant","akfamily\u002Fakquant","akfamily","AKQuant is a high-performance quantitative research and trading framework built on Rust and Python! 开源量化回测框架","https:\u002F\u002Fakquant.akfamily.xyz\u002F",null,"Python",1465,193,11,7,0,41,93,316,123,19.86,"MIT License",false,"main",true,[27,28,29,30],"akshare","backtest","finance","quant","2026-06-12 02:03:24","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Flogo.svg\" alt=\"AKQuant\" width=\"400\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fakquant\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fakquant?style=flat-square&color=007ec6\" alt=\"PyPI Version\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fakquant\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fakquant?style=flat-square\" alt=\"Python Versions\">\n    \u003C\u002Fa>\n    \u003Ca href=\"LICENSE\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green?style=flat-square\" alt=\"License\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fakfamily\u002Fakshare\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FData%20Science-AKShare-green?style=flat-square\" alt=\"AKShare\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fakquant\">\n        \u003Cimg src=\"https:\u002F\u002Fstatic.pepy.tech\u002Fpersonalized-badge\u002Fakquant?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads\" alt=\"Downloads\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\n**AKQuant** 是一款专为量化投研设计的**下一代高性能混合框架**。核心引擎采用 **Rust** 编写以确保极致的执行效率，同时提供优雅的 **Python** 接口以维持灵活的策略开发体验。\n\n🚀 **核心亮点：**\n\n*   **高性能内核**：得益于 Rust 的零开销抽象与 **Zero-Copy** 数据架构，AKQuant 在部分回测场景下可显著降低 Python 层开销；实际运行速度取决于策略逻辑、数据规模、回调频率与运行环境。\n*   **原生 ML 支持**：内置 **Walk-forward Validation**（滚动训练）框架，无缝集成 PyTorch\u002FScikit-learn，让 AI 策略开发从实验到回测一气呵成。\n*   **TA-Lib 指标生态**：内置 `akquant.talib` 双后端（`python\u002Frust`）兼容能力，支持 **103 个指标**。\n*   **因子表达式引擎**：内置 **Polars** 驱动的高性能因子计算引擎，支持 `Rank(Ts_Mean(Close, 5))` 等 Alpha101 风格公式，自动处理并行计算与数据对齐。\n*   **参数优化**：内置多进程网格搜索（Grid Search）框架，支持策略参数的高效并行优化。\n*   **专业级风控**：内置完善的订单流管理与即时风控模块，支持多资产组合回测。\n\n👉 **[阅读完整文档](https:\u002F\u002Fakquant.akfamily.xyz\u002F)** | **[English Documentation](https:\u002F\u002Fakquant.akfamily.xyz\u002Fen\u002F)**\n\n## 安装说明\n\n**AKQuant** 已发布至 PyPI，无需安装 Rust 环境即可直接使用。\n\n```bash\npip install akquant\n```\n\n## 快速开始\n\n以下是一个简单的策略示例：\n\n```python\nimport akquant as aq\nimport akshare as ak\nfrom akquant import Strategy\n\n# 1. 准备数据\n# 使用 akshare 获取 A 股历史数据 (需安装: pip install akshare)\ndf = ak.stock_zh_a_daily(symbol=\"sh600000\", start_date=\"20250212\", end_date=\"20260212\")\n\n\nclass MyStrategy(Strategy):\n    def on_bar(self, bar):\n        # 简单策略示例:\n        # 当收盘价 > 开盘价 (阳线) -> 买入\n        # 当收盘价 \u003C 开盘价 (阴线) -> 卖出\n\n        # 获取当前持仓\n        current_pos = self.get_position(bar.symbol)\n\n        if current_pos == 0 and bar.close > bar.open:\n            self.buy(symbol=bar.symbol, quantity=100)\n            print(f\"[{bar.timestamp_str}] Buy 100 at {bar.close:.2f}\")\n\n        elif current_pos > 0 and bar.close \u003C bar.open:\n            self.close_position(symbol=bar.symbol)\n            print(f\"[{bar.timestamp_str}] Sell 100 at {bar.close:.2f}\")\n\n\n# 运行回测\nresult = aq.run_backtest(\n    data=df,\n    strategy=MyStrategy,\n    initial_cash=100000.0,\n    symbols=\"sh600000\"\n)\n\n# 打印回测结果\nprint(\"\\n=== Backtest Result ===\")\nprint(result)\n\n# 生成最小基准对比报告\nbenchmark_returns = (\n    df.set_index(\"date\")[\"close\"].pct_change().fillna(0.0).rename(\"SIMPLE_BENCH\")\n)\nresult.report(\n    filename=\"quickstart_report.html\",\n    show=False,\n    benchmark=benchmark_returns,\n)\n```\n\n调用 `result.report(..., benchmark=...)` 后，报告会新增“基准对比 (Benchmark Comparison)”区块，展示策略\u002F基准\u002F超额累计收益曲线，以及累计超额收益、年化超额收益、跟踪误差、信息比率、Beta、Alpha 等相对指标。\n\n**运行结果示例:**\n\n```text\n=== Backtest Result ===\nBacktestResult:\n                                            Value\nstart_time              2025-02-12 00:00:00+08:00\nend_time                2026-02-12 00:00:00+08:00\nduration                        365 days, 0:00:00\ntotal_bars                                    249\ntrade_count                                  62.0\ninitial_market_value                     100000.0\nend_market_value                          99804.0\ntotal_pnl                                  -196.0\nunrealized_pnl                                0.0\ntotal_return_pct                           -0.196\nannualized_return                        -0.00196\nvolatility                               0.002402\ntotal_profit                                548.0\ntotal_loss                                 -744.0\ntotal_commission                              0.0\nmax_drawdown                                345.0\nmax_drawdown_pct                         0.344487\nwin_rate                                22.580645\nloss_rate                               77.419355\nwinning_trades                               14.0\nlosing_trades                                48.0\navg_pnl                                  -3.16129\navg_return_pct                          -0.199577\navg_trade_bars                           1.967742\navg_profit                              39.142857\navg_profit_pct                           3.371156\navg_winning_trade_bars                        4.5\navg_loss                                    -15.5\navg_loss_pct                            -1.241041\navg_losing_trade_bars                    1.229167\nlargest_win                                 120.0\nlargest_win_pct                         10.178117\nlargest_win_bars                              7.0\nlargest_loss                                -70.0\nlargest_loss_pct                        -5.380477\nlargest_loss_bars                             1.0\nmax_wins                                      2.0\nmax_losses                                    9.0\nsharpe_ratio                            -0.816142\nsortino_ratio                           -1.066016\nprofit_factor                            0.736559\nulcer_index                              0.001761\nupi                                     -1.113153\nequity_r2                                0.399577\nstd_error                                68.64863\ncalmar_ratio                            -0.568962\nexposure_time_pct                       48.995984\nvar_95                                   -0.00023\nvar_99                                   -0.00062\ncvar_95                                 -0.000405\ncvar_99                                  -0.00069\nsqn                                     -0.743693\nkelly_criterion                         -0.080763\nmax_leverage                              0.01458\nmin_margin_level                        68.587671\n```\n\n## 复杂订单助手 (OCO \u002F Bracket)\n\nAKQuant 提供了两组复杂订单助手，减少手写订单联动逻辑：\n\n*   `create_oco_order_group(first_order_id, second_order_id, group_id=None)`：将两个订单绑定为 OCO，任一成交后自动撤销另一单。\n*   `place_bracket_order(symbol, quantity, entry_price=None, stop_trigger_price=None, take_profit_price=None, ...)`：一次性提交 Bracket 结构；进场成交后自动挂出止损\u002F止盈，并在双退出单场景下自动绑定 OCO。\n\n```python\nfrom akquant import OrderStatus, Strategy\n\nclass BracketHelperStrategy(Strategy):\n    def __init__(self):\n        self.entry_order_id = \"\"\n\n    def on_bar(self, bar):\n        if self.get_position(bar.symbol) > 0 or self.entry_order_id:\n            return\n\n        self.entry_order_id = self.place_bracket_order(\n            symbol=bar.symbol,\n            quantity=100,\n            stop_trigger_price=bar.close * 0.98,\n            take_profit_price=bar.close * 1.04,\n            entry_tag=\"entry\",\n            stop_tag=\"stop\",\n            take_profit_tag=\"take\",\n        )\n\n    def on_order(self, order):\n        if order.id == self.entry_order_id and order.status in (\n            OrderStatus.Cancelled,\n            OrderStatus.Rejected,\n        ):\n            self.entry_order_id = \"\"\n```\n\n可直接运行完整示例：\n\n```bash\npython examples\u002F06_complex_orders.py\n```\n\n## 流式回测 (Streaming)\n\n如果你希望在回测执行过程中实时消费事件，可直接使用 `run_backtest` 并传入 `on_event`：\n\n```python\ndef on_event(event):\n    if event[\"event_type\"] == \"finished\":\n        payload = event[\"payload\"]\n        print(\"status:\", payload.get(\"status\"))\n        print(\"callback_error_count:\", payload.get(\"callback_error_count\"))\n\nresult = aq.run_backtest(\n    data=df,\n    strategy=MyStrategy,\n    symbols=\"sh600000\",\n    on_event=on_event,\n    show_progress=False,\n    stream_progress_interval=10,\n    stream_equity_interval=10,\n    stream_batch_size=32,\n    stream_max_buffer=256,\n    stream_error_mode=\"continue\",\n)\n```\n\n`on_event` 为可选参数：不传时保持传统阻塞语义，传入时可实时消费事件。\n\n关键参数：\n\n*   `stream_progress_interval` \u002F `stream_equity_interval`: 进度与权益事件采样间隔\n*   `stream_batch_size` \u002F `stream_max_buffer`: 缓冲与批量刷新控制\n*   `stream_error_mode`: 回调异常策略，支持 `\"continue\"` 与 `\"fail_fast\"`\n\n## 可视化 (Visualization)\n\nAKQuant 内置了基于 **Plotly** 的强大可视化模块，仅需一行代码即可生成包含权益曲线、回撤分析、月度热力图等详细指标的交互式 HTML 报告。\n\n```python\n# 生成交互式 HTML 报告，自动在浏览器中打开\nresult.report(\n    show=True,\n    compact_currency=True,  # 金额列按 K\u002FM\u002FB 紧凑显示（默认 True）\n)\n\n# 如果你希望金额列保留原始数值精度（不缩写），可关闭：\nresult.report(\n    show=False,\n    filename=\"report_raw_amount.html\",\n    compact_currency=False,\n)\n```\n\n你也可以直接复用结构化分析结果做二次研究：\n\n```python\nexposure = result.exposure_df()             # 暴露分解（净暴露\u002F总暴露\u002F杠杆）\nattr_by_symbol = result.attribution_df(by=\"symbol\")\nattr_by_tag = result.attribution_df(by=\"tag\")\ncapacity = result.capacity_df()             # 容量代理（成交率\u002F换手等）\norders_by_strategy = result.orders_by_strategy()         # 按策略归属聚合订单\nexecutions_by_strategy = result.executions_by_strategy() # 按策略归属聚合成交\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fdashboard_preview.png\" alt=\"Strategy Dashboard\" width=\"800\">\n  \u003Cbr>\n  👉 \u003Ca href=\"https:\u002F\u002Fakquant.akfamily.xyz\u002Freport_demo\u002F\">点击查看交互式报表示例 (Interactive Demo)\u003C\u002Fa>\n\u003C\u002Fp>\n\n## 文档索引\n\n*   📖 **[核心特性与架构](docs\u002Fzh\u002Findex.md#核心特性)**: 了解 AKQuant 的设计理念与性能优势。\n*   🛠️ **[安装指南](docs\u002Fzh\u002Fstart\u002Finstallation.md)**: 详细的安装步骤（含源码编译）。\n*   🚀 **[快速入门](docs\u002Fzh\u002Fstart\u002Fquickstart.md)**: 更多示例与基础用法。\n*   🤖 **[机器学习指南](docs\u002Fzh\u002Fadvanced\u002Fml.md)**: 如何使用内置的 ML 框架进行滚动训练。\n*   📚 **[API 参考](docs\u002Fzh\u002Freference\u002Fapi.md)**: 详细的类与函数文档。\n*   💻 **[贡献指南](CONTRIBUTING.md)**: 如何参与项目开发。\n\n## 🧪 测试与质量保证\n\nAKQuant 采用严格的测试流程以确保回测引擎的准确性：\n\n*   **单元测试**: 覆盖核心 Rust 组件与 Python 接口。\n*   **黄金测试 (Golden Tests)**: 使用合成数据验证关键业务逻辑（如 T+1、涨跌停、保证金、期权希腊值），并与锁定的基线结果进行比对，防止算法回退。\n\n运行测试：\n```bash\n# 1. 使用 uv 环境运行命令\nuv sync\n\n# 2. 构建并绑定 Rust 扩展\nuv run maturin develop\n\n# 3. 运行所有测试\nuv run pytest\n\n# 4. 运行 Rust 核心测试（自动处理 macOS + uv 环境动态库路径）\n.\u002Fscripts\u002Fcargo-test.sh -q\n\n# 5. 仅运行黄金测试\nuv run pytest tests\u002Fgolden\u002Ftest_golden.py\n```\n\n## Citation\n\nPlease use this bibtex if you want to cite this repository in your publications:\n\n```bibtex\n@misc{akquant,\n    author = {Albert King and Yaojie Zhang and Chao Liang},\n    title = {AKQuant},\n    year = {2026},\n    publisher = {GitHub},\n    journal = {GitHub repository},\n    howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fakfamily\u002Fakquant}},\n}\n```\n\n## License\n\nMIT License\n","AKQuant 是一个基于 Rust 和 Python 的高性能量化研究与交易框架。它通过使用 Rust 作为核心引擎来确保高效的执行速度，并提供 Python 接口以支持灵活的策略开发。主要功能包括支持机器学习模型的集成、TA-Lib 指标库的兼容性、因子表达式计算以及参数优化等。特别适合需要进行复杂金融数据分析和算法交易策略测试的场景，如股票、期货等多资产组合管理。此外，该框架还内置了专业的风险管理模块，能够有效控制回测过程中的潜在风险。",2,"2026-06-11 03:49:49","high_star"]