QuantAll 1.0.0__py3-none-any.whl

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.
Files changed (128) hide show
  1. QuantAll/Arg.pyd +0 -0
  2. QuantAll/LICENSE.txt +79 -0
  3. QuantAll/L_Dbase.pyd +0 -0
  4. QuantAll/L_Deasy.pyd +0 -0
  5. QuantAll/L_SelManage.pyd +0 -0
  6. QuantAll/L_UiBase.pyd +0 -0
  7. QuantAll/L_UiCross.pyd +0 -0
  8. QuantAll/L_UiManage.pyd +0 -0
  9. QuantAll/L_UiRule.pyd +0 -0
  10. QuantAll/L_UiSelect.pyd +0 -0
  11. QuantAll/M_Ser.pyd +0 -0
  12. QuantAll/MainWindow.pyd +0 -0
  13. QuantAll/Nowheel_widget.pyd +0 -0
  14. QuantAll/O_cur.pyd +0 -0
  15. QuantAll/README.md +237 -0
  16. QuantAll/RunExec.pyd +0 -0
  17. QuantAll/SD.pyd +0 -0
  18. QuantAll/Test.duckdb +0 -0
  19. QuantAll/W_A.pyd +0 -0
  20. QuantAll/W_CtrlLay.pyd +0 -0
  21. QuantAll/W_Cur.pyd +0 -0
  22. QuantAll/W_RW_Cur.pyd +0 -0
  23. QuantAll/W_S.pyd +0 -0
  24. QuantAll/__init__.py +30 -0
  25. QuantAll/ai_prompts.toml +488 -0
  26. quantall-1.0.0.dist-info/METADATA +277 -0
  27. quantall-1.0.0.dist-info/RECORD +128 -0
  28. quantall-1.0.0.dist-info/WHEEL +5 -0
  29. quantall-1.0.0.dist-info/licenses/LICENSE.txt +79 -0
  30. quantall-1.0.0.dist-info/top_level.txt +4 -0
  31. src/Arg.py +334 -0
  32. src/L_Dbase.py +272 -0
  33. src/L_Deasy.py +2390 -0
  34. src/L_SelManage.py +299 -0
  35. src/L_UiBase.py +168 -0
  36. src/L_UiCross.py +119 -0
  37. src/L_UiManage.py +357 -0
  38. src/L_UiRule.py +198 -0
  39. src/L_UiSelect.py +147 -0
  40. src/M_Ser.py +469 -0
  41. src/MainWindow.py +1030 -0
  42. src/Nowheel_widget.py +831 -0
  43. src/O_cur.py +221 -0
  44. src/RunExec.py +955 -0
  45. src/SD.py +926 -0
  46. src/Test.duckdb +0 -0
  47. src/W_A.py +134 -0
  48. src/W_CtrlLay.py +97 -0
  49. src/W_Cur.py +471 -0
  50. src/W_RW_Cur.py +330 -0
  51. src/W_S.py +18 -0
  52. src/__init__.py +30 -0
  53. src/ai_prompts.toml +488 -0
  54. src_aid/API_tushare.txt +1 -0
  55. src_aid/Add_db_lab.py +52 -0
  56. src_aid/P_ai.py +774 -0
  57. src_aid/RunAtStarup.py +558 -0
  58. src_aid/Test.duckdb +0 -0
  59. src_aid/UpdateStock_skill.py +1408 -0
  60. src_aid/__init__.py +0 -0
  61. src_aid/add_note.py +359 -0
  62. src_aid/bg.py +123 -0
  63. src_aid/ceshi.py +267 -0
  64. src_aid/ceshi2.py +34 -0
  65. src_aid/ceshi3.py +0 -0
  66. src_aid/code.py +23 -0
  67. src_aid/creat_dialog.py +413 -0
  68. src_aid/db_clear.py +187 -0
  69. src_aid/db_data_move.py +47 -0
  70. src_aid/db_move_data.py +98 -0
  71. src_aid/db_update.py +586 -0
  72. src_aid/dialog_option.py +217 -0
  73. src_aid/ex.py +73 -0
  74. src_aid/exec_add_fun.py +774 -0
  75. src_aid/get_dfcf.py +302 -0
  76. src_aid/icon_4_preview.py +155 -0
  77. src_aid/icon_build.py +149 -0
  78. src_aid/icon_glod.py +10649 -0
  79. src_aid/min1_k.py +246 -0
  80. src_aid/my_logger.py +32 -0
  81. src_aid/normal_bbq.py +91 -0
  82. src_aid/note.py +80 -0
  83. src_aid/re_cumsum.py +178 -0
  84. src_aid/table_stract.py +50 -0
  85. src_aid/test_script.py +13 -0
  86. src_aid/up_ex.py +358 -0
  87. src_aid/up_image.py +78 -0
  88. src_aid/up_k.py +834 -0
  89. src_build/ARG.py +154 -0
  90. src_build/Actions.py +1541 -0
  91. src_build/DCS.py +71 -0
  92. src_build/MainWindow.py +20 -0
  93. src_build/Mcp_ser.py +582 -0
  94. src_build/Mcp_tools.py +1906 -0
  95. src_build/Nowheel_widget.py +828 -0
  96. src_build/Opt_arg.py +788 -0
  97. src_build/P_color.py +879 -0
  98. src_build/P_cre_layer.py +613 -0
  99. src_build/P_layer.py +1519 -0
  100. src_build/P_note_sel.py +1282 -0
  101. src_build/P_order.py +1250 -0
  102. src_build/P_player.py +1264 -0
  103. src_build/P_read_table.py +1260 -0
  104. src_build/P_set.py +2153 -0
  105. src_build/P_update_db.py +1518 -0
  106. src_build/__init__.py +5 -0
  107. src_build/browser.py +1069 -0
  108. src_build/creat_dialog.py +345 -0
  109. src_build/db_set.py +576 -0
  110. src_build/dock_title.py +176 -0
  111. src_build/icon_black.py +10626 -0
  112. src_build/icon_blue.py +10626 -0
  113. src_build/icon_cyan.py +10626 -0
  114. src_build/icon_glod.py +10626 -0
  115. src_build/icon_gray.py +10626 -0
  116. src_build/icon_green.py +10626 -0
  117. src_build/icon_pink.py +10626 -0
  118. src_build/icon_purple.py +10626 -0
  119. src_build/icon_red.py +10626 -0
  120. src_build/icon_white.py +10626 -0
  121. src_build/load_hc.py +3417 -0
  122. src_build/mw.py +2666 -0
  123. src_build/net_icloud.py +209 -0
  124. src_build/wid_cur_2.py +5174 -0
  125. src_build/wid_history.py +175 -0
  126. src_build/wid_tab.py +706 -0
  127. src_build/wid_txt.py +209 -0
  128. src_build/wid_win_title.py +272 -0
QuantAll/Arg.pyd ADDED
Binary file
QuantAll/LICENSE.txt ADDED
@@ -0,0 +1,79 @@
1
+ QuantAll许可证 v1.0
2
+
3
+ 版权所有 (c) 2026 CMF
4
+
5
+ 一、授权范围
6
+
7
+ 1.1 在您遵守本许可证全部条款的前提下,CMF(以下简称"许可方")授予您一项
8
+ 非独占、不可转让、不可再许可的有限授权,允许您:
9
+ (a)在个人或非商业性目的下,下载、安装、使用本软件;
10
+ (b)在您个人或所在非商业组织内部,为内部信息分析目的使用本软件。
11
+
12
+ 1.2 本授权仅限于您个人或您所在非商业组织内部使用。
13
+
14
+ 二、禁止行为
15
+
16
+ 2.1 您不得对本软件的全部或部分源代码、目标代码进行复制、修改、反向工程、
17
+ 反编译、反汇编或以其他方式尝试推导出源代码。
18
+
19
+ 2.2 您不得将本软件或其任何副本以任何形式(包括但不限于出售、出租、出借、
20
+ 分发、转让、再许可、作为服务提供等)提供给任何第三方。
21
+
22
+ 2.3 您不得将本软件用于任何商业目的。商业目的包括但不限于:
23
+ (a)将本软件作为产品或服务的一部分出售或出租;
24
+ (b)使用本软件为第三方提供商业性质的数据分析服务;
25
+ (c)将本软件集成到商业产品或服务中进行销售或分发。
26
+
27
+ 如需将本软件用于商业目的,您必须事先获得许可方的书面授权,并另行
28
+ 签署商业许可协议。
29
+
30
+ 2.4 您不得移除或篡改本软件中包含的任何版权声明、商标或其他专有标识。
31
+
32
+ 三、免责声明
33
+
34
+ 3.1 数据免责声明
35
+ 本软件包内包含的示例数据(如 Test.duckdb 等)仅供功能测试和演示使用,
36
+ 不具有任何实际参考价值。本软件不提供任何实时或历史金融数据服务。
37
+ 用户在使用本软件进行实际金融分析时,须自行准备数据源,并对所使用
38
+ 数据的准确性、完整性和合法性承担全部责任。因用户使用错误或不准确的
39
+ 数据所导致的任何损失或后果,许可方概不负责。
40
+
41
+ 3.2 投资风险免责声明
42
+ 本软件仅为金融分析工具,供用户进行技术研究和策略测试使用。本软件
43
+ 不构成任何投资建议、交易建议或财务建议,不涉及任何实际交易环节。
44
+ 用户使用本软件做出的任何投资或交易决策,均由用户自行承担全部风险
45
+ 和后果。无论盈亏,用户均应自行对交易结果负责,许可方不承担任何责任。
46
+
47
+ 3.3 责任限额
48
+ 在适用法律允许的最大范围内,无论基于何种法律理论(包括但不限于合同、
49
+ 侵权、过失、严格责任或其他理论),许可方因本软件或本许可证所产生
50
+ 的全部累计赔偿责任,均不超过用户为获取本软件所实际支付的授权费用。
51
+ 因本软件当前以免费形式提供,故该上限金额为人民币零元(¥0)。
52
+ 本限额适用于任何损害、索赔或损失,包括但不限于直接损失、间接损失、
53
+ 附带损失、特殊损失或惩罚性赔偿。
54
+
55
+ 3.4 本软件按"现状"(AS IS)提供,许可方不作任何明示或暗示的担保,
56
+ 包括但不限于对适销性、特定用途适用性、准确性、安全性及不侵犯
57
+ 第三方权利的暗示担保。您自行承担使用本软件的全部风险。
58
+
59
+ 四、许可终止
60
+
61
+ 4.1 如果您违反本许可证的任何条款,本授权将自动终止,无需另行通知。
62
+
63
+ 4.2 许可终止后,您必须立即停止使用本软件,并销毁您所持有的全部副本。
64
+
65
+ 五、商业授权
66
+
67
+ 5.1 任何未经许可方书面授权的商业使用行为均构成侵权,许可方保留追究
68
+ 法律责任的全部权利。
69
+
70
+ 5.2 如需获取商业授权,请联系许可方协商具体条款和费用。
71
+
72
+ 六、一般条款
73
+
74
+ 6.1 本许可证构成双方就本软件许可事宜的完整协议,取代所有先前或同期的
75
+ 口头或书面沟通。
76
+
77
+ 6.2 如果本许可证的任何条款被认定为无效或不可执行,其余条款仍应完全有效。
78
+
79
+ 6.3 本许可证的解释、效力和执行,均适用许可方所在地的法律。
QuantAll/L_Dbase.pyd ADDED
Binary file
QuantAll/L_Deasy.pyd ADDED
Binary file
Binary file
QuantAll/L_UiBase.pyd ADDED
Binary file
QuantAll/L_UiCross.pyd ADDED
Binary file
Binary file
QuantAll/L_UiRule.pyd ADDED
Binary file
Binary file
QuantAll/M_Ser.pyd ADDED
Binary file
Binary file
Binary file
QuantAll/O_cur.pyd ADDED
Binary file
QuantAll/README.md ADDED
@@ -0,0 +1,237 @@
1
+ # QuantAll(全A解析)
2
+
3
+ [![Python](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/)
4
+ [![Platform](https://img.shields.io/badge/Platform-Windows-lightgrey)]()
5
+
6
+ A股全市场向量化并行计算引擎。支持 5000+ 股票的**全市场因子计算**、**策略回测**、**因子 IC 分析**及 **GPU 多维可视化**。
7
+
8
+ 核心价值:为 AI 配置本地计算引擎,让 AI 从「数据搬运工」升级为「数据分析师」—— 不再只是查询信息,而是用代码算出客观结果。
9
+
10
+ ---
11
+
12
+ ## 安装
13
+
14
+ ```bash
15
+ pip install quantall
16
+ ```
17
+
18
+ 安装后,包内自带以下内置资源:
19
+
20
+ | 内置资源 | 说明 |
21
+ |----------|------|
22
+ | `ai_prompts.toml` | AI 提示词配置,用于 MCP 工具语义理解 |
23
+ | `Test.duckdb` | 测试数据库(沪深300近两年行情),开箱即用 |
24
+
25
+ > **注意**:仅支持 Windows 平台(依赖 PySide6 GUI 和 PyOpenGL GPU 渲染)。
26
+
27
+ ---
28
+
29
+ ## 快速开始
30
+
31
+ ### 第一步:创建启动脚本
32
+
33
+ 在项目目录下创建 `Start_QuantAll.py`:
34
+
35
+ ```python
36
+ """
37
+ QuantAll 启动入口
38
+
39
+ 说明:
40
+ - Start_main() 需要传入项目路径
41
+ - 项目路径下会自动查找 DB_setting.json、数据库文件、data/ 目录
42
+ - 如果需要修改数据库路径,编辑 DB_setting.json 中的 db_path 字段
43
+ - 注意:文件名不要用 "QuantAll.py",可能与包名冲突
44
+ """
45
+ import os
46
+ from QuantAll import Start_main
47
+
48
+ print("全A解析启动中...")
49
+ # 将 os.path.dirname(__file__) 替换为你的项目路径
50
+ # Start_main("C:/your/project/path")
51
+ Start_main(os.path.dirname(__file__))
52
+ ```
53
+
54
+ ### 第二步:配置数据库连接
55
+
56
+ 在启动脚本同级目录创建 `DB_setting.json`:
57
+
58
+ ```json
59
+ {
60
+ "db_path": "你的数据库路径/data.duckdb",
61
+ "days": 730,
62
+ "ex_do": true,
63
+ "stock_index": "stock_index",
64
+ "map_stock_index": {
65
+ "trade_date": "trade_date", "symbol": "symbol",
66
+ "open": "open", "high": "high", "low": "low",
67
+ "close": "close", "pre_close": "pre_close",
68
+ "vol": "vol", "voe": "voe"
69
+ },
70
+ "stock": "stock",
71
+ "map_stock": {
72
+ "trade_date": "trade_date", "symbol": "symbol",
73
+ "open": "open", "high": "high", "low": "low",
74
+ "close": "close", "pre_close": "pre_close",
75
+ "vol": "vol", "voe": "voe"
76
+ },
77
+ "stock_basic": "stock_basic",
78
+ "map_stock_basic": {
79
+ "symbol": "symbol", "name": "name",
80
+ "check": ["industry", "business_scope", "main_business",
81
+ "province", "city", "act_ent_type", "concept"]
82
+ },
83
+ "stock_factor": "stock_factor",
84
+ "map_stock_factor": {"symbol": "symbol", "trade_date": "trade_date"},
85
+ "stock_forecast": "stock_forecast",
86
+ "map_stock_forecast": {"symbol": "symbol", "ann_date": "ann_date"},
87
+ "stock_dividend": "stock_dividend",
88
+ "map_stock_dividend": {"symbol": "symbol", "ann_date": "ann_date", "ex_date": "ex_date"},
89
+ "stock_report": "stock_report",
90
+ "map_stock_report": {"symbol": "symbol", "ann_date": "ann_date"},
91
+ "_": "_",
92
+ "map__": {}
93
+ }
94
+ ```
95
+
96
+ | 关键参数 | 类型 | 说明 |
97
+ |----------|------|------|
98
+ | `db_path` | string | **DuckDB 数据库文件的绝对路径**(必改项) |
99
+ | `days` | int | 加载交易天数,默认 730(约2年) |
100
+ | `ex_do` | bool | 是否启用除权除息处理 |
101
+ | `map_*` | object | 各表字段名映射,可将自定义数据库字段映射到标准名 |
102
+
103
+ > **测试体验**:若只是想快速体验,将 `db_path` 指向包内自带的 `Test.duckdb`(安装后在 `site-packages/QuantAll/Test.duckdb`),内含沪深300近两年基础行情数据。
104
+
105
+ ### 第三步:启动服务
106
+
107
+ ```bash
108
+ python Start_QuantAll.py
109
+ ```
110
+
111
+ 启动后,QuantAll 在 `http://127.0.0.1:8686/mcp` 提供 HTTP MCP 服务。
112
+
113
+ ---
114
+
115
+ ## 功能概览
116
+
117
+ QuantAll 提供 **11 个 MCP 工具**,覆盖量化研究的完整工作流:
118
+
119
+ | 工具 | 类型 | 功能说明 |
120
+ |------|------|----------|
121
+ | `strategy_backtest` | 回测 | 全市场策略回测,输出收益率、夏普比率、最大回撤、胜率等指标 |
122
+ | `factor_analysis` | 因子 | 因子 IC 分析,支持 summary/daily/scatter 三种模式,输出 IC均值、IR、多空收益差 |
123
+ | `new_layer_from_code` | 图层 | 自定义散点图层,支持 shift 平移分析标记日前后的数据分布 |
124
+ | `move_by_code` | 统计 | 坐标轴平移,按因子/特征给散点着色生成热力图 |
125
+ | `weight_by_code` | 统计 | 权重赋值,对选中集合做加权分布统计 |
126
+ | `select_by_code` | 集合 | 集合操作(交/并/差/补等 6 种模式),筛选股票 |
127
+ | `heat_map` | 矩阵 | 多维热力图统计,支持 x_y / x / y 三种模式 |
128
+ | `get_user_selection` | 交互 | 获取 GUI 可视化界面中用户框选的股票列表 |
129
+ | `available_data` | 数据 | 查看当前数据库及图层中可用字段列表 |
130
+ | `ping` | 系统 | 健康检查,确认服务正常 |
131
+ | `MCP_Close` | 系统 | 关闭 QuantAll 服务 |
132
+
133
+ ---
134
+
135
+ ## 数据准备
136
+
137
+ QuantAll 依赖本地 **DuckDB** 数据库运行,需要包含以下数据表:
138
+
139
+ | 表名 | 内容 |
140
+ |------|------|
141
+ | `stock` / `stock_index` | 日线行情(OHLCV) |
142
+ | `stock_basic` | 股票基本信息(名称、行业、省份、概念等) |
143
+ | `stock_factor` | 日频因子(换手率、PE、PB、市值等) |
144
+ | `stock_forecast` | 业绩预告 |
145
+ | `stock_dividend` | 分红送转 |
146
+ | `stock_report` | 财务报表(153个指标) |
147
+
148
+ **获取数据有两种方式**:
149
+
150
+ ### 方式一:通过 UpdateStock 自动管理(推荐)
151
+
152
+ 搭配 [UpdateStock] AI技能,可通过 AI 助手一键建库、全量/增量更新:
153
+
154
+ - **全量更新**:需 tushare 2000+ 积分,覆盖所有历史数据
155
+ - **增量更新**:需 tushare 200 积分,仅更新最近数据(免费注册即可获得)
156
+
157
+ > tushare 注册地址:https://tushare.pro
158
+
159
+ ### 方式二:自行准备数据库
160
+
161
+ 按 `DB_setting.json` 配置的表结构和字段映射,自行准备 DuckDB 数据库。字段名可通过 `map_*` 配置灵活映射,无需严格匹配默认字段名。
162
+
163
+ ---
164
+
165
+ ## AI 助手集成
166
+
167
+ QuantAll 是一个 **MCP(Model Context Protocol)服务**,可接入 WorkBuddy、Claude Desktop 等支持 MCP 的 AI 助手。
168
+
169
+ ### WorkBuddy 配置
170
+
171
+ 在 `~/.workbuddy/mcp.json` 中添加:
172
+
173
+ ```json
174
+ {
175
+ "mcpServers": {
176
+ "全A解析": {
177
+ "url": "http://127.0.0.1:8686/mcp",
178
+ "disabled": false
179
+ }
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### 其他 MCP 客户端
185
+
186
+ 任何支持 HTTP MCP 协议的客户端均可通过 `http://127.0.0.1:8686/mcp` 连接。
187
+
188
+ ---
189
+
190
+ ## 代码执行环境
191
+
192
+ QuantAll 内置 Python 向量化计算环境,AI 可直接编写策略代码执行。环境提供:
193
+
194
+ - **`d`**:`dict[str, DataFrame]`,所有可用数据(字段名 -> 全市场 DataFrame)
195
+ - **`col_attrs`**:`dict[str, Series]`,各字段属性(分组、分类信息等)
196
+ - **`np`**、**`pd`**:numpy、pandas 直接可用
197
+
198
+ > **约束**:代码必须向量化(禁止 for 循环、`df.apply()`、`lambda`),最后一行用 `out = ...` 输出结果。
199
+
200
+ ---
201
+
202
+ ## 激活
203
+
204
+ QuantAll 目前不激活可以正常使用。启动需要同意用户协议,激活代表永久同意,后续启动不再弹出用户协议弹窗。
205
+
206
+ ---
207
+
208
+ ## 依赖
209
+
210
+ 核心依赖(`pip install quantall` 时自动安装):
211
+
212
+ ```
213
+ mcp>=1.26.0 # MCP 协议
214
+ pandas>=2.3.3 # 数据计算
215
+ numpy>=1.24.0 # 数值运算
216
+ duckdb>=1.5.2 # 数据库引擎
217
+ PySide6>=6.10.1 # GUI 可视化
218
+ PyOpenGL>=3.1.9 # GPU 渲染
219
+ cryptography>=46.0.3 # 安全与激活
220
+ openpyxl>=3.1.5 # Excel 导出
221
+ pywin32>=311 # Windows 系统集成
222
+ ```
223
+
224
+ > Python 版本要求:**3.10+**,测试通过版本:3.12、3.13。
225
+
226
+ ---
227
+
228
+ ## 许可
229
+
230
+ QuantAll(全A解析)为商业软件,使用需获得授权许可。
231
+
232
+ ---
233
+
234
+ ## 联系方式
235
+
236
+ - PyPI: [https://pypi.org/project/quantall/](https://pypi.org/project/quantall/)
237
+ - 问题反馈:请在对应平台提交 Issue
QuantAll/RunExec.pyd ADDED
Binary file
QuantAll/SD.pyd ADDED
Binary file
QuantAll/Test.duckdb ADDED
Binary file
QuantAll/W_A.pyd ADDED
Binary file
QuantAll/W_CtrlLay.pyd ADDED
Binary file
QuantAll/W_Cur.pyd ADDED
Binary file
QuantAll/W_RW_Cur.pyd ADDED
Binary file
QuantAll/W_S.pyd ADDED
Binary file
QuantAll/__init__.py ADDED
@@ -0,0 +1,30 @@
1
+ import sys
2
+ from .W_S import Start_main
3
+
4
+ __version__ = "1.0.0"
5
+
6
+ def version():
7
+ """返回当前包的版本号。"""
8
+ return __version__
9
+
10
+ def help():
11
+ """帮助文件"""
12
+ return """
13
+ 1.启动时需要传入项目路径,第一次启动会在项目路径上创建data文件夹,代码如下:
14
+ import os
15
+ from QuantAll import Start_main
16
+ Start_main(os.path.dirname(__file__))
17
+
18
+ 2.软件需要本地数据库,数据库的路径设置在项目文件夹的'DB_setting.json'。
19
+ 第一次启动会自动创建,会先找显目路径里面的Test.duckdb,
20
+ 缺失会使用quantall里面的测试数据库Test.duckdb,测试数据库只有少量数据。
21
+
22
+ 3.软件需要AI提示词,优先查找项目路径\\data\\ai_prompts.toml,
23
+ 缺失时会使用quantall里面的ai_prompts.toml。
24
+
25
+ 4.软件支持数据库列名翻译,优化AI理解数据库里面的内容。翻译文件需要放在项目路径\\data\\db_translate.json。
26
+ 缺失不翻译,另外翻译文件里面翻译后的名称应该具备唯一性,应避免不同列翻译成重复名称。
27
+ """
28
+
29
+
30
+ __all__ = ['Start_main', 'help', 'version', '__version__'] # 可选,__version__ 通常不需要显式加入 __all__