gangtise-openapi-cli 0.41.1 → 0.43.0
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.
- package/README.md +45 -39
- package/dist/src/cli.js +50 -1161
- package/dist/src/commands/ai.js +156 -0
- package/dist/src/commands/alternative.js +56 -0
- package/dist/src/commands/auth.js +37 -0
- package/dist/src/commands/bond.js +76 -0
- package/dist/src/commands/fundamental.js +137 -0
- package/dist/src/commands/indicator.js +134 -0
- package/dist/src/commands/insight.js +338 -0
- package/dist/src/commands/quote.js +181 -0
- package/dist/src/commands/raw.js +49 -0
- package/dist/src/commands/reference.js +58 -0
- package/dist/src/commands/shared.js +197 -0
- package/dist/src/commands/tool.js +55 -0
- package/dist/src/commands/vault.js +203 -0
- package/dist/src/core/args.js +13 -9
- package/dist/src/core/asyncContent.js +32 -19
- package/dist/src/core/auth.js +3 -2
- package/dist/src/core/client.js +112 -15
- package/dist/src/core/commandBodies.js +2 -1
- package/dist/src/core/config.js +16 -3
- package/dist/src/core/download.js +9 -5
- package/dist/src/core/endpoints.js +106 -1
- package/dist/src/core/exitStatus.js +17 -0
- package/dist/src/core/fileParse.js +3 -20
- package/dist/src/core/opinionDetail.js +39 -0
- package/dist/src/core/output.js +55 -12
- package/dist/src/core/perSecurity.js +29 -11
- package/dist/src/core/printer.js +7 -8
- package/dist/src/core/quoteSharding.js +19 -15
- package/dist/src/core/rowSink.js +40 -7
- package/dist/src/core/titleCache.js +28 -2
- package/dist/src/core/transport.js +7 -4
- package/dist/src/core/updateCheck.js +51 -0
- package/dist/src/version.js +19 -1
- package/gangtise-openapi/SKILL.md +50 -49
- package/gangtise-openapi/references/commands/ai.md +35 -16
- package/gangtise-openapi/references/commands/alternative.md +2 -2
- package/gangtise-openapi/references/commands/bond.md +1 -1
- package/gangtise-openapi/references/commands/fundamental.md +5 -5
- package/gangtise-openapi/references/commands/indicator.md +29 -27
- package/gangtise-openapi/references/commands/insight.md +39 -31
- package/gangtise-openapi/references/commands/quote.md +19 -19
- package/gangtise-openapi/references/commands/reference-and-lookup.md +18 -15
- package/gangtise-openapi/references/commands/vault.md +10 -7
- package/gangtise-openapi/references/errors.md +27 -25
- package/gangtise-openapi/references/examples.md +38 -36
- package/gangtise-openapi/references/fields.md +8 -6
- package/gangtise-openapi/references/lookup-ids.md +10 -8
- package/gangtise-openapi/references/response-schema.md +7 -7
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gangtise-openapi
|
|
3
|
-
version: "0.
|
|
3
|
+
version: "0.43.0"
|
|
4
4
|
description: |-
|
|
5
5
|
通过 gangtise CLI 直接调用 Gangtise OpenAPI,拉取投研原始数据、批量导出、下载文件、调用 AI 能力。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**触发词**:Gangtise / 钢尼斯 / gtIC(Gangtise 语音误识别)/ 调接口 / CLI / openapi / 导出 / 下载研报 / 批量查 / 拉数据 / 跑一下 / 研报 / 纪要 / 公告 / K线 / 财报 / 估值 / 选股 / 债券
|
|
8
8
|
|
|
9
|
-
**适用**:原始数据导出、批量 jsonl/csv、下载 PDF/MD、行情 K 线、财务报表、估值指标、证券级数据指标(EDE
|
|
9
|
+
**适用**:原始数据导出、批量 jsonl/csv、下载 PDF/MD、行情 K 线、财务报表、估值指标、证券级数据指标(EDE 截面/时序/条件选股)、财报日历(业绩预告/快报/公告)、会议线索、帕米尔专家纪要、资金流向、题材与板块、债券(资料/行情/估值/评级/公告)、联网搜索、PDF 解析为 Markdown、AI 能力(一页通/投资逻辑/同业对比/个股看点·投研总结/投研线索/业绩点评/观点PK·多空辩论/主题跟踪/热点话题/管理层讨论/调研提纲/知识库搜索)、云盘文件管理(Vault)
|
|
10
10
|
|
|
11
11
|
**不适用**:不脱离 OpenAPI 自行撰写研报、编造投研结论或做自由问答——观点总结、多空 PK 等 AI 产物本 skill 只经由 Gangtise 平台 AI 接口获取,不自行生成
|
|
12
12
|
|
|
@@ -23,23 +23,23 @@ description: |-
|
|
|
23
23
|
## 必备规则
|
|
24
24
|
|
|
25
25
|
1. **`--format json`**:列表/数据类必加。AI 内容生成(`one-pager` / `investment-logic` / `peer-comparison` / `research-outline` / `*-check`)也加 json,但呈现时**直接取 `content` 字段**,不要展示 JSON 包装层。
|
|
26
|
-
2. **opaque ID**:先读 `references/lookup-ids.md
|
|
27
|
-
3. **公司名 →
|
|
26
|
+
2. **opaque ID**:先读 `references/lookup-ids.md`;找不到再按类型查——行业 / 区域 / 公告分类 / 城市 → `reference constant-list --category <分类>`(分类代码用 `reference constant-category` 查);题材 → `reference concept-search`;板块 → `reference sector-search`;券商 / 牵头 / 观点机构 → `reference institution-search`(按返回的 `usageScopes` 选能喂给目标参数的 ID)。**绝不猜测**。
|
|
27
|
+
3. **公司名 → 证券代码**:先查下方速查表(几只常用大盘股),其余一律 `gangtise reference securities-search --keyword <名> --category stock` 取 `list[0].gtsCode`。
|
|
28
28
|
4. **时间格式**:datetime `"YYYY-MM-DD HH:mm:ss"`(引号包裹),date `YYYY-MM-DD`(`YYYY/MM/DD`、`YYYYMMDD` 也收,会归一;**年在后写法一律拒绝**)。
|
|
29
29
|
5. **多值参数**:优先重复传(最稳、最明确):`--security 600519.SH --security 000858.SZ`。CLI 也支持半/全角逗号分隔(语音输入容错),但重复传不易被 shell 吞。
|
|
30
30
|
6. **K 线"最近 N 条"**:必须用 `--start-date`/`--end-date` 拉日期范围,从结果按 `tradeDate` 取尾部最近 N 条。**不要只用 `--limit N`**(截取的是窗口开头)。
|
|
31
31
|
6.1. **日 K 仅历史**:`day-kline` **不返回盘中实时数据**。当日数据入库时间:A 股 ~15:30 / 港股 ~16:30 / 美股 ~07:00(北京时间)。需要盘中快照请走 `quote realtime`。
|
|
32
|
-
6.1.1. 🔴 **`quote day-kline` 一个命令覆盖 A
|
|
33
|
-
6.2. **多标的日 K**:显式传多个 `--security` 时,「证券数 ×
|
|
32
|
+
6.1.1. 🔴 **`quote day-kline` 一个命令覆盖 A / 港 / 美股、沪深 ETF 与各类指数(含全球指数),可混传代码**。全市场关键字 `aShares` / `hkStocks` / `usStocks` 必须单独传(不认 `--security all`),且**必须同时给 `--start-date` 与 `--end-date`**(「某天至今」把 `--end-date` 写成今天)。**关键字只覆盖个股**:ETF 与指数须逐个传代码(全球指数代码清单、`null` 列与当地时间口径见 `references/commands/quote.md`)。`day-kline-hk` / `day-kline-us` / `index-day-kline` 已弃用、别用——它们不校验代码,传错返空不报错。
|
|
33
|
+
6.2. **多标的日 K**:显式传多个 `--security` 时,「证券数 × 交易日数」小于 `--limit`(默认 6000 / 上限 10000)走单请求;达到或超过则 CLI 自动分批请求(每批按行数上限装入尽量多的证券,未传 `--limit` 时上限按 10000 算)并按传入顺序合并,单只行数超过 `--limit` 的标 `partial` + `truncatedSecurities`、退出码 3。单只超 10000 行仍要缩日期区间分批。
|
|
34
34
|
7. **CLI 已内置自动化,不要手动复刻**:
|
|
35
35
|
- 翻页 → 首页拿 total 后剩余页并发拉取;🔴 **全量拉取结束会多探一行验证 `total` 是不是服务端封顶**(`total` 若只是服务端封顶值,按它翻完会停在上限、看起来却像全量)——探到就标 `partial` + `totalCapped` + 退出 3,**这时导出的是截断结果,要缩小时间范围分片拉**
|
|
36
|
-
- K 线全市场关键字(`aShares` / `hkStocks` / `usStocks`;旧命令 `all`)跨日期 → 自动按日切片并合并,粒度按各市场单日行数定(A 1
|
|
36
|
+
- K 线全市场关键字(`aShares` / `hkStocks` / `usStocks`;旧命令 `all`)跨日期 → 自动按日切片并合并,粒度按各市场单日行数定(A 1 个工作日 / 港 2 个工作日 / 美 1 个工作日)
|
|
37
37
|
- 5xx / `429` / 网络错误 / `999999` → 自动指数退避重试(🔴 贵档端点例外:仅连接失败 / 429 / token 自愈重试,5xx/超时不重放防重复扣分;`indicator` 端点对 `999999` 不重试)
|
|
38
|
-
- Token
|
|
39
|
-
8.
|
|
38
|
+
- Token 失效 → 自动重新登录并重试一次;凭证错 `999011` → **不重试**(AK/SK 不对不会自己好),查环境变量
|
|
39
|
+
8. **参数命名差异**:`--security-code` 只用于 **Fundamental 全组、AI 单证券生成类**(`one-pager` / `investment-logic` / `peer-comparison` / `earnings-review` / `research-outline` / `management-discuss-*`)**与 `insight qa list`**;`ai security-clue` 用 `--gts-code`;其余(Insight 其他命令、Quote、Vault、Bond、Indicator、`ai stock-summary`)一律用 `--security`。
|
|
40
40
|
9. **调试**:`--verbose` 或 `GANGTISE_VERBOSE=1` 打印每个请求的耗时/字节数到 stderr。
|
|
41
|
-
10. **`--field` 字段名必须核对,不确定就别传**(返回全量最稳)。上游对不存在的字段名有两种处理:`quote` 系(realtime / day-kline / minute-kline / fund-flow)名和值一起丢、不报错——CLI 比对请求与返回的列名,缺列标 `partial` + `missingFields` 并退出 3;`fundamental main-business` / `valuation-analysis` 只丢值、字段名照请求回显——CLI 检测到长度不匹配直接报错退出 1(没有 `--field` 的命令如 `alternative edb-data` 报此错则是上游响应结构异常,报障时带上报错末尾的 `(trace
|
|
42
|
-
11. 🔴 **EDE
|
|
41
|
+
10. **`--field` 字段名必须核对,不确定就别传**(返回全量最稳)。上游对不存在的字段名有两种处理:`quote` 系(realtime / day-kline / minute-kline / fund-flow)名和值一起丢、不报错——CLI 比对请求与返回的列名,缺列标 `partial` + `missingFields` 并退出 3;`fundamental main-business` / `valuation-analysis` 只丢值、字段名照请求回显——CLI 检测到长度不匹配直接报错退出 1(没有 `--field` 的命令如 `alternative edb-data` 报此错则是上游响应结构异常,报障时带上报错末尾的 `(trace …)`)。多只证券或全市场时,缺的身份列 CLI 会补到最前(日 K 补 `securityCode` / `tradeDate`、分钟 K 补 `securityCode` / `tradeTime`、realtime 补 `securityCode`);单只不补。realtime **无 `close`**(用 `latestPrice`)、**无市值**(总市值走 `indicator cross-section --indicator qte_mkt_cptl`,A/港/美股均有数)。
|
|
42
|
+
11. 🔴 **EDE(`indicator` 截面 / 时序 / 选股)取不到数返 `null` 占位、行列都保留、退出码 0**;代码写错才报 `100003` 并指名。报告期类指标(`is_*` 等)的日期一律落**报告期末**(`03-31` / `06-30` / `09-30` / `12-31`),截面用 `--indicator-param "<指标code>:reportDate=YYYY-MM-DD"`(`screener` 用 `"F1:reportDate=..."`)——日期不在报告期末时整批 `null`,`screener` 筛出空集是**日期用错,不是没有符合条件的标的**。时序按日返回、只有报告期末那几行是真值,**别对整列直接求均值 / 求和**。**`--calendar-type` 默认别传**(CLI 自动选日期轴;显式传 `TD` 会让报告期类指标整行 `null`)。详见 `references/commands/indicator.md`。
|
|
43
43
|
|
|
44
44
|
## 工作流(3 步)
|
|
45
45
|
|
|
@@ -50,9 +50,9 @@ description: |-
|
|
|
50
50
|
### Pre-flight(执行前必过)
|
|
51
51
|
|
|
52
52
|
🔴 **需用户确认**:
|
|
53
|
-
-
|
|
53
|
+
- 凭证:`gangtise auth status` 只看本地(缓存的 token、`GANGTISE_TOKEN`),不联服务端。两项都没有、环境变量里也没配 `GANGTISE_ACCESS_KEY` / `GANGTISE_SECRET_KEY` → 提示配置 AK/SK 并中止;**只配了 AK/SK 时首次调用会自动登录,不算未登录**。要确认凭证有效或账号状态,用 `gangtise auth login`
|
|
54
54
|
- 多个命令同时匹配 → 复述理解让用户挑(如"搜索研报" → research list 还是 knowledge-batch?)
|
|
55
|
-
- 用户说"全部 / 全量 / 全市场" → 确认量级再拉:省略 `--size` 就是拉全量(自动翻页,上限 1000 页);先 `--size 1` 看 stderr 的 `Total: N` 再决定(探量这步别加 `--format json`——json 下不打 `Total` 行);全市场/跨一年分片等大批量可 `GANGTISE_PAGE_CONCURRENCY=10` 提速(默认 5,同时管翻页与 K
|
|
55
|
+
- 用户说"全部 / 全量 / 全市场" → 确认量级再拉:省略 `--size` 就是拉全量(自动翻页,上限 1000 页);先 `--size 1` 看 stderr 的 `Total: N` 再决定(探量这步别加 `--format json`——json 下不打 `Total` 行);全市场/跨一年分片等大批量可 `GANGTISE_PAGE_CONCURRENCY=10` 提速(默认 5,同时管翻页与 K 线分片);预计很长的全市场导出按年或按季度分段拉,别让单条命令超过你的工具超时——被超时终止的导出不会留下结果文件
|
|
56
56
|
- **高积分操作先确认**:任何 50 积分/次及以上、或"按条 × 大批量"(如 `stock-summary` 按代码批量数千只、`opinion detail` / `--with-content` 批量取正文、`concept-info --full` 500/次)→ 先估总积分告知用户再执行(单价见下「积分计费速查」)
|
|
57
57
|
- 下载**必选**格式未定才问:`independent-opinion --file-type`(必选)、`vault record/my-conference --content-type`(record 三种 original/asr/summary、my-conference 两种 asr/summary);其余 download 有默认(多为 `1`=PDF/原始),用户没提格式就用默认、不必问
|
|
58
58
|
- list→download 用户没指定具体文件 → 展示前 10 条让用户挑
|
|
@@ -66,9 +66,9 @@ description: |-
|
|
|
66
66
|
- 公司名 → 先速查表,否则 `reference securities-search`
|
|
67
67
|
- opaque ID → 先 `references/lookup-ids.md`
|
|
68
68
|
- 模糊时间词 → 查"时间词映射"
|
|
69
|
-
-
|
|
69
|
+
- 列表类命令用户没要求全量 → 按单价主动加 `--size` 兜底(不必问):免费或 0.1 积分/条的列表用 `--size 200`;**≥1 积分/条的(观点、独立观点、路演四件套、会议线索、个股线索、热点话题等)用 `--size 20`**,要更多先 `--size 1` 看 stderr 的 `Total` 估总价再定。CLI 省略 `--size` 会拉全量;按条计费的列表估算全量超过 1000 积分时报错退出(报错里有估算积分),此时把估算积分告诉用户,确认后加 `--yes` 重跑或改传 `--size N`
|
|
70
70
|
- 预估结果 >200 行 → 别全量 `--format json` 引进上下文,改 `--format jsonl --output <file>` 落盘(行边取边写、内存不随行数增长,stdout 只回显文件路径),再 `wc -l` + `head` 采样呈现。落盘的 `csv` / `jsonl` 旁边会有 `<file>.meta.json`:`complete` / `rows` / `result.partial` 与缺失项标记都在里面,转交文件时一并给、核验完整性先看它(`complete: false` = 那次导出退出码 3)
|
|
71
|
-
- 路由到 AI 同步生成命令 →
|
|
71
|
+
- 路由到 AI 同步生成命令 → 同步生成类(`one-pager` / `investment-logic` / `peer-comparison` / `research-outline` / `theme-tracking` / `management-discuss-*`)CLI 已内置 120s 超时下限,无需前缀;`stock-summary` 同样有 120s 下限;`hot-topic` 仍建议前置 `GANGTISE_TIMEOUT_MS=120000`。**贵档端点超时/5xx 不自动重试**(重放=重复扣分)——超时报错后内容可能已在服务端生成并扣费,同参数再调仍会**再扣一次**(无缓存豁免),所以一次调用给足超时比失败重跑省钱。`earnings-review` / `viewpoint-debate` 是异步(`--wait` 或 `*-check` 轮询),不吃这个超时
|
|
72
72
|
- "AI速记/智能摘要/会议纪要"→`summary`、"原始文件/原文件"→`original`、"语音识别/转写文本/ASR"→`asr` — 用户已明示时直接映射 content-type,不必问
|
|
73
73
|
|
|
74
74
|
### 积分计费速查
|
|
@@ -81,14 +81,14 @@ description: |-
|
|
|
81
81
|
- **各 download(/篇)**:announcement / official-account / research 10;announcement-hk / announcement-us 20;independent-opinion 30;summary / foreign-report / my-conference 50;`performance-calendar download` A 股 10 / 港美股 20
|
|
82
82
|
- **0.4 的 `bond` 系**:`bond` 全部命令 **0.4/次**(按次,与返回行数无关),三个例外按量计:`rating-overview` 0.4/**条**、`rating-change` 0.4/**只有数据的债券**、`issuer-rating-change` 0.4/**个发行人**
|
|
83
83
|
- **`tool web-search` 1/次**(按次,与返回条数、是否带 `--include-content` 无关;零结果与报错不扣)
|
|
84
|
-
- 🔴 **`insight highlight list` 5/条**——**按返回条数计**,`--size 20` 的一页 = 100
|
|
84
|
+
- 🔴 **`insight highlight list` 5/条**——**按返回条数计**,`--size 20` 的一页 = 100 积分。省略 `--size` 时 CLI 先估算,超过 1000 积分(约 200 条)报错退出,要全量须加 `--yes`
|
|
85
85
|
- **按页**:`tool file-parse` 0.8/页,**提交(`--file`)时按实际页数一次性扣**,取结果(`file-parse-check`)免费——50 页 PDF = 40 积分,别重复提交同一文件
|
|
86
86
|
- 🔴 **按次贵**:`ai knowledge-batch` 10、`management-discuss-*` 10;AI Agent(`one-pager` / `investment-logic` / `peer-comparison` / `research-outline` / `earnings-review` / `viewpoint-debate` / `theme-tracking`)**50/次**
|
|
87
87
|
- 🔴 **`ai hot-topic` 50/篇,按返回条数计**(不是按调用次数)。📌 **一「篇」= 一整份报告**(一份早报 / 午报 / 盘中快报 / 晚报),**不是报告里的一条话题**——一份报告通常包含多条热点话题。所以 `--size 20` 的一页 = 最多 20 份报告 = 1000 积分,**先用 `--start-date`/`--end-date` + `--category` 收窄再拉**,别省略 `--size` 直接全量。**可查的历史范围跟账号权限走**(试用档是滚动的「当前 −1 个月」,正式/定制档更长)——超出范围的日期返回空结果而不是报错,拿到空先想想是不是撞了权限窗口
|
|
88
88
|
- **题材**:`alternative concept-info` / `concept-securities` **50/次**;🔴 加 `--full`(催化事件 / 重点个股标识 / 纳入理由)走旧版 **500/次**,不需要这几列就别加
|
|
89
|
-
- ✅
|
|
89
|
+
- ✅ **扣费发生在接口成功返回数据之后**(平台计费规则):没查到内容(空结果)、报错都不扣分——各 download、`ai hot-topic`(50/篇)、`ai stock-summary`(3/条,无看点总结的个股不进返回列表也不计费)、AI 生成类(`one-pager` 等 50/次),以及按次计费的 `ai knowledge-batch`、题材、`tool web-search` 都是这样。**所以「先小范围试探再放大」是安全的**——先用窄条件确认能查到东西,再扩范围。⚠️ **「成功返回」按服务端算**:超时报错时服务端可能已经生成并返回了内容(只是客户端没收到),这次已经扣过,同参数重调会再扣一次;异步的 `earnings-review` / `viewpoint-debate` 在提交成功(拿到任务 ID)时就扣,之后生成失败不退。**单价未公布的** `pamirs-summary`(见下)别据此假定
|
|
90
90
|
- ⚠️ **同参数重复调用不免费**:按次计费的那批无缓存命中豁免(`one-pager` 等生成类重复调用每次扣分,即使秒回缓存内容);**按篇/按条的也一样**——重拉同一批 `hot-topic` 就是按条数再计一次费。生成类与列表结果拿到后自行留存复用,别为「刷新」重调
|
|
91
|
-
- ⚠️
|
|
91
|
+
- ⚠️ **这些端点超时 / 5xx 不自动重放**(共 46 个,完整清单见下方注释块:按次计费的 AI Agent 那批、`ai knowledge-batch` / `management-discuss-*` / `hot-topic`、题材两接口(含 `--full`)、`bond` 全部命令、`tool web-search`、`tool file-parse` 提交;50/篇 的几个 download;按条计费的 `insight highlight list`、观点 `detail` / `list --with-content`、`ai stock-summary` 与 `fundamental earning-forecast`;以及不计分但重放有副作用的 `vault stock-pool-create` 与云盘上传 / 新建文件夹 / 复制 / 删除)。仅连接失败、429 与 token 自愈会重试。服务端可能已经执行并计费,重放会重复扣分、多建一份或把成功报成失败——**一次调用给足超时比失败重跑省钱**
|
|
92
92
|
|
|
93
93
|
<!-- no-replay-endpoints
|
|
94
94
|
上面那句点名的「不重放」端点,完整清单如下(endpoint key,与 `gangtise raw list` 一致):
|
|
@@ -101,6 +101,7 @@ ai.management-discuss-earnings-call
|
|
|
101
101
|
ai.one-pager
|
|
102
102
|
ai.peer-comparison
|
|
103
103
|
ai.research-outline
|
|
104
|
+
ai.stock-summary.list
|
|
104
105
|
ai.theme-tracking
|
|
105
106
|
ai.viewpoint-debate.get-id
|
|
106
107
|
alternative.concept-info
|
|
@@ -119,6 +120,7 @@ bond.issuer-rating-change
|
|
|
119
120
|
bond.rating-change
|
|
120
121
|
bond.rating-overview
|
|
121
122
|
bond.valuation
|
|
123
|
+
fundamental.earning-forecast
|
|
122
124
|
insight.foreign-opinion.detail
|
|
123
125
|
insight.foreign-opinion.list-with-content
|
|
124
126
|
insight.foreign-report.download
|
|
@@ -156,7 +158,7 @@ vault.stock-pool.create
|
|
|
156
158
|
| 管理层讨论 / A·港·美股公告 / `alternative edb-*` 行业指标 | 前溯 **3 年** |
|
|
157
159
|
| `insight pamirs-summary` 帕米尔纪要 | **不限**(但需单独购买专家纪要库) |
|
|
158
160
|
|
|
159
|
-
⚠️
|
|
161
|
+
⚠️ **实际窗口按账号配**,换接口绕不过去(`indicator` 与 `quote day-kline` 同界)。整段在界外返回 `110003`(不是空结果),把日期移进范围或联系客户经理。🔴 **区间跨过下界时各接口不同**:`quote` 日 K / 分钟 K / 资金流向与 `fundamental valuation-analysis` 从下界起返回、**不报错**(首行明显晚于起始日时 CLI 在 stderr 提示);`indicator` 与 `bond` 整批报 `110003`。**例外**:`quote minute-kline` 窗口短得多,整段在窗外返回空结果、不报错(CLI 在 stderr 提示);`ai hot-topic` 超出账号可查范围时也返回空结果、不报错。
|
|
160
162
|
|
|
161
163
|
### 下载规则(`--file-type` / `--content-type`)
|
|
162
164
|
|
|
@@ -174,7 +176,7 @@ vault.stock-pool.create
|
|
|
174
176
|
| `vault record-download` | `--content-type` | `original` 原始文件 / `asr` 语音识别 / `summary` AI 速记 |
|
|
175
177
|
| `vault my-conference-download` | `--content-type` | `asr` 语音识别 / `summary` AI 速记 |
|
|
176
178
|
|
|
177
|
-
省略 `--output` 时 CLI 用本地 title-cache
|
|
179
|
+
省略 `--output` 时 CLI 用本地 title-cache 里的真实标题做文件名(`independent-opinion` 与 `report-image` 的下载不在此列,也没有 `--resolve-title`)——**只读缓存**,命中就零额外调用。缓存由同端点的 `list` 写入,所以「先 `list` 再 `download`」这个正常工作流本来就免费拿到正确文件名。
|
|
178
180
|
|
|
179
181
|
🔴 **未命中时默认不回查**,退回服务端文件名或 `<type>-<id>.<ext>`。要回查得显式加 `--resolve-title`——它拉最近 200 条(4 次请求),而这些 list 多数按 **0.1 积分/条**计费,约 20 积分,只用于取一个更易读的文件名(下载本身 10–50)。**批量下载或按 ID 下旧文件**时:要么先跑一次 `list` 把标题灌进缓存,要么直接 `--output ./<名>.<ext>` 自己定名;`--resolve-title` 会把取回的 200 条一并写回缓存,同批后续下载不再重复消耗。
|
|
180
182
|
|
|
@@ -198,7 +200,7 @@ vault.stock-pool.create
|
|
|
198
200
|
| 投资者问答 / 互动平台 / 电话会议 / 调研纪要 QA | `insight qa list`(按证券,`--security-code` 必填;`--source`/`--question-category`/`--answer-important` 精筛) |
|
|
199
201
|
| 研报图表 / 研报图片搜索 | `insight report-image list`(`--keyword`;下载原图 `insight report-image download --chunk-id`) |
|
|
200
202
|
| 跨类型语义搜索(研报+纪要+...) | `ai knowledge-batch`(多个 `--resource-type`) |
|
|
201
|
-
| 知识库原文下载(搜到后取全文) | `ai knowledge-resource-download`(前置:`knowledge-batch` 拿 `resourceType`+`sourceId`;`250001
|
|
203
|
+
| 知识库原文下载(搜到后取全文) | `ai knowledge-resource-download`(前置:`knowledge-batch` 拿 `resourceType`+`sourceId`;`250001`=组合不匹配) |
|
|
202
204
|
| 一页通 / 投资逻辑 / 同业对比 / 调研提纲 | `ai one-pager / investment-logic / peer-comparison / research-outline` |
|
|
203
205
|
| 个股看点 / 投研总结 / 公司速览 | `ai stock-summary`(`--security` **只收具体代码**,单次最多 6000 个、超过时 CLI 报错并提示分批;仅 A 股/港股,不支持 `aShares`/`hkStocks` 全市场批量) |
|
|
204
206
|
| 业绩点评(异步) | `ai earnings-review` |
|
|
@@ -208,9 +210,9 @@ vault.stock-pool.create
|
|
|
208
210
|
| 热点话题 / 早午晚报 | `ai hot-topic` |
|
|
209
211
|
| 管理层讨论(财报) | `ai management-discuss-announcement` |
|
|
210
212
|
| 管理层讨论(业绩会) | `ai management-discuss-earnings-call` |
|
|
211
|
-
| 日 K(历史,A 股 / 港股 / 美股 / 沪深 ETF /
|
|
212
|
-
| 沪深京指数日 K / 要指数名称 | `quote day-kline`
|
|
213
|
-
| ~~港股 / 美股日 K~~ | ⚠️
|
|
213
|
+
| 日 K(历史,A 股 / 港股 / 美股 / 沪深 ETF / 各类指数含全球指数,可混查) | `quote day-kline` |
|
|
214
|
+
| 沪深京指数日 K / 要指数名称 | `quote day-kline` 逐个传指数代码(**没有一次拿全部指数的写法**,`index-day-kline --security all` 会被 CLI 拒绝);指数名称用 `reference securities-search --keyword <指数代码> --category index`(返回 `gtsName`) |
|
|
215
|
+
| ~~港股 / 美股日 K~~ | ⚠️ 已弃用,用 `quote day-kline`(`day-kline-hk` / `day-kline-us` 仍可调但不校验代码) |
|
|
214
216
|
| 分钟 K(沪深 A 股 / ETF + 各类指数含全球指数) | `quote minute-kline`(`--security` 可重复,逐只并发合并) |
|
|
215
217
|
| 实时行情(A / 港 / 美 / 沪深 ETF / 各类指数含全球指数) | `quote realtime` |
|
|
216
218
|
| A股资金流向(主力/大单净流入,日频) | `quote fund-flow`(`--security` 或 `aShares` 全市场〔须带 `--start-date`/`--end-date`,按日自动分片〕;免费) |
|
|
@@ -222,7 +224,7 @@ vault.stock-pool.create
|
|
|
222
224
|
| A股盈利预测 / 一致预期 | `fundamental earning-forecast` |
|
|
223
225
|
| 前十大股东 | `fundamental top-holders` |
|
|
224
226
|
| 债券基本资料 / 票面利率 / 到期日 / 债券条款 | `bond basic-info`(`--field` 写错**整批拒绝** `100003`,不会静默丢列) |
|
|
225
|
-
| 发债主体 / 发行人画像 / 存续债券 | `bond issuer-info`(`--security` 按债券码 或 `--issuer`
|
|
227
|
+
| 发债主体 / 发行人画像 / 存续债券 | `bond issuer-info`(`--security` 按债券码 或 `--issuer` 按主体名模糊匹配,**二选一**,同传或都不传 CLI 在本地拒绝) |
|
|
226
228
|
| 债券行情 / 净价 / 全价 / YTM / 久期 | `bond daily-quote`(`--start-date`/`--end-date` **必填**) |
|
|
227
229
|
| 上清所估值 / 债券估值 | `bond valuation`(日期必填;默认只返回可信度「推荐」的估值) |
|
|
228
230
|
| 付息兑付 / 现金流 / 还本付息计划 | `bond cash-flow` |
|
|
@@ -251,7 +253,7 @@ vault.stock-pool.create
|
|
|
251
253
|
| 多证券已实现指标时序(单指标 × 多证券,按区间) | `indicator time-series`(前置:`indicator search --format json` 通过三项校验) |
|
|
252
254
|
| 条件选股 / 按指标筛股票(市值+PE+经营范围等多条件组合) | `indicator screener`(前置:`indicator search` 拿 code;范围可传板块 ID,见 `reference sector-search`) |
|
|
253
255
|
| 证券代码 / gtsCode 搜索 | `reference securities-search` |
|
|
254
|
-
| 首席 ID / 分析师 ID 搜索 | `reference chiefs-search`(按姓名/机构/团队,用于 `insight opinion --chief`) |
|
|
256
|
+
| 首席 ID / 分析师 ID 搜索 | `reference chiefs-search`(按姓名/机构/团队,用于 `insight opinion list --chief`) |
|
|
255
257
|
| 机构 ID 搜索(内资券商/外资/牵头/观点机构) | `reference institution-search`(按机构名,用于 `--institution` / `--broker`;免费) |
|
|
256
258
|
| 公众号 ID 搜索(按公众号名/机构/分类) | `reference official-account-search`(返回 `accountId`,喂 `insight official-account list --account-id`;免费) |
|
|
257
259
|
| 常量/枚举 ID(行业/城市/公告分类/区域/债券类型/评级类型/交易市场等,分类以 `reference constant-category` 的返回为准) | `reference constant-list --category <code>`(分类代码用 `reference constant-category` 查;该接口会列出每个分类适用于哪些接口的哪个参数) |
|
|
@@ -265,17 +267,14 @@ vault.stock-pool.create
|
|
|
265
267
|
- "搜索 X" → 数据维度精确(按行业/券商)走对应 `insight ... list`;跨类型语义搜索走 `ai knowledge-batch`
|
|
266
268
|
- 港股代码用在 `insight foreign-opinion --security` 还是 `quote day-kline --security`?前者要"境外"格式(`UBER.N`),后者要 `.HK`
|
|
267
269
|
- "成分股" → 题材深度(分组;重点标记/纳入理由需 `--full`)走 `alternative concept-securities`;板块(行业/概念分类树,纯代码名单)走 `reference sector-constituents`
|
|
268
|
-
-
|
|
269
|
-
-
|
|
270
|
-
-
|
|
271
|
-
-
|
|
272
|
-
-
|
|
273
|
-
-
|
|
274
|
-
-
|
|
275
|
-
-
|
|
276
|
-
- **EDE 指标参数名一律以 `indicator search --format json` 的 `parameterList` 为准**,不要凭记忆或照抄示例;参数名写错会报 `100003` 并指出是哪个指标的哪个参数(如复权参数是 `adjustType`)。🔴 **日期参数不能按 code 前缀推**——**唯一判据是 `parameterList` 里必填的是哪个**:有 `tradeDate` 就用 `--date`,有 `reportDate` 就补 `--indicator-param "code:reportDate=YYYY-MM-DD"`。多数报告期类指标(`is_*` 利润表等)要 `reportDate`(只传 `--date` 会报「不支持参数 tradeDate; 缺少必填参数 reportDate」),**但 `_ttm` 后缀整族相反、必填 `tradeDate`**(跨 `is_`/`cf_`/`div_`/`finc_` 四族都有)。行情 / 估值类(`qte_*` / `finc_pe_ttm` 等)用 `--date` 即可。`--security` 支持板块 ID(`reference sector-search` 的 10 位 `sectorId`);根级 `--scale` 只作用于声明了 `scale` 的指标,价格与金额可以混查
|
|
277
|
-
- 指标族速记:融资融券 21 个 `mgn_*`(`mgn_bal` 两融余额 / `mgn_fin_*` 融资 / `mgn_sl_*` 融券 / `mgn_flag` 是否标的,**仅 A 股有数**);行业分类 `scr_indu`(一个指标覆盖申万/中信/恒生/GICS,**必填** `industryType` 1-4 + `industryLevel` 0-4,返回字符串)与三个行业组合指标 `scr_indu_citic` / `scr_indu_sw` / `scr_indu_gics`(体系写进编码,只需可选的 `industryLevel`;单套体系用它们更省事,横比多套仍用 `scr_indu`)。详见 `indicator.md`
|
|
278
|
-
- "业绩点评"双义消歧:**检索已有**(研报/纪要里的业绩点评内容)走 `insight ... list --llm-tag earningsReview`(0.1/条);**AI 现生成**一份走 `ai earnings-review`(异步、50/次)。不确定问一句
|
|
270
|
+
- **证券指标按任务形态路由,不是搜到 EDE 就一律走 EDE**(细节见 `references/commands/indicator.md`):
|
|
271
|
+
- 单证券 → 优先 `fundamental` 专用命令(多数免费 / 低价);多证券批量取**已实现**指标 → `indicator`(EDE)一次拉取:同一日期 / 报告期横比用 `cross-section`,区间走势用 `time-series`(不能多指标 × 多证券同时)
|
|
272
|
+
- 始终不走 EDE:盈利预测 / 一致预期 → `fundamental earning-forecast`(EDE 的 EPS 是已实现值,**不能冒充预测**);A 股估值历史分位 → `valuation-analysis`;行情与 K 线 → `quote`;行业 / 宏观指标(无证券维度)→ `alternative edb-*`。**例外:总市值只有 EDE 有**——`indicator cross-section --indicator qte_mkt_cptl`(单位「元」,用 `--scale` 缩放)
|
|
273
|
+
- 取数前 `indicator search --format json` 核三项:`indicatorName` + `description` 语义对、`scopeList` 覆盖全部目标市场、`parameterList` 必填参数可满足;任一不符就回退专用接口,港 / 美股缺专用能力时如实说不支持。「某市场无数据」这类否定结论以当次 `scopeList` + 抽查一行为准
|
|
274
|
+
- 日期参数**只看 `parameterList` 必填哪个**:`tradeDate` → `--date`,`reportDate` → `--indicator-param "code:reportDate=..."`(多数报告期类要后者,但 `_ttm` 整族要 `tradeDate`);两个都必填(如 `div_cash_yld`)就两个都用 `--indicator-param` 显式给,只给 `reportDate` 时 `--date` 不再注入、会报 `100001`。日频估值(`finc_pe_ttm` / `finc_pb_mrq`)用最新交易日,用报告期末日期会取到陈值;参数名同样以 `parameterList` 为准(复权是 `adjustType`)
|
|
275
|
+
- 结果**按 `security` 字段取值**,别按请求下标对位(证券会按代码升序重排);批量回填加 `--key-by code`
|
|
276
|
+
- 估值历史:EDE 与 `valuation-analysis` 的财报口径切换时点与财报版本都不同,做分位 / 回测两边都拉交叉核
|
|
277
|
+
- "业绩点评"双义消歧:**检索已有**的业绩点评:研报走 `insight research list --llm-tag earningsReview`(0.1/条;`--llm-tag` 只有 `opinion` / `research` / `foreign-report` 三个列表有),业绩会纪要走 `insight summary list --category earningsCall`;**AI 现生成**一份走 `ai earnings-review`(异步、50/次)。不确定问一句
|
|
279
278
|
|
|
280
279
|
## 公司名 → 证券代码
|
|
281
280
|
|
|
@@ -297,19 +296,19 @@ gangtise reference securities-search --keyword <公司名> --category stock --to
|
|
|
297
296
|
```
|
|
298
297
|
取 `list[0].gtsCode`(CLI 已剥掉信封,输出顶层就是 `{returnedCount, list}`)。matchScore < 0.5 时让用户从前 3 条选。
|
|
299
298
|
|
|
300
|
-
**交易所后缀**:`.SH` 上交所(6 开头)| `.SZ` 深交所(0/3 开头)| `.BJ` 北交所 | `.HK` 港股 | `.O` 纳斯达克 | `.N` 纽交所 | `.A` AMEX | 沪深 ETF 同 `.SH` / `.SZ` | 全球指数用数据源后缀(`SPX.SPI` `N225.NKI` `HSI.HI` `GDAXI.FRA`
|
|
299
|
+
**交易所后缀**:`.SH` 上交所(6 开头)| `.SZ` 深交所(0/3 开头)| `.BJ` 北交所 | `.HK` 港股 | `.O` 纳斯达克 | `.N` 纽交所 | `.A` AMEX | 沪深 ETF 同 `.SH` / `.SZ` | 全球指数用数据源后缀(`SPX.SPI` `N225.NKI` `HSI.HI` `GDAXI.FRA` …,清单见 `references/commands/quote.md`,**别猜**)。
|
|
301
300
|
|
|
302
301
|
**跨市场**:`quote day-kline` 与 `quote realtime` 都可一次混合传入多市场代码(含 ETF 与全球指数):`quote realtime --security 600519.SH --security 00700.HK --security AAPL.O --security SPX.SPI` 单接口同时返回。
|
|
303
302
|
|
|
304
|
-
##
|
|
303
|
+
## 响应解析骨架(通用模式)
|
|
305
304
|
|
|
306
305
|
| 模式 | 出现命令 | 结构 | 处理 |
|
|
307
306
|
|------|---------|------|------|
|
|
308
307
|
| **列表** | 大多数 `list` | `{list: [...], total: N}` | 遍历 list;CLI 已自动翻页 |
|
|
309
308
|
| **下载** | 各 `download` | stdout = 文件路径字符串 | 直接读 stdout 整行 |
|
|
310
|
-
| **AI 内容** | one-pager / investment-logic / peer-comparison / research-outline | `{content: "markdown文本"}` | 取 `content` 直接呈现 |
|
|
309
|
+
| **AI 内容** | one-pager / investment-logic / peer-comparison / research-outline | `{content: "markdown文本"}`(one-pager 另带 `date`,即生成日期) | 取 `content` 直接呈现 |
|
|
311
310
|
| **K 线** | quote * | `{list: [{tradeDate, ...}]}` | 按 tradeDate 排序,取需要的尾部 |
|
|
312
|
-
| **异步(含 *-check)** | earnings-review / viewpoint-debate / earnings-review-check / viewpoint-debate-check | 提交 `{dataId, status, hint}`;check 成功 `{date, content}
|
|
311
|
+
| **异步(含 *-check)** | earnings-review / viewpoint-debate / earnings-review-check / viewpoint-debate-check | 提交 `{dataId, status, hint}`;check 成功 `{date, content}`;仍在生成 `{dataId, status:"pending", hint}`(退出 0);终态失败 stderr 报错、退出 1 | 见下方"异步任务流程" |
|
|
313
312
|
| **异步文件** | tool file-parse / file-parse-check | 提交 `{taskId, status, hint}`;就绪后 stdout = ZIP 路径,未就绪 `{status:"pending"}` | 解压取 `file.md`;重取用 `file-parse-check`(免费),别重跑 `file-parse`(按页重扣) |
|
|
314
313
|
|
|
315
314
|
完整字段对照见 `references/response-schema.md`。
|
|
@@ -339,18 +338,20 @@ gangtise reference securities-search --keyword <公司名> --category stock --to
|
|
|
339
338
|
| 最近一个月 | 30 天 | 30 天 | — |
|
|
340
339
|
| 过去一年 / 近一年 | 1 年 | 1 年 | 1 年 |
|
|
341
340
|
| 今年 | 1/1 至今 | 1/1 至今 | 1/1 至今 |
|
|
342
|
-
| 今天 / 今日 |
|
|
343
|
-
| 最新 /
|
|
341
|
+
| 今天 / 今日 | 当天:`--start-time "<今天> 00:00:00" --end-time "<今天> 23:59:59"` | 见下行「最新 / 当前(K 线)」 | — |
|
|
342
|
+
| 最新 / 当前(K 线) | — | **45 天范围 → 从尾部取最近交易日**,不要只用 `--limit` | — |
|
|
344
343
|
| 最新一期 / 最新报告期(财报) | — | — | 省略 `--fiscal-year`,传 `--period latest`(默认) |
|
|
345
344
|
| 最新观点 / 今日观点 | 1 天范围 + `--rank-type 2` | — | — |
|
|
346
345
|
|
|
347
|
-
|
|
346
|
+
🔴 **`--end-time` 一律写到当天末尾 `23:59:59`**:只写日期时,A 股公告与 `knowledge-batch` 按当日 00:00:00 处理,「今天」就成了零宽窗口、取不到当天任何数据。
|
|
348
347
|
|
|
349
|
-
|
|
348
|
+
日期参数**按参数名判断、不按命令组**:名字带 `-date` 的(`--start-date` / `--end-date` / `--date` / `--report-date`)收年在前日期(`YYYY-MM-DD` 首选,`YYYY/MM/DD` / `YYYYMMDD` 也收);名字带 `-time` 的(`--start-time` / `--end-time`)收年在前日期 + 可选 ` HH:mm[:ss]`(空格或 `T` 分隔)或 10 / 13 位时间戳。易错:Insight / Vault 各 list 用 `-time`,**唯独 `insight performance-calendar` 用 `-date`**;AI 组两种都有(`theme-tracking --date`、`hot-topic` / `management-discuss-*` 用 `-date`,`security-clue` / `knowledge-batch` 用 `-time`);`quote minute-kline` 用 `-time`,其余 Quote / Fundamental / Indicator / `bond` / `edb-data` 用 `-date`。拿不准看该命令 `--help`。
|
|
349
|
+
|
|
350
|
+
支持排序切换的 list:opinion / summary / pamirs-summary / research / foreign-report / 三个公告 / foreign-opinion / independent-opinion / official-account。**要最新加 `--rank-type 2`(按 `publishTime` 倒序);要最相关用默认 `--rank-type 1` + `--keyword`**——两者从同一结果集取的是**不同子集**,没有 `--keyword` 时无差异。`--search-type 2`(只有 summary / pamirs-summary / research / foreign-report / 三个公告 / official-account 有)扩大命中总数与 `--rank-type 2` 的候选池,**不改变 `--rank-type 1` 取回的条目**,要相关度不必加。判断这两个参数是否生效的方法见 `references/commands/insight.md` 开头。
|
|
350
351
|
|
|
351
352
|
## 异常处理
|
|
352
353
|
|
|
353
|
-
**退出码**:`0` 完整成功(含合法空结果)/ `3` 有数据但不完整(`partial: true
|
|
354
|
+
**退出码**:`0` 完整成功(含合法空结果)/ `3` 有数据但不完整(`partial: true`,stderr 有 warning;标记只在 `--format json` 里看得见,csv / jsonl 落盘看旁边 `<file>.meta.json` 的 `complete` 与 `result`)/ `4` 数据写全了,但 `--output` 文件在收尾时被另一次写向同一路径的导出替换(给并发导出各自的 `--output` 即可)/ `1` 硬失败/ `130` / `143` / `129` 被 Ctrl-C / `kill` / 终端断开中断(本次的暂存文件已删除)。**拿到 3 就必须告知用户缺了哪段,不能当成功静默继续**。按标记处理:`failedPages` / `failedShards` 重拉失败段;`truncatedShards` / `truncatedSecurities` / `totalCapped` / `duplicateRows` 缩小日期范围分批重拉;`changedRows` 直接重拉;`missingFields` 核对字段名;其余标记见 `references/errors.md`。报错行带 `[trace <id>]`,**报障给 Gangtise 时务必带上**。
|
|
354
355
|
|
|
355
356
|
最高频的几个码(全表、「不报错的坑」、`screener` 缺列判据与困境自救见 `references/errors.md`):
|
|
356
357
|
|
|
@@ -364,7 +365,7 @@ gangtise reference securities-search --keyword <公司名> --category stock --to
|
|
|
364
365
|
| `410110`(新码 `140001`) | 异步生成中 | 继续轮询 |
|
|
365
366
|
| `410111`(新码 `140002`) | 异步生成失败,或 EDE 终态参数错 | **不重试**,换参数 |
|
|
366
367
|
| `999999` | 系统错误(EDE 无数据不用此码) | 参数无误仍报即服务端故障 |
|
|
367
|
-
| `999011` |
|
|
368
|
+
| `999011` | 凭证无效 | 查 AK/SK 环境变量,CLI 不重试 |
|
|
368
369
|
| `999004` | 无资源权限(整库未开通与单条不可见都走这个码) | 先确认该数据库是否已购买 |
|
|
369
370
|
| `0000001008` / `999002` | token 失效 | CLI 自动重登一次,无 AK/SK 时提示重新登录 |
|
|
370
371
|
| `100006` | 查询/下载数量超限 | 缩短日期范围或调小 `--size`/`--limit` |
|
|
@@ -376,7 +377,7 @@ gangtise reference securities-search --keyword <公司名> --category stock --to
|
|
|
376
377
|
按需 Read 对应文件:
|
|
377
378
|
|
|
378
379
|
- 内资观点 / 纪要 / 路演 / 调研 / 策略 / 论坛 / 财报日历(performance-calendar)/ 研报 / 外资研报 / A 股公告 / 港股公告 / 美股公告 / 外资观点 / 独立观点 / 公众号(official-account)/ 投资者问答(qa)/ 研报图表(report-image)→ `references/commands/insight.md`
|
|
379
|
-
- 行情命令(A 股 / 港股 / 美股 / ETF / 指数日 K、分钟 K、实时行情、资金流向 fund-flow
|
|
380
|
+
- 行情命令(A 股 / 港股 / 美股 / ETF / 指数日 K、分钟 K、实时行情、资金流向 fund-flow,含全球指数清单) → `references/commands/quote.md`
|
|
380
381
|
- 三大报表(A 股 / 港股 / 美股)/ 主营 / 估值 / 盈利预测 / 股东 → `references/commands/fundamental.md`
|
|
381
382
|
- knowledge-batch / security-clue / 个股看点(stock-summary)/ AI agent / 异步任务 / 主题跟踪 / 热点 / 管理层讨论 → `references/commands/ai.md`
|
|
382
383
|
- drive / record / my-conference / wechat / 股票池 → `references/commands/vault.md`
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# AI 命令详细参数
|
|
2
2
|
|
|
3
|
-
注意:`ai
|
|
3
|
+
注意:`ai investment-logic` / `peer-comparison` / `research-outline` 返回 `{content: "markdown文本"}`,`ai one-pager` 与 `viewpoint-debate-check` / `earnings-review-check`(完成时)返回 `{date, content}`;这类命令仍然加 `--format json`,但呈现给用户时直接取 `content` 字段,不要展示 JSON 包装层。
|
|
4
4
|
|
|
5
|
-
**⏱
|
|
5
|
+
**⏱ 超时与重复扣分**:同步生成类(`one-pager` / `investment-logic` / `peer-comparison` / `research-outline` / `theme-tracking` / `management-discuss-*`)CLI 已内置 120s 超时下限,**无需前缀**;`stock-summary` 同样有 120s 下限;`hot-topic` 首次生成也常 >30s,仍建议前置 `GANGTISE_TIMEOUT_MS=120000`。**贵档端点超时/5xx 不自动重试**(重放=重复扣分)——超时报错后内容可能已在服务端生成并扣费,同参数再调会**再扣一次**(`one-pager` 等生成类按次计费、无缓存命中豁免),所以一次调用给足超时比失败重跑省钱;拿到的生成内容自行留存复用,别为"刷新"重调。`earnings-review` / `viewpoint-debate` 是异步——用 `--wait`(工具超时 ≥360s)或 `*-check` 轮询,不吃这个超时。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
gangtise ai knowledge-batch --query <text> [--query <text2>] [--top <n>] [--resource-type <n>] [--knowledge-name <name>] [--start-time <ts|datetime>] [--end-time <ts|datetime>]
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
-
|
|
15
|
+
- **积分**:10/次(按次计费;没检索到内容与报错不扣;超时不自动重发)
|
|
16
|
+
|
|
17
|
+
- `--query`(**必选**,可重复,最多 5 个——上限由接口校验,CLI 不拦):缺失时本地报错,不发空请求。**每个 `--query` 整段送出**——句子里的逗号是标点,不会被当成分隔符拆成两个查询;要问多个问题就重复传 `--query`
|
|
16
18
|
- `--top` 默认 10,最大 20
|
|
17
19
|
- `--resource-type`:`10` 券商研报 | `11` 外资研报 | `20` 内部报告 | `40` 首席观点 | `50` 公司公告 | `51` 港股公告 | `60` 会议平台纪要 | `70` 调研纪要公告 | `80` 网络资源纪要 | `90` 产业公众号
|
|
18
20
|
- `--knowledge-name`:`system_knowledge_doc` 系统知识库 | `tenant_knowledge_doc` 机构知识库
|
|
@@ -24,7 +26,7 @@ gangtise ai knowledge-batch --query <text> [--query <text2>] [--top <n>] [--reso
|
|
|
24
26
|
gangtise ai knowledge-resource-download --resource-type <n> --source-id <id> [--output <path>]
|
|
25
27
|
```
|
|
26
28
|
|
|
27
|
-
`resourceType + sourceId` 必须匹配(来自 knowledge-batch 返回),错配返回 `250001
|
|
29
|
+
`resourceType + sourceId` 必须匹配(来自 knowledge-batch 返回),错配返回 `250001`。
|
|
28
30
|
|
|
29
31
|
## 投研线索 `ai security-clue`
|
|
30
32
|
|
|
@@ -32,9 +34,11 @@ gangtise ai knowledge-resource-download --resource-type <n> --source-id <id> [--
|
|
|
32
34
|
gangtise ai security-clue --start-time <datetime> --end-time <datetime> --query-mode <mode> [--gts-code <code>] [--source <name>] [--from <n>] [--size <n>]
|
|
33
35
|
```
|
|
34
36
|
|
|
37
|
+
- **积分:5/条**(按返回条数计)。`--start-time` / `--end-time` 必填,省略 `--size` 即拉全量(估算超过 1000 积分时 CLI 报错拦下,加 `--yes` 才放行)——**务必带 `--size`**,先 `--size 1` 看 `Total` 再估总价
|
|
38
|
+
- `--start-time` / `--end-time`(**必选**)
|
|
35
39
|
- `--query-mode`(**必选**):`bySecurity` 按证券 | `byIndustry` 按行业
|
|
36
|
-
- `--gts-code
|
|
37
|
-
- `--source`:`researchReport` | `conference` | `announcement` | `view
|
|
40
|
+
- `--gts-code`(必传:`bySecurity` 下不传,接口报 `410120 gtsCodeList不能为空`;CLI 未强制):个股代码(如 `600519.SH`)或申万行业代码(如 `821035.SWI`)。**先用 `reference securities-search` 查个股,或读 `references/lookup-ids.md` 查行业**(全量行业代码:`reference sector-constituents --sector-id 2000000014`)
|
|
41
|
+
- `--source`:`researchReport` | `conference` | `announcement` | `view`(可重复;其他取值 CLI 在本地拒绝——接口对错值不报错,会返回不按来源过滤的全部结果)
|
|
38
42
|
- `--from` / `--size`:自动翻页(单页 500);省略 `--size` 拉全量
|
|
39
43
|
|
|
40
44
|
## 一页通 / 投资逻辑 / 同业对比
|
|
@@ -45,8 +49,10 @@ gangtise ai investment-logic --security-code <code>
|
|
|
45
49
|
gangtise ai peer-comparison --security-code <code>
|
|
46
50
|
```
|
|
47
51
|
|
|
52
|
+
- **积分**:50/次(按次计费,重复调用每次都扣;超时不自动重发)
|
|
53
|
+
|
|
48
54
|
- 都支持 A 股 / 港股
|
|
49
|
-
- 返回 `{content: "markdown"}`
|
|
55
|
+
- 返回 `{content: "markdown"}`(`one-pager` 另带 `date`,即一页通的生成日期;取的是该公司最新一份)— 直接呈现 content
|
|
50
56
|
- 首次调用可能耗时数十秒,告知用户
|
|
51
57
|
|
|
52
58
|
## 个股看点 `ai stock-summary`
|
|
@@ -55,16 +61,16 @@ gangtise ai peer-comparison --security-code <code>
|
|
|
55
61
|
gangtise ai stock-summary --security <code> [--security <code2> ...]
|
|
56
62
|
```
|
|
57
63
|
|
|
58
|
-
- `--security`(**必选**,可重复):**只收具体证券代码**,单次最多 6000 个(接口上限,CLI 同值拦截,超过报错并提示分批)——全 A
|
|
64
|
+
- `--security`(**必选**,可重复):**只收具体证券代码**,单次最多 6000 个(接口上限,CLI 同值拦截,超过报错并提示分批)——全 A 股可一次提交完,但**按返回条数 3 积分/条计**,数千只就是上万积分,提交前先把估算总价告诉用户
|
|
59
65
|
- 🔴 **不支持全市场批量**:`aShares` / `hkStocks` 这类市场关键词不被接受,CLI 会本地报错(服务端对它们返 `120001`,读起来像代码写错,容易误判)。需要覆盖一批标的就先用 `reference securities-search` 或自有清单取到代码,再分批传入
|
|
60
66
|
- **仅支持 A 股和港股**
|
|
61
|
-
- **积分**:`3
|
|
67
|
+
- **积分**:`3`/条;个股若无看点总结则不在返回列表中,也不扣分——所以**返回行数少于提交数是正常的**,不是丢了数据。超时 / 5xx **不自动重试**(一次最多可扣 18000 积分,重放可能重复扣分):CLI 已给它 120 秒超时下限;失败后先确认再重跑
|
|
62
68
|
- 🔴 **整批返 0 行别直接读成「这批都没有看点」**:它与「确实都没有看点」长得一样。挑其中一两只单查确认后再下结论
|
|
63
69
|
- 返回字段:`securityCode` / `securityName` / `summary`(精炼投研总结)/ `date`(更新日期 `yyyy-MM-dd`)
|
|
64
70
|
|
|
65
71
|
**示例:**
|
|
66
72
|
```bash
|
|
67
|
-
|
|
73
|
+
gangtise ai stock-summary --security 600519.SH --security 00700.HK --format json # 茅台 / 腾讯看点
|
|
68
74
|
```
|
|
69
75
|
|
|
70
76
|
## 调研提纲 `ai research-outline`
|
|
@@ -73,6 +79,8 @@ GANGTISE_TIMEOUT_MS=120000 gangtise ai stock-summary --security 600519.SH --secu
|
|
|
73
79
|
gangtise ai research-outline --security-code <code>
|
|
74
80
|
```
|
|
75
81
|
|
|
82
|
+
- **积分**:50/次(按次计费;超时不自动重发)
|
|
83
|
+
|
|
76
84
|
- 仅 A 股
|
|
77
85
|
- 返回 `{content: "markdown"}`
|
|
78
86
|
|
|
@@ -83,12 +91,14 @@ gangtise ai earnings-review --security-code <code> --period <period> [--wait]
|
|
|
83
91
|
gangtise ai earnings-review-check --data-id <id>
|
|
84
92
|
```
|
|
85
93
|
|
|
94
|
+
- **积分**:提交 50/次(按次计费;超时不自动重发,重提会再扣一次)
|
|
95
|
+
|
|
86
96
|
- `--period`:`年份+报告期`,如 `2025q3`(q1/interim/q3/annual),仅 A 股,覆盖最近 6 期
|
|
87
97
|
- `--wait`(**推荐**):阻塞等待到出结果(最长约 5 分钟:14 次指数退避轮询 5s→30s,累计 ≈316s)——**用它时把工具/命令超时设到 ≥360s**,否则外层先超时
|
|
88
98
|
- 不带 `--wait` 的手动轮询:① `earnings-review` → 拿 `{dataId, status, hint}` → ② 间隔 ~30s `*-check`(预算 ~2-3 分钟)→ pending 继续 → 多次仍 pending 交用户稍后手动 check
|
|
89
99
|
- 这一步的 `{dataId, status, hint}` 同样受 `--format` / `--output` 控制,**加了 `--output` 就会落盘**,脚本可以直接从文件里取 `dataId` 再去轮询
|
|
90
100
|
- `*-check` 返回「还在生成中」时同样落盘(`{dataId, status: "pending", hint}`),所以轮询脚本每一轮都能从同一个文件读状态,不必区分「出结果了」和「还没好」两种取法
|
|
91
|
-
-
|
|
101
|
+
- 错误码:异步端点返回 `410110`(生成中,继续等待)/ `410111`(生成失败,终态不重试),对应新码 `140001` / `140002`,CLI 两代都认
|
|
92
102
|
|
|
93
103
|
## 观点 PK `ai viewpoint-debate`(异步)
|
|
94
104
|
|
|
@@ -97,8 +107,11 @@ gangtise ai viewpoint-debate --viewpoint <text> [--wait]
|
|
|
97
107
|
gangtise ai viewpoint-debate-check --data-id <id>
|
|
98
108
|
```
|
|
99
109
|
|
|
110
|
+
- **积分**:提交 50/次(按次计费;超时不自动重发,重提会再扣一次)
|
|
111
|
+
|
|
100
112
|
- `--viewpoint`:观点文本,**上限 1000 字**
|
|
101
113
|
- 双向逻辑校验:看多→拆解风险,看空→挖反转
|
|
114
|
+
- ⚠️ 观点过不了平台的敏感词检测时,提交照常受理并扣分,生成阶段以 `410111` 失败;同样的内容重提仍会失败,提交前自己把关措辞
|
|
102
115
|
- 异步流程同 earnings-review
|
|
103
116
|
|
|
104
117
|
## 主题跟踪 `ai theme-tracking`
|
|
@@ -107,15 +120,17 @@ gangtise ai viewpoint-debate-check --data-id <id>
|
|
|
107
120
|
gangtise ai theme-tracking --theme-id <id> --date <yyyy-MM-dd> [--type <name>]
|
|
108
121
|
```
|
|
109
122
|
|
|
123
|
+
- **积分**:50/次(按次计费;超时不自动重发)
|
|
124
|
+
|
|
110
125
|
- `--theme-id`(**必选**):用 `gangtise reference concept-search --keyword <主题名>` 查,取 `conceptId`(题材与主题共用 ID 体系)
|
|
111
|
-
- `--date
|
|
112
|
-
- `--type`:`morning` 晨报 | `night`
|
|
126
|
+
- `--date`(**必选**):支持近 30 天
|
|
127
|
+
- `--type`:`morning` 晨报 | `night` 晚报(不传返回两者)(**逐字照抄**:CLI 不在本地校验这个取值,拼错会原样发给接口)
|
|
113
128
|
- **返回**:`[{type, date, content}, ...]` — 列表,每个元素是一份报告。某主题在指定日期可能只有一种类型(如只有晚报)或两种都没(空列表)。空结果不代表接口出错,建议换主题或换日期再试
|
|
114
129
|
|
|
115
130
|
**示例:**
|
|
116
131
|
```bash
|
|
117
132
|
# 查"核电"主题 2026-05-09 的晚报
|
|
118
|
-
|
|
133
|
+
gangtise ai theme-tracking --theme-id 121000002 --date 2026-05-09 --type night --format json
|
|
119
134
|
# 返回 [{"type":"night","date":"2026-05-09","content":"..."}]
|
|
120
135
|
```
|
|
121
136
|
|
|
@@ -126,10 +141,10 @@ gangtise ai hot-topic [--start-date <date>] [--end-date <date>] [--category <nam
|
|
|
126
141
|
```
|
|
127
142
|
|
|
128
143
|
- 结构化数据:驱动事件 / 投资逻辑 / 核心标的 / 话题精读
|
|
129
|
-
- `--category`:`morningBriefing` 早报 | `noonBriefing` 午报 | `afternoonFlash` 盘中快报 | `eveningBriefing`
|
|
144
|
+
- `--category`:`morningBriefing` 早报 | `noonBriefing` 午报 | `afternoonFlash` 盘中快报 | `eveningBriefing` 晚报(可重复,默认全部;其他取值 CLI 在本地拒绝——接口对错值不报错,结果看着像正常查询)
|
|
130
145
|
- `--with-related-securities` / `--with-close-reading`:默认开启;`--no-with-related-securities` / `--no-with-close-reading` 显式排除(响应里相应字段置空)
|
|
131
146
|
- 自动翻页,单页最大 20
|
|
132
|
-
- 🔴 **计费 50/篇,按返回条数计**(不是按调用次数)。📌 **一「篇」= 一整份报告**(一份早报 / 午报 / 盘中快报 / 晚报),**不是报告里的一条话题**——一份报告通常包含多条热点话题,`--category` 选的也是报告类型而不是话题。所以一页 20 条 = 20 份报告 = 1000 积分:**先用 `--start-date`/`--end-date` + `--category` 把范围收窄,再考虑要不要全量**(省略 `--size`
|
|
147
|
+
- 🔴 **计费 50/篇,按返回条数计**(不是按调用次数)。📌 **一「篇」= 一整份报告**(一份早报 / 午报 / 盘中快报 / 晚报),**不是报告里的一条话题**——一份报告通常包含多条热点话题,`--category` 选的也是报告类型而不是话题。所以一页 20 条 = 20 份报告 = 1000 积分:**先用 `--start-date`/`--end-date` + `--category` 把范围收窄,再考虑要不要全量**(省略 `--size` 时 CLI 先取 1 篇拿到总数来估算,超过 1000 积分报错,确认要全量加 `--yes`;结果多于 1 篇时这 1 篇会多计一次,知道要几篇就直接传 `--size`)
|
|
133
148
|
- **可查的历史范围跟账号权限走**:试用档是滚动的「当前 −1 个月」,正式/定制档更长。超出范围的日期**返回空结果、不报错**——拿到空先确认是不是撞了本账号的窗口,别当成「那天没有报告」
|
|
134
149
|
|
|
135
150
|
## 管理层讨论-财报 `ai management-discuss-announcement`
|
|
@@ -138,6 +153,8 @@ gangtise ai hot-topic [--start-date <date>] [--end-date <date>] [--category <nam
|
|
|
138
153
|
gangtise ai management-discuss-announcement --report-date <date> --security-code <code> --dimension <name>
|
|
139
154
|
```
|
|
140
155
|
|
|
156
|
+
- **积分**:10/次(按次计费;超时不自动重发)
|
|
157
|
+
|
|
141
158
|
- `--report-date`(**严格**):仅接受 `xxxx-06-30`(半年报)/ `xxxx-12-31`(年报)
|
|
142
159
|
- `--dimension`(**必选**):`businessOperation` 业务经营与行业 | `financialPerformance` 财务与经营成果 | `developmentAndRisk` 发展规划与风险 | `all` 返回报告中完整的管理层讨论内容(内容可能过长,谨慎使用)
|
|
143
160
|
- 返回 `content` 为字符串数组(每段一个元素)
|
|
@@ -148,6 +165,8 @@ gangtise ai management-discuss-announcement --report-date <date> --security-code
|
|
|
148
165
|
gangtise ai management-discuss-earnings-call --report-date <date> --security-code <code> --dimension <name>
|
|
149
166
|
```
|
|
150
167
|
|
|
168
|
+
- **积分**:10/次(按次计费;超时不自动重发)
|
|
169
|
+
|
|
151
170
|
- `--report-date`:接受 `xxxx-03-31` / `xxxx-06-30` / `xxxx-09-30` / `xxxx-12-31`
|
|
152
171
|
- `--dimension`(**必选**):`businessOperation` | `financialPerformance` | `developmentAndRisk`(注意:不支持 `all`,与财报版不同)
|
|
153
172
|
- 返回 `content` 为字符串
|
|
@@ -24,7 +24,7 @@ gangtise alternative edb-search --keyword 空调 --limit 50 --format table
|
|
|
24
24
|
gangtise alternative edb-data --indicator-id <id> [--indicator-id <id2>] --start-date <date> --end-date <date>
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
- `--indicator-id`(**至少 1 个**,最多 10
|
|
27
|
+
- `--indicator-id`(**至少 1 个**,最多 10 个——上限由接口校验,CLI 不拦):指标 ID,来自 `edb-search` 返回的 `indicatorId`,可重复传
|
|
28
28
|
- `--start-date`(**必选**):开始日期,格式 `yyyy-MM-dd`
|
|
29
29
|
- `--end-date`(**必选**):结束日期,格式 `yyyy-MM-dd`
|
|
30
30
|
- 返回格式:列表,每行为 `{date, <indicatorId1>: value, <indicatorId2>: value, ...}`
|
|
@@ -84,7 +84,7 @@ gangtise alternative concept-info --concept-id 121000130 --format json
|
|
|
84
84
|
gangtise alternative concept-securities --concept-id <id> [--full]
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
- **积分**:**50
|
|
87
|
+
- **积分**:**50/次**(按次计费;没有内容与报错不扣);加 `--full` 走旧版接口,**500/次**,每只成分股多两列 `isKey`(重点个股)与 `inclusionReason`(纳入理由)
|
|
88
88
|
|
|
89
89
|
- `--concept-id`(**必选**):题材指数 ID,同上(`reference concept-search` 查)
|
|
90
90
|
- 返回当前成分股,**按分组结构**组织(题材深度 F8);仅最新截面,不支持历史回溯
|
|
@@ -108,7 +108,7 @@ gangtise bond announcement (--security <code>... | --start-date <d> --end-date <
|
|
|
108
108
|
|
|
109
109
|
🔴 **`--security` 与 `--start-date`/`--end-date` 二选一**,同传报 `100003`(CLI 先本地拦下)。默认返回 `announcementDate`+`securityCode`。
|
|
110
110
|
|
|
111
|
-
🔴 **本命令需要手动翻页**:它是本族唯一分页的接口,且响应里**没有 `total`**,因此不走 CLI 的自动翻页。`--page-no` 从 1 开始逐页递增,`--page-size` 取值 1–200
|
|
111
|
+
🔴 **本命令需要手动翻页**:它是本族唯一分页的接口,且响应里**没有 `total`**,因此不走 CLI 的自动翻页。`--page-no` 从 1 开始逐页递增,`--page-size` 取值 1–200、**默认 50**(超出 200 在本地就被拒绝)。本族按次计费(0.4/次)且不自动重发,每翻一页扣一次——**批量翻页显式传 `--page-size 200`**,调用次数只有默认的四分之一。终止条件:
|
|
112
112
|
|
|
113
113
|
- 翻过末页返回**空数组**(`--format json` 输出 `[]`,退出码 0)——到这一页就停
|
|
114
114
|
- 条件下**一条公告都没有**时,任何页码都返回 `404` / `130001`(退出码 1)——第 1 页收到它就是没有数据,不用再翻
|
|
@@ -80,7 +80,7 @@ gangtise fundamental main-business --security-code <code> [--breakdown <type>] [
|
|
|
80
80
|
- `--breakdown`(默认 `product`):`product` 按产品 | `industry` 按行业 | `region` 按地区
|
|
81
81
|
- `--period`:`interim` 中报 | `annual` 年报(可重复)
|
|
82
82
|
- 默认时间窗:`endDate` 当前日期、`startDate` 三年前
|
|
83
|
-
-
|
|
83
|
+
- **没有 `--fiscal-year`**(误传报 unknown option);按年份筛选用 `--start-date`/`--end-date`
|
|
84
84
|
- `--field` 只认 `references/fields.md` 「主营业务」小节的字段(`opRevenue` / `grossProfit` 等);`securityCode`、`itemName` 这类**不是**该接口字段,传了会报「响应字段数与 fieldList 不匹配」(前 3 列 `periodName` / `periodEndDate` / `categoryName` 恒定返回)
|
|
85
85
|
|
|
86
86
|
## A股估值分析 `fundamental valuation-analysis`
|
|
@@ -92,10 +92,10 @@ gangtise fundamental valuation-analysis --security-code <code> --indicator <name
|
|
|
92
92
|
- **市场与路由**:本命令仅支持 A 股(港股 / 美股会报 `120001`「非有效A股」)。A股单证券估值序列与估值历史分位始终优先本命令;多证券批量取一组已实现估值点值,且 `indicator search` 三项校验都通过时,才优先 EDE `cross-section` / `time-series`。港 / 美股估值历史分位当前 CLI 不支持,不能用普通 EDE 点值冒充
|
|
93
93
|
- `--indicator`(**必选**):`peTtm` 滚动PE | `pbMrq` PB | `peg` PEG | `psTtm` 滚动PS | `pcfTtm` 滚动PCF | `em` 企业倍数
|
|
94
94
|
- `--limit` 默认 2000,省略 `--start-date` 时自动查近一年
|
|
95
|
-
- 🔴 **序列按自然日逐日一行(含周末)**,行数超过 `--limit` 时接口**保留最近的行、丢掉区间开头**。CLI 撞满即标 `partial`、退出码 3 并在 stderr 说明(首行恰好就是 `--start-date` 时说明没丢,不标)。取长区间把 `--limit`
|
|
95
|
+
- 🔴 **序列按自然日逐日一行(含周末)**,行数超过 `--limit` 时接口**保留最近的行、丢掉区间开头**。CLI 撞满即标 `partial`、退出码 3 并在 stderr 说明(首行恰好就是 `--start-date` 时说明没丢,不标)。取长区间把 `--limit` 设到不小于区间天数:取 N 年就设 `--limit` ≥ 366 × N(且不早于账号权限窗口的起点)
|
|
96
96
|
- 🔴 **`--start-date` 早于账号回溯下界时,接口从下界起返回、不报错**(整段都在界外才报 `110003`)。首行晚于 `--start-date` 时 CLI 在 stderr 提示——可能是该证券上市较晚,也可能是撞了权限窗口,看首行日期判断
|
|
97
97
|
- `--skip-null`:丢弃 `value`/`percentileRank` 为 null 的行(最新交易日可能未入库)
|
|
98
|
-
- **返回字段只有 7 个**:`tradeDate` `value` `percentileRank` `average` `median` `upper1Std` `lower1Std`,**没有 `securityCode`**。🔴 `--field` 里**至少要有一个数值列**(`tradeDate` 以外的 6 个):只传 `tradeDate`、只传不存在的名字(含 `securityCode`)时接口返回 0
|
|
98
|
+
- **返回字段只有 7 个**:`tradeDate` `value` `percentileRank` `average` `median` `upper1Std` `lower1Std`,**没有 `securityCode`**。🔴 `--field` 里**至少要有一个数值列**(`tradeDate` 以外的 6 个):只传 `tradeDate`、只传不存在的名字(含 `securityCode`)时接口返回 0 行、**不报错**,读起来像「这只票没有估值数据」(CLI 会在 stderr 提示原因);数值列与不存在的名字混传时,回显的字段比每行的值多,CLI 直接报错退出 1。`tradeDate` 总在第一列返回,不用写进 `--field`(写了 CLI 会在发请求前去掉;同一字段写两次也只发一次)。**建议不传 `--field`**,证券代码本来就是你自己传进去的
|
|
99
99
|
|
|
100
100
|
## A股盈利预测 `fundamental earning-forecast`
|
|
101
101
|
|
|
@@ -104,11 +104,11 @@ gangtise fundamental earning-forecast --security-code <code> [--start-date <date
|
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
- **市场与路由**:本命令仅支持 A 股(港股 / 美股会报 `120001`「非有效A股」)。A股盈利预测 / 一致预期始终走本命令,不走 EDE;EDE 搜索目前没有一致预期语义,搜到的基本 / 稀释 EPS 是已实现值,不能冒充预测 EPS。港 / 美股盈利预测当前 CLI 不支持
|
|
107
|
-
- `--start-date` / `--end-date
|
|
107
|
+
- `--start-date` / `--end-date`:默认截至北京时间的今天、向前一年
|
|
108
108
|
- `--consensus` 可重复:`netIncome` 归母净利润 | `netIncomeYoy` 同比增速 | `eps` 每股收益 | `pe` 市盈率 | `bps` 每股净资产 | `pb` 市净率 | `peg` PEG | `roe` 净资产收益率 | `ps` 市销率
|
|
109
109
|
- **`roe` 的单位是百分比(%)**:`35.6` 即 35.6%,**不要再做 ÷100 之类的单位换算**——换算后的数字看着仍像个 ROE,不会报错
|
|
110
110
|
- 返回结构:`{securityCode, securityName, updateList: [{date, fieldList: [{forecastYear, ...consensus}]}]}` — 每个日期固定返回 3 年预测(如 `2026E` / `2027E` / `2028E`)
|
|
111
|
-
- **积分**:`0.5`/条(盈利预测是 `fundamental`
|
|
111
|
+
- **积分**:`0.5`/条(盈利预测是 `fundamental` 里唯一收费项,其余报表/主营/估值/股东均免费)。行数随日期区间增长(每个交易日一组、每组 3 年预测),长区间一次可达数千积分,所以超时 / 5xx **不自动重试**;长区间按年分段拉
|
|
112
112
|
|
|
113
113
|
## 前十大股东 `fundamental top-holders`
|
|
114
114
|
|