{"id":"7c830cb5-41bd-47cb-83be-e41387b15aaf","entityType":"agent","slug":"clawhub-sunbinpy-gh-data","name":"股海罗盘 - A股股票量化分析","canonicalUrl":"https://www.xpersona.co/agent/clawhub-sunbinpy-gh-data","canonicalPath":"/agent/clawhub-sunbinpy-gh-data","generatedAt":"2026-10-09T23:08:41.999Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":null},"description":"🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Skill: 股海罗盘 - A股股票量化分析 Owner: sunbinpy Summary: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Tags: a-share:2.2.49, data-analysis:2.2.49, finance:2.2.49, latest:2.2.51, quant:2.2.48, stocks:2.2.49 Version history: v2.2.51 | 2026-08-12T07:13:59.107Z | user 安全审查修复：移除数据库直连工具(research_utils/db_config)+SKILL.md权限声明+评分文案中性化+激活前置条件防误触发 v2.2.50 | 2026-08","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s175w104v89dwhjzz79964dgtd88hde7:gh-data","sourceUrl":"https://clawhub.ai/sunbinpy/gh-data","homepage":"https://clawhub.ai/sunbinpy/skills/gh-data","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/sunbinpy/gh-data","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/sunbinpy/skills/gh-data","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":69,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Skill: 股海罗盘 - A股股票量化分析 Owner: sunbinpy Sum"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":null},"stars":null,"forks":null,"downloads":2910,"packageName":null,"latestVersion":"2.2.51","tractionLabel":"2.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:48:14.199Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T10:48:14.200Z","lastCrawledAt":"2026-10-09T10:48:14.199Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T10:48:14.199Z","lastVerifiedAt":null,"highlights":[{"version":"2.2.51","createdAt":"2026-08-12T07:13:59.107Z","changelog":"安全审查修复：移除数据库直连工具(research_utils/db_config)+SKILL.md权限声明+评分文案中性化+激活前置条件防误触发","fileCount":15,"zipByteSize":89369},{"version":"2.2.50","createdAt":"2026-08-12T06:24:24.481Z","changelog":"购买链接token化","fileCount":19,"zipByteSize":93591},{"version":"2.2.49","createdAt":"2026-08-10T15:29:50.589Z","changelog":"方案A展示口径切换：方向匹配率（3档符号判定：涨/跌/震荡）升为主指标，参考区间命中率降为辅助并注明±1%窄区间苛刻口径；展示规则/字段翻译/章节十二模板同步更新","fileCount":16,"zipByteSize":91733},{"version":"2.2.48","createdAt":"2026-08-09T14:13:36.168Z","changelog":"新增涨跌方向汇总：5档方向(偏多/震荡偏多/震荡/震荡偏空/偏空)映射为涨/震荡/跌三层汇总作为第一层展示，客户先看涨跌再看细化档位；part2 key_signals格式升级为'涨(细化:震荡偏多,近30天正确率X%)'；SKILL.md第十二章+铁律模板同步更新","fileCount":16,"zipByteSize":90644},{"version":"2.2.47","createdAt":"2026-08-09T03:49:13.758Z","changelog":"- Obsolete test and data files were removed to streamline the codebase. - SKILL.md documentation has been significantly updated: - Internal workflow and usage instructions have been clarified and reduced in verbosity. - Technical execution details, risky word lists, and field mapping rules remain for compliance, but implementation steps have been condensed. - Command-line and Python execution examples are maintained but non-core commentary is removed. - The skill’s main features and configuration are unchanged in capability. - No changes to external APIs, core features, or overall end-user behavior.","fileCount":16,"zipByteSize":90141},{"version":"2.2.46","createdAt":"2026-08-09T03:41:47.916Z","changelog":"gh-data 2.2.46 - 移除 _gen_verify_pub.py 和 skill-card.md，简化代码库和文档结构。 - SKILL.md 文档内容精简：删除冗余空行和结尾代码段未完成部分，无功能影响。 - 规范和强化 SKILL.md 风控语句、措辞要求与输出合规保留，保持对LLM行为的严格约束。 - 无核心功能变更。","fileCount":19,"zipByteSize":99570},{"version":"2.2.45","createdAt":"2026-08-08T15:01:05.929Z","changelog":"gh-data 2.2.45 更新日志 - 新增 _gen_verify_pub.py 文件，增加功能/验证模块。 - 优化 ghdata/data_fetcher.py 逻辑。 - 更新元数据文件 _meta.json。 - 移除 skill-card.md 文档。","fileCount":20,"zipByteSize":99666},{"version":"2.2.44","createdAt":"2026-07-13T15:09:09.166Z","changelog":"- 强制变更：分析调用方式须直接执行Python，不再通过 chat_with_agent 跳转至 gh-data 智能体，提升响应速度。 - SKILL.md 文档更新，详细列出调用方式要求，禁止 chat_with_agent 调用。 - skill-card.md 文件移除，_test_timeout.py 测试文件新增。 - 其他内容和功能保持不变，本次为兼容与调用方式规范的大幅调整版本。","fileCount":19,"zipByteSize":99199}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s175w104v89dwhjzz79964dgtd88hde7:gh-data","setupComplexity":"medium","setupSteps":["Python environment detected. Create a strict virtual environment (`python -m venv .venv`) before installing dependencies to prevent system-level package conflicts.","Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T23:08:41.996Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sunbinpy-gh-data/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":null},"readme":"Skill: 股海罗盘 - A股股票量化分析\n\nOwner: sunbinpy\n\nSummary: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\n\nTags: a-share:2.2.49, data-analysis:2.2.49, finance:2.2.49, latest:2.2.51, quant:2.2.48, stocks:2.2.49\n\nVersion history:\n\nv2.2.51 | 2026-08-12T07:13:59.107Z | user\n\n安全审查修复：移除数据库直连工具(research_utils/db_config)+SKILL.md权限声明+评分文案中性化+激活前置条件防误触发\n\nv2.2.50 | 2026-08-12T06:24:24.481Z | user\n\n购买链接token化\n\nv2.2.49 | 2026-08-10T15:29:50.589Z | user\n\n方案A展示口径切换：方向匹配率（3档符号判定：涨/跌/震荡）升为主指标，参考区间命中率降为辅助并注明±1%窄区间苛刻口径；展示规则/字段翻译/章节十二模板同步更新\n\nv2.2.48 | 2026-08-09T14:13:36.168Z | user\n\n新增涨跌方向汇总：5档方向(偏多/震荡偏多/震荡/震荡偏空/偏空)映射为涨/震荡/跌三层汇总作为第一层展示，客户先看涨跌再看细化档位；part2 key_signals格式升级为'涨(细化:震荡偏多,近30天正确率X%)'；SKILL.md第十二章+铁律模板同步更新\n\nv2.2.47 | 2026-08-09T03:49:13.758Z | auto\n\n- Obsolete test and data files were removed to streamline the codebase.\n- SKILL.md documentation has been significantly updated:\n  - Internal workflow and usage instructions have been clarified and reduced in verbosity.\n  - Technical execution details, risky word lists, and field mapping rules remain for compliance, but implementation steps have been condensed.\n  - Command-line and Python execution examples are maintained but non-core commentary is removed.\n  - The skill’s main features and configuration are unchanged in capability.\n- No changes to external APIs, core features, or overall end-user behavior.\n\nv2.2.46 | 2026-08-09T03:41:47.916Z | auto\n\ngh-data 2.2.46\n\n- 移除 _gen_verify_pub.py 和 skill-card.md，简化代码库和文档结构。\n- SKILL.md 文档内容精简：删除冗余空行和结尾代码段未完成部分，无功能影响。\n- 规范和强化 SKILL.md 风控语句、措辞要求与输出合规保留，保持对LLM行为的严格约束。\n- 无核心功能变更。\n\nv2.2.45 | 2026-08-08T15:01:05.929Z | auto\n\ngh-data 2.2.45 更新日志\n\n- 新增 _gen_verify_pub.py 文件，增加功能/验证模块。\n- 优化 ghdata/data_fetcher.py 逻辑。\n- 更新元数据文件 _meta.json。\n- 移除 skill-card.md 文档。\n\nv2.2.44 | 2026-07-13T15:09:09.166Z | auto\n\n- 强制变更：分析调用方式须直接执行Python，不再通过 chat_with_agent 跳转至 gh-data 智能体，提升响应速度。\n- SKILL.md 文档更新，详细列出调用方式要求，禁止 chat_with_agent 调用。\n- skill-card.md 文件移除，_test_timeout.py 测试文件新增。\n- 其他内容和功能保持不变，本次为兼容与调用方式规范的大幅调整版本。\n\nv2.2.43 | 2026-07-13T14:05:30.340Z | auto\n\ngh-data v2.2.43 Changelog\n\n- Added new API: db_manager.get_rating_wind_today() for fetching today's research rating updates.\n- Documentation (SKILL.md) updated with details on get_rating_wind_today(), and clarified usage examples and workflow for enhanced transparency.\n- Internal metadata (_meta.json) updated for compatibility.\n\nv2.2.42 | 2026-07-13T14:03:50.484Z | auto\n\n- 数据采集能力由16维扩展为17维，增加了“行业信息”字段，全面提升股票量化分析的维度与覆盖面。\n- 相应更新了全量数据的描述、快速开始示例、工作流说明及采集代码示例，现已支持17维采集且默认8并发高速获取。\n- 文档所有相关表述、示例及默认输出均同步从16维升级为17维，确保描述和功能一致。\n- 采集代码实现在示例中添加了多线程并发，进一步提升数据抓取效率。\n\nv2.2.41 | 2026-07-13T13:51:28.059Z | auto\n\n- Now supports 17 data dimensions by adding “行业信息” (industry info) as a new built-in fetcher dimension.\n- APIKey读取与配置规范加强：APIKey 只允许从 ~/.ghdata/ghdataapikey 读取，不再支持 settings.json 及环境变量，文档说明进一步强调此规则。\n- 更新配置项与配置文档，使 APIKey 读取与其它参数的优先级与兼容性描述更为清晰。\n- 删除 skill-card.md 文件，移除冗余文档。\n- 核心采集示例代码同步扩展至 17 维，文档示例同步更新。\n\nv2.2.40 | 2026-07-13T13:28:27.505Z | auto\n\nVersion 2.2.40\n\n- Expanded explanation of 16维全量数据采集方式，增加本地 HTTP 直连采集的速度优势描述\n- 拆分并详细列举本地采集与 WebAPI 增强数据的处理流程，突出后备采集方案\n- skill-card.md 文件被移除\n- 文档结构优化，便于理解每个阶段的具体调用途径\n- No changes to feature set or external interface\n\nv2.2.39 | 2026-07-12T16:16:57.221Z | auto\n\ngh-data 2.2.39\n\n- 更新 SKILL.md 大文件，删除末尾内容冗余；无影响核心功能。\n- 文档内容作精简与优化，未涉及功能或API变更。\n- 无新增功能、接口或破坏性更改。\n\nv2.2.38 | 2026-07-12T15:59:06.127Z | auto\n\ngh-data 2.2.38\n\n- Updated SKILL.md documentation without changing any code logic.\n- No user-facing features or behavior were modified in this release.\n\nv2.2.37 | 2026-07-12T15:42:33.777Z | auto\n\n- 更新使用方式：明确通过 chat_with_agent 向 gh-data 智能体发请求进行分析，禁止自行拼HTTP地址或端口。\n- 精简和重组快速开始部分，删除原有的 Python 模块级调用示例，聚焦外部智能体对接方式。\n- 配置与APIKey加载流程未变，相关说明位置略有优化。\n- 删除 skill-card.md 文件，无功能影响。\n- 其他核心工作流、风险提示与合规规范保持一致。\n\nv2.2.36 | 2026-07-10T14:29:48.791Z | auto\n\ngh-data 2.2.36\n\n- 新增 ghdata/afterhours.py，支持ETF盘后活跃度相关统计。\n- db_manager 新增 get_etf_stats 方法，用于获取ETF板块盘后净流入/活跃度等数据。\n- SKILL.md 增加 ETF板块盘后活跃度API说明，丰富API说明和用法示例。\n- skill-card.md 已移除。\n- 细节优化：reporter.py、db_manager等文件更新，支持新数据和功能。\n\nv2.2.35 | 2026-07-10T01:24:51.135Z | auto\n\n- 重大说明与文档重构：SKILL.md 完全重写，整体结构更简洁，突出自学习回测、匹配率、规律图谱等核心能力，强调产品定位不只是查数据而是“信号历史准度”。\n- 新增醒目简介（特点速览），将自学习量化引擎、16维全量数据、自动规律挖掘、ETF四象联动、研报交叉验证、DOCX报告输出等卖点前置。\n- 工作流和快速开始指令大幅简化，突出“一键三步走”用法（采集数据、量化分析、生成报告）。\n- 全面保留合规风控条款及红线词替换表、API字段翻译强制规则等，便于下游 LLM 保持输出合规。\n- 代码与配置说明优化，冗余解释删除，文档更直观易用。\n- 移除 ghdata/__init__.py，\n\nv2.2.34 | 2026-07-08T13:42:12.767Z | auto\n\ngh-data 2.2.34\n\n- 提升合规过滤，强化“偏反弹”词语禁止规则，确保历史规律方向描述更精准合规\n- SKILL.md细化多项措辞合规表，约束模块（如analyzer.py、reporter.py）输出用词\n- 更新并强调API分类名、字段名展示和翻译规则，确保输出内容符合风险提示与监管要求\n- 调整WebAPI数据流分析说明，补充ETF资金流和研报数据纳入分析的必要性\n- 常规Bug修复及文档完善，优化说明细节与调用示例\n\nv2.2.33 | 2026-07-08T12:55:48.637Z | auto\n\ngh-data 2.2.33 更新日志\n\n- 持续完善合规文本管控，对输出内容的术语与措辞合规要求进一步细化，补充文档明确红线词及对应“必须使用”表述。\n- 明确强调 analyzer.py、reporter.py 内所有输出文本同样适用严格合规词汇表，不能仅依赖 LLM 自觉。\n- 对API分类名/字段名输出与翻译规则细化，特别是“反弹”类词语全部替换为“偏多”，防止任何形式“偏反弹”输出。\n- 输出生成后，强制要求使用 sanitizer.sanitize() 进行一次终极文本合规清洗。\n- 文档结构优化，提升查阅效率，突出风险提示和禁用语规范的重要性。\n\nv2.2.32 | 2026-07-08T05:09:19.162Z | auto\n\ngh-data 2.2.32\n\n- SKILL.md 文档内容优化，无接口或功能变更。\n- 保持对风险提示、措辞表、API字段翻译及输出后合规过滤流程的完整约束描述。\n- 明确要求所有文本输出（包括硬编码）必须走合规过滤流程，禁止出现指定高风险措辞和行为。\n- 进一步细化“偏反弹”表述绝对禁止规则和 API 分类名替换规范。\n\nv2.2.31 | 2026-07-08T04:56:37.768Z | auto\n\n## gh-data v2.2.31 Changelog\n\n- Documentation (SKILL.md) updated only; no code changes.\n- No feature, interface, or behavior changes in this version.\n- Text and usage instructions in documentation may have been adjusted or clarified.\n\nv2.2.30 | 2026-07-08T04:17:54.396Z | auto\n\n- 增强核心合规规则，完善 WebAPI 字段名翻译、红线措辞替换说明，细化输出文本强制过滤规范。\n- 明确“偏反弹”绝对禁用，新增 API 分类名与展示强制替换标准。\n- 优化 LLM 输出合规指引及风险提示要求，补充表述用词对照及规则适用范围。\n- 补充并细化配置优先级、增强数据获取、工作流操作流程等文档细节。\n- 对全部“analyzer.py”“reporter.py”等模块输出文本适用新规，强调禁止直接输出高风险措辞。\n\nv2.2.29 | 2026-07-08T04:08:16.414Z | auto\n\ngh-data v2.2.29 更新日志\n\n- 更新文档（SKILL.md），优化说明和部分措辞规范表述。\n- 明确并重申 API 字段翻译与输出过滤的强制要求，细化合规处理规则。\n- 未涉及核心功能或接口变动，仅为合规和文档规范补充完善。\n- 其余功能保持不变，保证与上个版本兼容。\n\nv2.2.28 | 2026-07-08T03:48:46.688Z | auto\n\ngh-data v2.2.28\n\n- 更新 analyzer.py，包含部分分析逻辑调整与细节优化。\n- SKILL.md 细节修订，无破坏性变动。  \n- 保持 API、字段、用户操作与旧版本兼容。\n- 无新增功能与接口，主要为分析过程的细节完善。\n\nv2.2.27 | 2026-07-08T03:42:18.267Z | auto\n\ngh-data 2.2.27\n\n- 强化APIKey管理：APIKey现仅支持从~/.ghdata/ghdataapikey文件读取和写入，其他来源已禁用，提升安全性与合规性。\n- 更新设置优先级说明，调整配置项“config/settings.json/环境变量”对APIKey的生效范围。\n- 新增测试文件_test_clear_config.txt，辅助配置清理与回归测试。\n- 优化config.py与analyzer.py的配置读取和环境变量行为，避免APIKey泄露和误用。\n\nv2.2.26 | 2026-07-08T02:41:10.063Z | auto\n\ngh-data 2.2.26\n\n- 合规性修正：修正了输出文本的禁止词/敏感词管控，进一步符合风险提示及术语规范要求。\n- 优化输出：对 reporter.py、db_manager.py 中涉及分析报告生成与API字段翻译逻辑做调整，使全部硬编码文本严格遵守最新措辞强制对照表。\n- 其他小幅调整，提升数据输出合规性与API返回结果的描述准确性。\n\nv2.2.25 | 2026-07-08T01:34:58.248Z | user\n\n📌 券商研报移至第九章；方案B模板新增ETF四象联动+⑧研报观点+机构观点验证；风险提示动态化；db_manager新增本地ETF兜底映射(30+行业)；SKILL.md所有ETF/研报调用从注释改为活跃代码\n\nv1.0.0 | 2026-07-07T23:36:49.260Z | auto\n\ngh-data 1.0.0 – Initial Release\n\n- Renamed skill from \"ghdata-stock\" to \"gh-data\".\n- Added default `webapi_url` in config: `http://api.topeasychina.com:15099/api`.\n- Updated documentation for configuration options and usage of WebAPI.\n- Refined and reduced API code samples and internal instructions in documentation.\n- Removed legacy \"skill-card.md\" file.\n\nv2.2.24 | 2026-07-07T16:19:32.710Z | user\n\n📝 SKILL.md补充ETF和研报数据的LLM调用指引：阶段B代码示例+15章报告结构表\n\nv2.2.23 | 2026-07-07T16:11:12.479Z | user\n\n🐛 研报数据改为WebAPI通道（客户无需数据库权限）；ETF资金流集成到报告第4章；14章优化分级标题\n\nv2.2.22 | 2026-07-07T16:07:56.475Z | user\n\n✨ ETF行业资金流集成到报告第4章；研报14章新增券商覆盖统计+分级标题\n\nv2.2.21 | 2026-07-07T15:58:03.236Z | user\n\n🔒 移除生产服务器地址暴露；补充ETF/研报功能描述\n\nv2.2.20 | 2026-07-07T15:42:20.187Z | user\n\n🐛 修复技能显示名称\n\nv2.2.19 | 2026-07-07T15:40:54.687Z | user\n\n🐛 修复技能显示名称\n\nv2.2.18 | 2026-07-07T15:40:16.729Z | user\n\n🐛 修复displayName显示问题\n\nv2.2.17 | 2026-07-07T15:37:31.866Z | user\n\n✨ 新增券商研报5大功能、ETF资金流集成、NAV净值折溢价、合规措辞整改\n\nv2.2.16 | 2026-07-06T04:59:18.948Z | auto\n\n- 明确声明技能本身仅提供16维历史数据统计和查询，不生成任何分析结论和推荐，结论需由用户接入的LLM生成。\n- 更新和强化“风险提示”，强调技能只输出历史数据和统计，所有分析解读归LLM，不涉及投资建议、未来预测或买卖指示。\n- 优化 description 和角色说明，避免将技能功能混同为主动分析工具。\n- 保持所有原有数据采集、统计、报告生成等核心用法不变。\n- 规范LLM输出合规用语约束及流程不变，强调对输出结论归属的职责划分。\n\nv2.2.15 | 2026-07-06T04:54:52.686Z | auto\n\n- Enhanced compliance text filtering in sanitizer.py to enforce stricter output word rules\n- Improved automatic replacement of prohibited phrases in all analysis outputs\n- Ensured word filtering aligns exactly with the output wording rules defined in SKILL.md\n\nv2.2.14 | 2026-07-06T04:49:27.251Z | auto\n\ngh-data 2.2.14\n\n- 新增 sanitizer.py，统一文本输出合规过滤，确保禁用词和合规表达自动替换\n- SKILL.md 更新，增加输出后要求强制调用 sanitizer.sanitize，确保所有分析报告和结论文本经过自动校验合规\n- 内部文本输出合规管控升级，reporter.py 等模块内容需通过 sanitizer 过滤 \n\nThis update enforces standardized, compliant wording in all outputs via a dedicated sanitizer module.\n\nv2.2.13 | 2026-07-06T04:45:21.407Z | auto\n\ngh-data 2.2.13\n\n- 增强文档风险提示，把“偏反弹”单词列为绝对禁止词，分析结果展示时必须全部替换为“偏多”或“偏空”；\n- 新增API字段名/模式名翻译输出规则，禁止“预测”等词出现在用户可见内容中；\n- 明确“反弹”分类名、字段、文本等一律替换为“偏多”描述；\n- 细化LLM输出强制措辞表，补充API原始数据也需合规转换；\n- 纯文档更新，无功能或API更改。\n\nv2.2.12 | 2026-07-06T04:37:55.825Z | auto\n\ngh-data 2.2.12\n\n- SKILL.md skill name updated from “股海罗盘 - A股股票量化分析” to “gh-data” for consistency.\n- No logic or API changes; only documentation adjustment.\n- All functions, workflows, and usage instructions remain unchanged.\n\nv2.2.11 | 2026-07-06T04:35:50.253Z | auto\n\n- 新增API数据分类名输出规则，所有包含“反弹”的API模式分类名（如“大跌后反弹特征”）输出时自动替换为“偏多”描述（如“大跌后偏多特征”）。\n- 扩展措辞强制对照表，禁止“预测”、“预判”、“涨跌范围预测”、“T+1预测”、“共振”等词，必须用历史参考、参考区间、多周期合成信号等合规表述。\n- 明确所有WebAPI返回的关键分类名（含代码输出）都需遵守以上措辞及输出规则。\n- 其余文档优化：无影响核心功能代码的改动，配置及API用法未变化。\n\nv2.2.10 | 2026-07-06T03:28:17.197Z | auto\n\ngh-data 2.2.10\n\n- 扩充与修订了风险提示与措辞对照表，补充“企稳”、“反弹动力”等表述规范，完善合规输出要求\n- 明确硬编码输出内容同样必须遵循措辞规范\n- SKILL.md文档细节微调，说明更清晰\n- 代码结构与主接口未做核心变更，仅为合规性细则补充\n\nv2.2.9 | 2026-07-06T03:22:50.023Z | auto\n\ngh-data 2.2.9\n\n- 强化风险提示措辞合规要求，补充和细化强制用词对照表，涵盖“反弹属性”“反弹需求”等表述。\n- 明确“风险提示用语约束”同样适用于内部代码输出、reporter.py/analyzer.py等模块的硬编码文本，非仅对LLM有限制。\n- 在SKILL.md显著位置强调代码层也须严格遵守输出措辞规范，提升合规性。\n- 规范说明和表述一致性，部分细节描述补充更精确。\n\nv2.2.8 | 2026-07-06T03:02:18.044Z | auto\n\ngh-data 2.2.8 更新日志\n\n- 新增数据文件：data/600600_data.json\n- 更新 _meta.json 和 ghdata/db_manager.py 以支持新数据内容\n- 其他内容和分析流程保持不变\n\nv2.2.7 | 2026-07-06T02:48:08.838Z | auto\n\ngh-data v2.2.7\n\n- 优化了 LLM 输出措辞规范，补充了措辞强制对照表（新增：概率、评级参考、承压等词汇要求）\n- 明确禁止 \"概率偏高/偏低\"、\"评级参考\"、\"具吸引力\"、\"值得关注\"、\"承压\" 等措辞，统一替换为中性描述\n- 其它文档说明细节补充，无功能变更\n\nv2.2.6 | 2026-07-06T02:33:35.651Z | auto\n\ngh-data 2.2.6\n\n- 新增“LLM输出措辞强制对照表”，明确哪些用词禁止使用，哪些必须替换，约束分析报告和结果说明措辞，以规避合规风险（如判势→信号方向、准确率→匹配率、操作暗示全面禁用等）。\n- 个别流程描述内容调整，阶段B“多周期分析”措辞由“共振判势”改为“综合信号”。\n- 其它文档微调，补充补全风险提示说明，强调禁止投资建议和暗示。\n- 本版本仅文档规范性升级，无分析功能变更。\n\nv2.2.5 | 2026-07-06T02:23:53.890Z | auto\n\n- updated 1 file(s).\n- Updated SKILL.md and bundle contents.\n\nv2.2.4 | 2026-07-06T01:54:58.966Z | auto\n\n- added 1, updated 7, removed 2 file(s).\n- Updated SKILL.md and bundle contents.\n\nv2.2.3 | 2026-07-05T15:16:02.806Z | auto\n\ngh-data 2.2.3\n\n- 新增 api_key 配置项，支持付费API密钥，更清晰的付费/体验密钥机制。\n- 优化配置优先级：支持 settings.json、环境变量、~/.ghdata/ghdataapikey、自动生成兜底。\n- config 模块自动初始化，无需手动读取密钥，简化用法与启动流程。\n- SKILL.md 文档更新，详细说明 api_key 用法和初始化细节。\n- 无破坏性变更，兼容现有接口及用法。\n\nArchive index:\n\nArchive v2.2.51: 15 files, 89369 bytes\n\nFiles: _meta.json (127b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5759b), ghdata/chart.py (5920b), ghdata/config.py (7330b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (30516b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (89483b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2496b), SKILL.md (69032b)\n\nFile v2.2.51:SKILL.md\n\n---\nname: ghdata-stock\ndescription: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"📊\",\n      \"name\": \"股海罗盘 - A股股票量化分析\"\n    }\n  }\nhomepage: https://www.oraskl.com/ghdata-admin\n---\n\n# 股海罗盘（gh-data）— A 股股票量化分析技能\n\n---\n\n## 🚀 核心能力\n\n| | 特点 | 说明 |\n|:-:|:-----|:-----|\n| 🧠 | **自学习量化引擎** | 每只股票60W+历史信号回测，输出历史匹配率，不只是数据，告诉**\"过去准不准\"** |\n| 📊 | **17维全量数据** | 实时行情·K线·MACD/KDJ/RSI·资金流向·机构持仓·融资融券·高管变动·研报·财务三表·分红·解禁 |\n| 📈 | **自动规律挖掘** | 5类规律图谱：支撑/阻力位（触碰次数）、大涨后回调概率、大跌后反弹特征、MACD趋势判定 |\n| 💎 | **ETF四象联动** | 独家板块级资金流向×个股走势联动分析，判断是\"板块共振\"还是\"独立行情\" |\n| 🔗 | **研报交叉验证** | 券商覆盖统计、EPS一致性分歧度、今日评级动态，判断市场共识方向 |\n| 📝 | **一键DOCX报告** | 自动生成15章完整结构化分析报告，含K线图嵌入，可直接保存和分享 |\n\n## ⚡ 快速开始\n\n**支持的请求类型：**\n\n| 请求示例 | 说明 |\n|:---------|:-----|\n| `分析 601899` | 返回17维全量数据+量化分析+信号+历史匹配率 |\n| `600600 青岛啤酒 简要分析` | 返回核心要点，不生成DOCX |\n| `600000 资金面怎么样` | 仅分析资金流向+ETF四象联动+机构持仓 |\n| `生成报告 002455` | 生成完整DOCX报告 |\n| `券商怎么看 601899` | 研报观点验证+评级统计 |\n| `688981 盘前做T` | ETF盘后信号+T+1盘后因子 |\n\n### ⚠️ 激活前置条件（防误触发）\n\n本技能**仅在用户明确涉及股票/ETF 分析意图时激活**，普通聊天话题（\"看看\"、\"怎么样\"、\"随便看看\"等无股票语义的日常对话）**不得触发**。\n\n判断标准（满足其一才算明确意图）：\n1. 消息中包含 **6 位 A 股代码**（如 601899、600028）或 ETF 代码（如 510300）；\n2. 消息中包含 **明确股票/ETF 名称**（如\"中国石化\"、\"沪深300ETF\"）；\n3. 消息中包含**明确分析动词**（分析、看盘、筛选股票、估值、走势、研报、资金面、盘前做T、生成报告等）+ 股票语义。\n\n不满足上述条件时：**不调用任何 WebAPI**，按普通对话回复，避免消耗付费额度。\n\n## ⚙️ 配置\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}\n```\n\n| 配置项 | 默认值 | 说明 |\n|:-------|:-------|:-----|\n| `api_key` | `\"\"` | **付费API密钥，必填。** 用户购买后在此填入。**仅从 `~/.ghdata/ghdataapikey` 文件读取**，❌ 不支持 settings.json |\n| `webapi_url` | `\"\"` | WebAPI 地址（付费用户获取，购买后提供） |\n| `webapi_timeout` | `30` | HTTP 请求超时（秒） |\n| `doc_dir` | `./doc` | 报告输出目录 |\n\n> **配置生效规则**（优先级从高到低）：  \n> 1. 上述 `config` 配置（仅URL/超时，不含APIKey）  \n> 2. 本地文件 `~/.ghdata/ghdataapikey`（**APIKey唯一来源**）  \n> 3. 自动生成GUID兜底（免费体验用）\n>\n> ⚠️ 环境变量 `GHDATA_API_URL` / `GHDATA_TIMEOUT` 和 `settings.json` **仅用于配置URL和超时**，不读APIKey。\n>\n> **⚠️ APIKey 铁律：** APIKey **只允许**从 `~/.ghdata/ghdataapikey` 这一个文件读取和写入。不读settings.json，不读环境变量。删除该文件 → 自动生成随机GUID → 服务端验证失败 → 降级为免费预览模式。\n\n## 🔐 权限声明（透明度）\n\n本技能运行需要以下权限，安装/授权前请知悉：\n\n| 权限 | 用途 | 范围 |\n|:-----|:-----|:-----|\n| 🌐 **网络访问** | 调用 WebAPI（行情/分析/研报/资金流）、腾讯/新浪行情源、平台 token 接口 | 仅 HTTPS 请求，不建立本地监听 |\n| 📂 **本地文件读写** | `~/.ghdata/ghdataapikey`（APIKey 唯一存储）、`~/.ghdata/db.ini`（可选数据库配置，未配置则不用）、报告输出目录 | 仅 `~/.ghdata/` 与配置指定目录，**不扫描其他路径** |\n| 🔑 **环境变量读取** | `GHDATA_API_URL` / `GHDATA_TIMEOUT`（URL/超时配置，不读 APIKey） | 只读，不写入 |\n| 💳 **支付链接生成** | token 获取失败时返回购买页链接（**不含 APIKey**，防日志泄露） | 链接仅为平台购买页，不含敏感凭证 |\n\n**不做什么：** 不主动连接任何数据库（`db_config`/`research_utils` 等直连工具**不属于技能功能**，已从发布包移除）；不收集或外传本地文件内容；不在 URL 中携带完整 APIKey。\n\n---\n\n---\n\n## ⚡ LLM 必读：启动时自动执行\n\n本技能的配置（APIKey、WebAPI地址等）在内部自动完成初始化，**无需调用方做任何操作**。直接发分析请求即可。\n\n### 🚨 风险提示强制展示\n\n**在每次向用户输出分析结果前（包括首次交互、每次生成报告、每次展示分析结论），LLM必须在最前方展示以下风险提示：**\n\n> ⚠️ **风险提示**：本技能为公开历史数据的统计与查询工具，**仅提供数据统计方法与历史数据查询结果，本身不生成任何分析结论**。所有分析结论均由您接入的大语言模型（LLM）基于技能提供的历史数据自行生成，与技能本身无关。所有分析结果均基于历史数据计算，**不构成任何投资建议，不预测未来走势**。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n**禁止以任何形式暗示或明示：**\n- 声称本工具推荐某只股票\n- 声称本工具能预测股价涨跌\n- 声称本工具建议买入/卖出/持有\n- 声称历史表现可保证未来收益\n\n**LLM输出措辞强制对照表：**\n\n| ❌ 禁止使用 | ✅ 必须使用 |\n|:-----------|:-----------|\n| 判势、综合判势、判断趋势 | 信号方向、综合信号 |\n| 预测、预判、涨跌范围预测、T+1预测 | 历史参考、参考区间、T+1历史参考 |\n| 准确率、历史准确率 | 匹配率、历史匹配率 |\n| 最佳、最差、最强、最弱 | 历史统计最高、历史统计最低 |\n| 优秀、良好、一般、较差（评分） | 偏高、中等偏上、中等、偏低 |\n| 评级为XX | 评分参考为XX |\n| 策略参考、操作参考 | 历史统计、历史规律 |\n| 需警惕、可关注、不宜、需注意（操作暗示） | 偏弱、偏强（信号描述） |\n| 安全垫、防御价值 | 股息率参考、稳定性参考 |\n| 容易回升、容易反弹、反弹属性、反弹需求、反弹动力、偏反弹、大概率会、概率偏高/偏低 | 历史统计中偏多/偏空，比例偏高/偏低 |\n| 评级参考、判断依据 | 评分参考、参考依据 |\n| 具吸引力、值得关注、承压、下跌空间、有支撑 | 偏高、中性、偏空（信号描述），股息率参考 |\n| 持有（建议语境）、注意风险、不宜、需警惕、企稳 | 偏强、偏弱（信号描述） |\n| 共振、综合共振、多周期共振 | 多周期综合信号、多周期合成信号 |\n| 可信、可信程度 | 参考置信度、参考级别 |\n| 买入、卖出、加仓、减仓、止损、止盈 | 仅限数据字段描述（如龙虎榜买卖席位） |\n\n> ⚠️ **本表也约束代码输出文本**：`reporter.py`、`analyzer.py` 等模块中涉及输出文本的硬编码字符串同样适用以上规则，不能仅靠 LLM 自觉合规。\n\n> ⚠️ **API数据分类名输出规则**：当展示WebAPI返回的模式分类名时（如\"大跌后反弹特征\"），需将其中的\"反弹\"替换为\"偏多\"描述。示例：`大跌后反弹特征` → `大跌后偏多特征`，`反弹属性` → `偏多属性`\n\n> ⚠️ **\"偏反弹\"——绝对禁止词**：任何时候不得用\"偏反弹\"描述历史规律方向。即使API原始数据包含\"0/1=0%反弹\"等字样，展示时也必须改为\"偏多\"/\"偏空\"描述。若数据本身的结论是\"历史统计中大跌后偏多比例偏高\"，则表述为\"大跌后历史统计偏多\"。\n>   正确：`大跌后历史规律偏多（均值+5.14%）` ✅\n>   错误：`大跌后历史规律偏反弹（均值+5.14%）` ❌\n\n> ⚠️ **API字段名翻译规则**：WebAPI返回的英文/中文字段名需按以下规则翻译后再输出，禁止直接照搬：\n> - `latestPrediction` → `最新信号参考`\n> - `accuracy` → `匹配率`（注意双口径：`accuracy.all/period30/period60` 为**参考区间命中率**（±1%窄区间，苛刻口径，辅助展示）；`directionAll/direction30/direction60` 为仅统计有方向倾向预测的方向判定，样本可能很少）\n> - `voteDetail.方向匹配率` → `方向匹配率`（**主指标**：3档符号判定 全部/60日/30日，格式 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）\n> - `rangeForecast` → `参考区间`\n> - `predictDate` → `参考日期`\n> - `prediction` / `predict` 出现 → 一律替换为 `信号` / `参考`\n> - `direction` → `信号方向`\n> - `voteDetail` → `各规则投票明细`\n> - 任何包含\"预测\"\"预判\"的字段名 → 改为\"参考\"\"信号\"\n\n> ⚠️ **输出后处理强制规则**：在你完成全部分析文本生成后，**必须调用一次 `sanitizer.sanitize(你的输出文本)`** 进行最终合规过滤。此函数会自动替换所有红线词。示例：\n> ```python\n> from ghdata.sanitizer import sanitize\n> final_output = sanitize(your_full_output_text)\n> ```\n\n---\n\n## 🚀 核心工作流（每次分析必须执行）\n\n每次分析一只股票，必须完成以下三阶段：\n\n```\n阶段 A：数据采集      ─→  阶段 B：量化分析    ─→  阶段 C：报告输出\n  HTTP直连公开API       POST WebAPI分析API      生成DOCX报告+K线图\n  (新浪/腾讯/东方财富)  (技术指标/信号/统计)     (17维/评分/信号统计)\n```\n\n---\n\n### 阶段 A：17 维数据采集（本地 HTTP 直连）\n\n**方式：** 调用 `ghdata/data_fetcher.py` 中的函数，通过本地 HTTP 直连新浪/腾讯/东方财富等公开 API 获取原始数据。单次约 0.5~2s，支持并行调用，**速度快于 WebAPI 全量拉取**。\n\n| # | 数据维度 | 数据源 | 函数 |\n|:-:|:---------|:-------|:-----|\n| 1 | 实时行情 | 新浪 + 腾讯双源交叉 | `fetch_realtime(code)` |\n| 2 | 日K线数据 | 腾讯 ifzq.gtimg.cn | `fetch_kline(code, days)` |\n| 3 | 今日分时 | 腾讯 qt.gtimg.cn 分钟数据 | `fetch_today_tick(code)` |\n| 4 | 资金流向 | 同花顺 stockpage.10jqka | `fetch_money_flow(code, days)` |\n| 5 | 融资融券 | 东方财富 DataCenter | `fetch_margin_trading(code, days)` |\n| 6 | 机构持仓 | 东方财富 DataCenter | `fetch_main_holdings(code)` |\n| 7 | 股东增减持 | 东方财富 DataCenter | `fetch_shareholder_trade(code)` |\n| 8 | 高管持股变动 | 东方财富 DataCenter | `fetch_executive_change(code)` |\n| 9 | 财务数据 | 东方财富 DataCenter | `fetch_financial(code)` |\n| 10 | 资产负债表 | 东方财富 DataCenter | `fetch_balance_sheet(code)` |\n| 11 | 利润表 | 东方财富 DataCenter | `fetch_income_statement(code)` |\n| 12 | 现金流量表 | 东方财富 DataCenter | `fetch_cashflow(code)` |\n| 13 | 分红历史 | 东方财富 DataCenter | `fetch_dividend(code)` |\n| 14 | 券商研报 | 东方财富 DataCenter | `fetch_research_report(code)` |\n| 15 | 机构调研 | 东方财富 DataCenter | `fetch_institutional_survey(code)` |\n| 16 | 限售解禁 | 东方财富 DataCenter | `fetch_unlock_data(code)` |\n| 17 | **行业信息** | 东方财富 DataCenter | `fetch_industry_info(code)` |\n\n> **增强数据（量化分析使用，通过 WebAPI 获取）：**\n> - **行业ETF资金流** → `db_manager.get_etf_flow(code, days=15)` — 近N日ETF资金净流入/出\n> - **ETF数据统计（含盘后）** → `db_manager.get_etf_stats(...)` — 盘后活跃度排名\n> - **券商研报汇总** → `db_manager.get_research_summary(code)` — 机构评级/EPS预测\n> - **EPS一致性预期** → `db_manager.get_eps_consistency(code)` — 分歧度判定\n> - **券商覆盖统计** → `db_manager.get_broker_ranking(code)` — 买入率\n> - **今日评级动态** → `db_manager.get_rating_wind_today(code)` — 今日研报更新\n\n**Python 代码（直接在 CMD 中执行）：**\n\n```python\nimport sys, os\nsys.path.insert(0, os.path.dirname(__file__))\nfrom ghdata import data_fetcher as fetcher\nfrom ghdata import config\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\ndef collect_all(code: str) -> dict:\n    \"\"\"17维数据一次性采集（全部HTTP直连，8路并行，零外部依赖）\"\"\"\n    # 定义所有采集任务：（key, 函数, 参数...）\n    tasks = [\n        (\"realtime\",     fetcher.fetch_realtime,           code),\n        (\"kline\",        fetcher.fetch_kline,              code, 120),\n        (\"tick\",         fetcher.fetch_today_tick,         code),\n        (\"moneyFlow\",    fetcher.fetch_money_flow,         code, 10),\n        (\"margin\",       fetcher.fetch_margin_trading,     code, 10),\n        (\"holdings\",     fetcher.fetch_main_holdings,      code),\n        (\"shareholder\",  fetcher.fetch_shareholder_trade,  code),\n        (\"executive\",    fetcher.fetch_executive_change,   code),\n        (\"financial\",    fetcher.fetch_financial,          code),\n        (\"balance\",      fetcher.fetch_balance_sheet,      code),\n        (\"income\",       fetcher.fetch_income_statement,   code),\n        (\"cashflow\",     fetcher.fetch_cashflow,           code),\n        (\"dividend\",     fetcher.fetch_dividend,           code),\n        (\"research\",     fetcher.fetch_research_report,    code),\n        (\"survey\",       fetcher.fetch_institutional_survey, code),\n        (\"unlock\",       fetcher.fetch_unlock_data,        code),\n        (\"industry\",     fetcher.fetch_industry_info,      code),\n    ]\n    data = {}\n    with ThreadPoolExecutor(max_workers=8) as pool:\n        futures = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n        for fut in as_completed(futures):\n            key = futures[fut]\n            try:\n                data[key] = fut.result()\n            except Exception as e:\n                data[key] = None\n    return data\n\n# 增强数据（调用WebAPI获取，必须纳入分析）：\nfrom ghdata import db_manager as db\netf_flow = db.get_etf_flow(code, 15)                  # 行业ETF资金流\nrpt_summary = db.get_research_summary(code, 90)        # 研报汇总\neps_data = db.get_eps_consistency(code, 180)           # EPS一致性\nbroker_data = db.get_broker_ranking(code, 90)          # 券商覆盖\ntoday_rpt = db.get_rating_wind_today(code)             # 今日动态\n```\n\n---\n\n### 阶段 B：量化分析（WebAPI）\n\n采集完数据后，调用 WebAPI 进行量化分析：\n\n```python\nfrom ghdata import db_manager as db\n\n# 调用 WebAPI 获取全量分析结果\nresult = db.kline_analyze(code, today_kline=None)\n# 返回包含：\n#   indicators  → MA5/MA10/MA20/MA60/MACD/KDJ/RSI/量比\n#   signals     → 偏多/偏空/中性 汇总\n#   patterns    → 大涨后规律/大跌后规律/支撑/阻力\n#   accuracy    → 全部历史/近60日/近30日 匹配率\n#   prediction  → 方向/T+1/T+2/中期方向 + 价格区间\n#   learning    → 自学习规律跟踪摘要\n\n# 【重要】以下数据必须在分析中纳入：\n\n# ① ETF 行业资金流 — 资金面分析时必须调用\netf_flow = db.get_etf_flow(code, days=15)\n# 返回: { matched_etfs: [{code, name}], etf_flow: {code: [{date, fund_size, net_inflow}]}, summary:\"...\" }\n# 用途：判断个股所属行业的ETF资金态度——板块净流入=资金支撑，净流出=板块压力\n# 即使matched_etfs为空也要说明\"该行业暂未配置ETF映射\"\n\n# ② 券商研报数据 — 基本面/估值分析时必须调用\nresearch_summary = db.get_research_summary(code, days=90)\n# 返回格式化文本：机构名、评级、EPS/PE预测值\n\neps_consistency = db.get_eps_consistency(code, days=180)\n# 返回格式化文本：覆盖机构数、平均EPS、标准差、变异系数、分歧度\n\nbroker_rank = db.get_broker_ranking(code, days=90)\n# 返回格式化文本：覆盖该股的券商、篇数、买入率\n\nrating_today = db.get_rating_wind_today(code)\n# 返回格式化文本：该股今日是否有研报更新\n```\n\n**WebAPI 地址通过配置中的 `webapi_url` 设置。**\n\n---\n\n### 阶段 C：报告生成\n\n```python\nfrom ghdata import reporter\nfrom ghdata import chart\n\n# 1. 生成 K 线图\nchart.generate_kline_chart(klines, ...)\n\n# 2. 生成 13 章完整 DOCX 报告（自动采集全部17维数据，无需手动传入）\nreporter.generate(code)\n\n# 可选：如果已通过API采集了数据，可以传入 extra_data 覆盖自动采集的结果\n# reporter.generate(code, extra_data={\n#     \"holdings\": {\"points\": [...], \"conclusion\": \"...\"},\n#     \"money_flow\": {\"points\": [...], \"conclusion\": \"...\"},\n# })\n```\n\n---\n\n## 📈 个股分析（LLM 指令）\n\n用户输入股票代码或名称时，LLM执行三阶段分析流程（采集→量化→报告）。\n\n### 用户输入匹配表\n\n| 用户说 | LLM执行 | 说明 |\n|:-------|:--------|:-----|\n| \"分析600028\"、\"看看中国石化\" | 阶段A+B：采集+量化 → **输出精简报告** | ⚡默认输出精简版（见下方），**不生成15章全文** |\n| \"中国石化怎么样\"、\"600028走势\" | 阶段A+B：采集+量化 → **输出精简报告** | 同上 |\n| \"帮我全面分析一下这只股票\"、\"出完整报告\"、\"详细分析\" | 阶段A+B+C：完整15章报告 | 完整报告耗时较长，调用方需设置 timeout≥180s |\n| \"生成分析报告\"、\"出报告\"、\"出文档\" | 阶段A+B→C：生成DOCX | 调用 reporter.generate() 生成docx文件 |\n| \"帮我分析这几只股票\"、\"600028和601857对比\" | 逐只执行 → 输出精简报告 | 多只按顺序处理 |\n| \"K线图\"、\"走势图\" | 阶段A→chart：生成K线图 | 调用 chart.generate_kline_chart() |\n| \"这只股票估值怎么样\"、\"估值合理吗\" | 阶段B → 估值分析 | 展示估值分位/杜邦分析/F-Score |\n| \"技术面多周期怎么看\" | 阶段B → 多周期分析 | 展示日线周线综合信号 |\n| \"北向资金在买还是卖\"、\"龙虎榜有这只吗\" | 阶段B → 资金面画像 | 展示北向/龙虎榜/ETF四象联动/封板/回购/板块 |\n| \"券商怎么看这只股票\"、\"最近有研报吗\" | 阶段B → 券商研报观点 | 展示近期覆盖/EPS一致性/机构观点验证 |\n| \"全面分析所有A股\"、\"帮我扫一下市场\" | 条件筛选TOP10 → 逐只深度分析 → 市场概览 | 不逐只分析5000只 |\n| \"看涨的股票有哪些\"、\"选几只优质股\" | 条件筛选（方向=偏多, 评分高） | 按评分排序TOP20 |\n\n### 全量分析报告标准格式（LLM必读）\n\n当用户要求**全面分析一只股票**（如\"分析一下\"、\"看看\"、\"怎么样\"等常规分析请求），请严格按以下15章结构呈现分析结果。\n\n**执行方式：执行 Python 脚本完成完整的三阶段分析（采集→量化→报告），然后按以下结构逐章输出。**\n\n```python\nfrom ghdata import data_fetcher as fetcher, db_manager as db, eval_engine\n\n# 阶段 A：本地 HTTP 采集原始数据（8路并行，~2秒完成）\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\ncode = \"688502\"  # 替换为待分析的股票代码\n\n# 并行采集17维数据（每个HTTP 0.5~1.5s → 并行后总计 ~2s）\ntasks = [\n    (\"realtime\",  fetcher.fetch_realtime,         code),\n    (\"kline\",     fetcher.fetch_kline,            code, 200),\n    (\"tick\",      fetcher.fetch_today_tick,       code),\n    (\"moneyFlow\", fetcher.fetch_money_flow,       code, 10),\n    (\"margin\",    fetcher.fetch_margin_trading,   code, 10),\n    (\"holdings\",  fetcher.fetch_main_holdings,    code),\n    (\"shareholder\", fetcher.fetch_shareholder_trade, code),\n    (\"executive\", fetcher.fetch_executive_change, code),\n    (\"financial\", fetcher.fetch_financial,        code),\n    (\"balance\",   fetcher.fetch_balance_sheet,    code),\n    (\"income\",    fetcher.fetch_income_statement, code),\n    (\"cashflow\",  fetcher.fetch_cashflow,         code),\n    (\"dividend\",  fetcher.fetch_dividend,         code),\n    (\"research\",  fetcher.fetch_research_report,  code),\n    (\"survey\",    fetcher.fetch_institutional_survey, code),\n    (\"unlock\",    fetcher.fetch_unlock_data,      code),\n    (\"industry\",  fetcher.fetch_industry_info,    code),\n]\ndata = {}\nwith ThreadPoolExecutor(max_workers=8) as pool:\n    fut_map = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n    for fut in as_completed(fut_map):\n        try: data[fut_map[fut]] = fut.result()\n        except: data[fut_map[fut]] = None\n\n# 阶段 B：量化分析（WebAPI + 本地计算）\nanalysis = db.kline_analyze(code)                # ③服务端：技术指标/信号/规律/匹配率/预测\nkline = data.get(\"kline\")\nsignals = eval_engine.analyze(None, kline) if kline else {}  # ④本地：7规则投票\netf      = db.get_etf_flow(code, 15)             # ⑤ETF行业资金流\nresearch = db.get_research_summary(code, 90)     # ⑥券商研报\n\n# 阶段 C：输出报告（按下方15章格式逐章输出）\n```\n\n各阶段分工：\n- **本地HTTP**（data_fetcher）→ 原始数据采集，单次0.5~2s，**8路并行→总计约2s**\n- **WebAPI**（db.kline_analyze）→ 服务端量化计算：技术指标/信号/规律/匹配率/预测\n- **本地计算**（eval_engine）→ 7规则信号投票：偏多/偏空/中性\n\n> ⚠️ 以下分析结果仅为数据统计与技术指标展示，不构成任何投资建议。股市有风险，入市需谨慎。\n\n```\n📊 {股票名称}({代码}) 量化分析报告\n分析日期：{当前日期}（{星期几}） | 今日表现：{涨跌幅} {🚀/📈/📉/❌}\n```\n\n#### 一、公司概况\n| 项目 | 内容 |\n|:----|:-----|\n| 公司名称 | {名称} |\n| 股票代码 | {代码}（{沪市/深市}） |\n| 所属行业 | {行业} |\n| 地域板块 | {地域} |\n| 总市值 | {总市值} 亿元 |\n| 主营构成 | {主营业务简述} |\n| 概念标签 | {概念标签} |\n\n{公司简介（1-2句概括）}\n\n#### 二、实时行情\n| 指标 | 数据 |\n|:----|:-----|\n| 最新价 | {价格} 元 {🚀📈/📉} |\n| 今日开盘 | {开盘价} |\n| 今日最高 | {最高价} |\n| 今日最低 | {最低价} |\n| 涨跌幅 | {涨跌幅%} {✅/❌} |\n| 成交量 | {成交量}手 |\n| 成交额 | {成交额} 亿元 |\n| 换手率 | {换手率}% |\n| PE（TTM） | {倍数} |\n| PB | {倍数} |\n| 流通市值 | {流通市值} 亿元 |\n| 总市值 | {总市值} 亿元 |\n\n{今日表现一句话点评}\n\n#### 三、机构持仓\n{主力持仓数据表格，含机构类型、持仓市值、占流通股比例、增减仓变化}\n{无数据时写：暂无近期机构持仓数据}\n\n#### 四、资金流向\n**4.1 日级资金流向**\n| 日期 | 主力净流入(万) | 涨跌幅 |\n|:----|:-------------|:------|\n| {近5-10日数据} |\n\n**4.2 行业ETF资金流**\n关联ETF：{名称（代码）}\n\n| 日期 | 净流入(元) | 方向 |\n|:----|:----------|:----|\n| {近5日数据} |\n\n▶ ETF × 个股四象分析：\n  ETF方向：{净流入/流出}（±X万元）\n  个股趋势：{上涨/下跌}（±X%）\n  结论：{象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓}\n\n#### 五、融资融券\n| 日期 | 融资余额(亿) | 当日净买入(万) |\n|:----|:------------|:--------------|\n| {近5日数据} |\n\n{融资余额趋势一句话}\n\n#### 六、高管大股东变动\n**6.1 高管持股变动**\n{高管增持/减持记录表，无数据写：近期无高管持股变动记录}\n\n**6.2 股东增减持**\n{股东增持/减持记录表，无数据写：近期无大股东增减持记录}\n\n#### 七、财务分析\n**7.1 业绩概览**\n| 报告期 | 营收(亿) | 营收同比 | 净利润(亿) | 利润同比 | EPS | ROE | 毛利率 |\n|:------|:--------|:--------|:----------|:--------|:---|:---|:------|\n| {近4-6期数据} |\n\n{业绩解读一句话}\n\n**7.2 资产负债表关键指标**\n资产负债率：{X}% | 流动比率：{X}% | {财务结构评价}\n\n**7.3 现金流量表**\n{经营性/投资性/筹资性现金流概览}\n\n#### 八、估值分析\n| 估值指标 | 数值 | 参考 |\n|:--------|:----|:----|\n| PE（TTM） | {X}倍 | {高/中/低}分位 |\n| PB | {X}倍 | {评价} |\n| 股息率 | {X}% | {评价} |\n\n{估值综合判断}\n\n#### 九、券商研报观点\n**9.1 近期研报**\n| 日期 | 机构 | 评级 | 核心观点 |\n|:----|:----|:----|:---------|\n| {近期研报数据} |\n\n**9.2 EPS一致性预期**\n覆盖机构数：{X}家 | 平均EPS（2026E）：{X}元 | 变异系数：{X}%（高度一致/基本一致/分歧较大）\n\n**9.3 机构观点验证**\n{✅/⚠️} 券商一致性：{X}%机构看好（市场共识{高/低}）\n{✅/⚠️} EPS预期：一致/分歧\n{✅/⚠️} 估值验证：当前价{X}元，低于/高于估值中枢\n\n#### 十、分红历史\n| 报告期 | 方案 | 股息率(按现价) |\n|:------|:----|:--------------|\n| {近5年分红数据} |\n\n{分红评价}\n\n#### 十一、K线技术分析\n\n**有数据时（付费版）：**\n均线系统：MA5={X} MA10={X} MA20={X} MA60={X} | {多头/空头/缠绕}\nMACD：DIF={X} DEA={X} 红/绿柱={X} | {金叉/死叉/偏多/偏空}\nKDJ：K={X} D={X} J={X} | {偏多/中性/偏空}\nRSI(14)：{X} | {超卖/超买/中性}\n\n**信号汇总：** 偏多{X} · 偏空{X} · 中性{X} → {方向}\n\n**预览版（仅展示原始数据，不作任何解读）：**\n| 指标 | 数值 |\n|:----|:-----|\n| MA5 | {X} |\n| MA10 | {X} |\n| MA20 | {X} |\n| MA60 | {X} |\n| MACD DIF | {X} |\n| MACD DEA | {X} |\n| MACD 红/绿柱 | {X} |\n| KDJ K | {X} |\n| KDJ D | {X} |\n| KDJ J | {X} |\n| RSI(14) | {X} |\n| 量比 | {X} |\n\n> 🔒 **数字都摆在这了，但你知道现在该买还是该卖吗？**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十二、历史信号匹配统计\n\n**有数据时（付费版）：**\n\n> 📈 **涨跌方向汇总**：跌 ▼（综合评分 -0.35）\n> 细化信号：震荡偏空（近30天正确率11.5%）\n\n| 时段 | 方向匹配率（主指标） |\n|:----|:------|\n| 全部历史 | {X}/{X} = {X}% {进度条} |\n| 近60日 | {X}/{X} = {X}% {进度条} |\n| 近30日 | {X}/{X} = {X}% {进度条} |\n\n> 📎 参考区间命中率（辅助口径：预测±1%窄区间是否盖住实际涨跌，对高波动股苛刻，仅供辅助参考）：全部 {X}% ｜ 近60日 {X}% ｜ 近30日 {X}%\n\n**数据来源：** 方向匹配率优先读 `latestPrediction.voteDetail` 的 `方向匹配率` 键（`{\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}`，3档符号判定：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测）。区间命中率读 `accuracy.all/period30/period60`。\n\nT+1方向：涨 ▲（细化：{方向}） | 中期方向：{方向}\n\n**无数据时（预览版）：**\n> 🔒 **这些信号综合起来意味着什么？机构就是拿着这些数据做决策的，你看不到。**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十三、历史规律总结\n\n**有数据时（付费版）：**\n{每条规律：名称 + 出现次数 + 后3日均值 + 结论}\n{如：大跌后反弹特征：验证52次，后3日平均-1.81%，偏弱}\n\n**无数据时（预览版）：**\n> 🔒 **大涨后怎么走、暴跌后该割还是该扛？数据告诉你答案**\n>\n> 付费版包含：\n> • 大涨超过3%后，历史上第二天、第三天怎么走？匹配率多少？\n> • 暴跌超过3%后，抄底还是止损？历史规律给你参考\n> • 关键支撑位和阻力位在哪？涨到什么位置容易受阻？\n> • 历史相似K线形态匹配，帮你判断当前在走什么剧本\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十四、综合评分\n| 维度 | 权重 | 评分 | 加权得分 | 依据 |\n|:----|:----|:----|:--------|:-----|\n| 基本面 | 35% | {X}/10 | {X} | {依据简述} |\n| 估值面 | 20% | {X}/10 | {X} | {依据简述} |\n| 技术面 | 15% | {X}/10 | {X} | {依据简述} |\n| 资金面 | 20% | {X}/10 | {X} | {依据简述} |\n| 情绪面 | 10% | {X}/10 | {X} | {依据简述} |\n| **总分** | **100%** | | **{X}** | **{评级}** |\n\n#### 十五、风险提示\n> 动态生成，基于持股结构、行业特征等自动生成\n\n{风险项1} ⚠️ | {说明}\n{风险项2} ⚠️ | {说明}\n...\n\n#### 综合研判\n\n💡 {股票名称}({代码}) 综合参考\n\n📊 方向：{偏多/偏空/中性} | 评分参考：{X}/10（{评级}）\n\n① 基本面（{评级}）{✅/⚠️} — {一句话}\n② 估值面（{评价}） — {一句话}\n③ 技术面（{评价}） — {一句话}\n④ 资金面（{评价}） — {一句话}\n⑤ 情绪面（{评价}） — {一句话}\n⑥ 研报观点（{评价}） — {一句话}\n\n📌 参考要点：{1-2句总结}\n\n⚠️ **免责声明：** 以上分析结果仅为基于历史数据和公开信息的量化展示，不构成任何投资建议，不预测未来走势。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n---\n\n### 数据来源对照表（报告章节 → 数据来源）\n\n| 报告章节 | 数据来源 | 获取方式 |\n|:--------|:--------|:---------|\n| 一、公司概况 | `data_fetcher` → company_info | 本地HTTP |\n| 二、实时行情 | `data_fetcher` → realtime_price | 本地HTTP（新浪+腾讯双源） |\n| 三、机构持仓 | `db_manager.get_holdings()` | WebAPI |\n| 四、资金流向+ETF | `db_manager.get_etf_flow()` | WebAPI |\n| 五、融资融券 | `db_manager.get_margin()` | WebAPI |\n| 六、高管大股东 | `data_fetcher` + `db_manager` | 本地HTTP + WebAPI |\n| 七、财务分析 | `data_fetcher` 财报四表 | 本地HTTP（东方财富） |\n| 八、估值分析 | `data_fetcher` → 实时行情PE/PB | 本地HTTP |\n| 九、券商研报 | `db_manager.get_research_summary()` | WebAPI |\n| 十、分红历史 | `data_fetcher` → fetch_dividend | 本地HTTP |\n| 十一、K线技术 | `db.kline_analyze` → indicators+signals | **WebAPI**（服务端计算） |\n| 十二、信号匹配 | `db.kline_analyze` → accuracy | **WebAPI** |\n| 十三、历史规律 | `db.kline_analyze` → patterns | **WebAPI** |\n| 十四、综合评分 | `db.kline_analyze` → prediction/score | **WebAPI** |\n| 十五、风险提示 | 行业+持股结构动态生成 | — |\n\n**注意：**\n- **原始数据（章节一~十）** → 优先走本地HTTP（`data_fetcher`），速度快\n- **量化计算（章节十一~十四）** → 走 WebAPI（`db.kline_analyze`），服务端算\n- 所有 WebAPI 调用通过 `db_manager` 代理\n- 若某个字段返回空，对应章节写\"暂无数据\"或跳过该章节\n- 章节十一~十三为付费内容\n- 如用户要求出 DOCX 报告，调用 `reporter.generate(代码)`\n```\n\n---\n\n## 🤖 自学习系统（LLM 指令）\n\n技能的自学习能力由服务端（WebAPI + 日更新服务）自动运行，**无需用户手动触发**。\n\n### 自学习机制说明\n\n```\n每日18:00定时任务：\n  1. 拉取最新K线数据 → 存入 kline_data 表\n  2. 7规则投票 → 生成历史信号匹配统计 → 存入 predictions 表\n  3. 与实际走势比对 → 更新 accuracy_tracking 表\n  4. 挖掘5条交易规律 → 存入 stock_patterns 表\n  5. 更新 experience 表（方向/评分/匹配率）\n```\n\n### 用户可以怎么问\n\n| 用户说 | LLM回答 |\n|:-------|:--------|\n| \"这只股票的自学习情况怎么样\" | 调用 `db.kline_analyze(code)` 提取 learningSummary 回复 |\n| \"记录了多少次匹配\" | 查看 accuracy_tracking 表统计 |\n| \"匹配率多少\" | 查看 experience 表的 accuracy_rate |\n| \"有没有跟踪记录\" | 从数据中展示学习摘要（规律验证记录） |\n\n### 自学习内容展示格式\n\n```\n📚 中国石化 自学习跟踪摘要\n\n📊 方向匹配率：234/348 = 67.2% ✅\n  全部历史匹配234次，共348次统计\n\n📉 大跌后反弹特征：验证52次\n  最近验证：1/5=20%反弹\n  3日平均反弹：-1.81%\n  历史规律参考：大跌后偏弱\n\n📈 大涨后回调特征：验证43次\n  最近验证：2/4=50%回调\n  3日平均：-1.72%\n  历史规律参考：大涨后偏回调\n\n📌 趋势：自学习系统每日18:00自动更新\n```\n\n### 📈 个股自学习画像（LLM 展示格式）\n\n调用 `db.kline_analyze(code)` 后，返回结果中包含 `stockProfile` 字段，LLM应按以下格式展示：\n\n```\n━━━ ① 估值分析 ━━━\n📊 估值分位\n  当前股价位于近5年X%分位，估值偏（低/适中/高）\n\n📊 杜邦分析\n  净资产收益率X.X%（较上期+/-X.X%）\n  核心驱动：净利率 / 资产周转 / 权益乘数\n\n📊 F-Score 基本面评分\n  F-Score: X/9 （优/良/差）\n  评分因子：盈利能力 / 杠杆 / 流动性 / 效率\n\n━━━ ② 多周期技术分析 ━━━\n📊 多周期信号\n  日线: 偏多/偏空/中性\n  周线: 偏多/偏空/中性\n  综合信号: （偏多/偏空/震荡）\n\n📊 波动率分析\n  目前处于布林带（上轨/中轨/下轨）位置\n  带宽X%（扩张/收缩），波动率（大/小）\n\n📊 量价背离分析\n  当前（无/有底背离/有顶背离）信号\n  （背离说明，如有）\n\n━━━ ③ 个股行为画像 ━━━\n📊 财报前后表现\n  2026-04-29 净利润+28.2% ✅利好  后5日:-0.19%\n  2026-03-23 净利润-36.8% ❌利空\n\n📊 指数相关性\n  与上证同涨同跌率：46.6%（近60日）\n\n📊 放量缩量行为\n  放量后3日平均：-4.34%（14次）→ 放量易跌\n  缩量后3日平均：+3.68%（10次）→ 缩量易涨 ✅\n\n📊 技术信号有效性\n  MACD金叉：有效次数不足  MACD死叉：有效(1/1)\n\n━━━ ④ 资金面画像 ━━━\n📊 北向资金\n  近5日净买X亿元，方向偏（流入/流出）\n\n📊 龙虎榜\n  上榜情况：（是/否）买入/卖出席位X家，净额+X万\n\n📊 ETF资金流（联动分析）\n  关联ETF: （名称）\n  ETF近X日净流X亿元，方向（流入/流出）\n  ▶ ETF × 个股四象分析：\n  ① ETF方向：净流入/流出（±X万元）\n  ② 个股趋势：上涨/下跌（±X%）\n  ③ 结论：（象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓）\n  ④ 解读：ETF方向与个股走势的联动说明\n\n📊 封单数据\n  该股今日/近期是否封板？封单资金X亿，强度（强/中/弱）\n\n📊 回购计划\n  正在实施/已完成的回购计划X份，金额合计X亿\n\n📊 板块轮动\n  所属（行业板块）当前强弱排名第X，资金净流方向偏（流入/流出）\n\n━━━ ⑤ 相似K线匹配 ━━━\n🔍 当前形态匹配到5段历史相似走势\n  匹配后5日平均涨跌：-0.19%\n  结论：历史相似形态下偏弱\n\n━━━ ⑥ 错误模式诊断 ━━━\n⚠️ 最大连错4次 | 偏多方向失败6次 | 偏空方向失败12次\n  诊断：偏空方向失败率高，历史统计中偏多比例偏高\n\n━━━ ⑦ 季节性规律 ━━━\n📅 12月: 平均+0.75% 胜率50% — 历史均值最高月份\n   5月:  平均-0.60% 胜率11% ⚠️ 历史均值最低月份\n\n━━━ ⑧ 券商研报观点 ━━━\n📊 近期覆盖\n  券商名称   评级   EPS预测\n  XXXX证券  买入/增持  EPS=X.XX->X.XX->X.XX\n\n📊 EPS一致性预期\n  覆盖X家机构，平均EPS X.XXX，偏差X.X%（高度一致/基本一致/分歧大）\n\n📊 机构观点验证\n  ✅ 券商一致性：X%机构买入/增持（市场共识高）\n  ✅ / ⚠️ EPS预期：高度一致/存在分歧\n  ✅ 估值验证：当前价X.XX元，低于/高于合理估值中枢X.XX元\n  📊 综合可信度：X/4项正面信号（可信度高/部分可信/分歧大）\n```\n\n### 免责声明：以上为数据分析结果，不构成任何投资建议。股市有风险，投资需谨慎。\n\n```\n💡 （股票名称）综合研判\n📊 涨跌方向：偏多（涨▲，细化：偏多，评分+X，匹配率X%）\n① 估值分析：近5年X%分位，估值偏（低/适中）；F-Score X/9 基本面（优/良/差）\n② 多周期技术：日线中性、周线偏空，综合偏弱；布林带宽X%扩张，波动大\n③ 个股画像：缩量后偏强(后3日均值+3.68%)，放量警惕(后3日-4.34%)\n④ 资金面：北向近期净（流出/流入）X亿；板块排名X；ETF四象→（共振/独立/承压）\n⑤ 研报观点：X家券商X%看好，一致性（高/中/低），估值中枢X元\n⑥ 历史相似形态：偏弱(-0.19%)\n⑦ 错误诊断：偏空失败12次，历史统计中偏多比例偏高\n⑧ 季节性：12月统计最高(+0.75%)，5月统计最低(-0.60%)\n📌 参考：当前偏空但偏空失败率高，历史统计中偏多比例偏高，缩量后偏稳\n```\n\n---\n\n## 🗺️ 全市场扫描（批量筛选）指令\n\n当客户想批量看多只股票（如全市场、某个板块、涨幅榜等），**不要逐只调 kline_analyze 做深度分析**（5000只逐个分析既不现实也无必要），应使用筛选 API 做批量筛选，然后对筛选结果的前几只做深度分析。\n\n### 客户输入匹配\n\n| 用户说 | LLM操作 | 规则 |\n|:-------|:--------|:-----|\n| \"所有A股全面分析一下\" | 先筛选 → 再深度分析前10只 | 按评分排序取TOP10 |\n| \"帮我看看整个市场\" | 先筛选 → 汇总市场统计 | 列出各方向占比、评分均值等 |\n| \"哪些股票看涨？\" | 条件筛选（方向=偏多） | 按评分排序取TOP20 |\n| \"选几只优质股\" | 条件筛选（评分高+匹配率高） | 评分≥7 + 匹配率≥60% TOP10 |\n| \"强势股有哪些\" | 动量筛选 | 近20日涨幅+均线多头+MACD金叉 |\n| \"超跌反弹的股票\" | 反转筛选 | RSI<30超卖+MACD金叉 |\n| \"技术面好的股票\" | 技术信号筛选 | 均线多头+MACD金叉+放量 |\n\n### 全市场概览展示格式\n\n```\n━━━ 全市场方向分布 ━━━\n📊 偏多       XXX只 (XX%)\n📊 震荡偏多   XXX只 (XX%)\n📊 震荡       XXX只 (XX%)\n📊 震荡偏空   XXX只 (XX%)\n📊 偏空       XXX只 (XX%)\n\n━━━ 全市场评分TOP X ━━━\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n```\n\n### 批量筛选执行流程\n\n```\n用户问\"全面分析所有股票\"\n  ├─ ① 调用 db.screen_stocks(top=10) → 按评分排序取TOP10\n  ├─ ② 对TOP10逐只做全流程深度分析\n  ├─ ③ 汇总成「市场概览+TOP10深度分析」回复\n  └─ ❌ 不逐只分析全部5000只\n```\n\n---\n\n## 🎯 数据筛选功能（LLM 指令）\n\n技能支持四种筛选方式，LLM根据用户需求自动匹配合适的方式。\n\n### 四种筛选方式说明\n\n**方式①：条件筛选** — 用现有评分数据快速过滤\n- 条件：方向（偏多/震荡偏多）、评分（0-10）、匹配率（%）\n- 适用场景：用户说\"帮我选几只股票\"、\"找看涨的\"、\"评分高的\"、\"匹配率高的\"\n- 速度快，适合初步筛选\n\n**方式②：动量筛选** — 筛选近期强势的股票\n- 条件：近20日涨幅 > 一定值 + 均线多头排列 + MACD金叉 + 放量\n- 适用场景：用户说\"涨得好的\"、\"强势股\"、\"最近涨得猛的\"\n- 示例结果：华丰股份 近20日+5.0% 均线多头 MACD金叉 放量1.5倍\n\n**方式③：反转筛选** — 筛选超跌后信号偏正面的股票\n- 条件：RSI < 30（超卖） + MACD金叉（底背离信号）\n- 适用场景：用户说\"超跌反弹\"、\"跌多了\"、\"RSI低\"\n- 示例结果：国光电器 近20日-22.3% RSI=24(超卖) MACD金叉\n\n**方式④：技术信号筛选** — 筛选技术形态偏好的股票\n- 条件：均线多头排列 + MACD金叉 + 成交量放大\n- 适用场景：用户说\"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\"\n- 示例结果：返利科技 均线多头 MACD金叉 放量2.7倍\n\n### 用户输入匹配表\n\n| 用户说 | 使用方式 | 说明 |\n|:-------|:---------|:-----|\n| \"帮我筛选\"、\"看看有什么\"、\"随便看看\" | **条件筛选** | 默认查全部，按评分排序 |\n| \"找看涨的\"、\"方向偏多的\" | **条件筛选** | 过滤方向=偏多 |\n| \"评分高的\"、\"优质股\" | **条件筛选** | 评分≥5 |\n| \"涨得好的\"、\"强势股\"、\"最近涨得猛的\"、\"创新高的\" | **动量筛选** | 近20日涨幅+均线多头+MACD金叉+放量 |\n| \"超跌反弹\"、\"跌多了\"、\"跌得深的\"、\"RSI低的\" | **反转筛选** | RSI<30超卖+MACD金叉 |\n| \"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\" | **技术信号筛选** | 均线多头+MACD金叉+放量 |\n| \"都有哪些\"、\"我想看看\" | **条件筛选** | 默认条件 |\n\n### 结果展示格式\n\n```\n📊 条件筛选结果（共 XX 条）\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n\n📈 动量筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  RSI  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  67.3  近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：近20日涨幅 + 均线多头 + MACD金叉 + 放量\n\n💥 反转筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  RSI   匹配原因\n002045  国光电器   震荡   2.0   -22.3%    24.4  近20日-22.3%·MACD金叉·RSI超卖(24)\n📌 逻辑：RSI超卖(<30) + MACD金叉 + 放量企稳\n\n🔧 技术信号筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  量比  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  1.5   近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：均线多头 + MACD金叉 + 量比>1.3\n```\n\n### LLM执行代码\n\n```python\nfrom ghdata import db_manager as db\n\n# 条件筛选\nr = db.screen_stocks(directions=[\"偏多\"], min_score=5.0, top=10)\n\n# 动量筛选\nr = db.advanced_screen(mode=\"momentum\", momentum_chg20=5.0, top=10)\n\n# 反转筛选\nr = db.advanced_screen(mode=\"reversal\", reversal_rsi=30, top=10)\n\n# 技术信号筛选\nr = db.advanced_screen(mode=\"techsignal\", tech_ma_bullish=True, tech_macd_golden=True, tech_vol_surge=True, top=10)\n```\n\n### 注意事项\n- 如果用户没指定方式，默认用 **条件筛选**\n- `score` 是0-10分制，不是百分制\n- `accuracy` 是百分比（如67.2%）\n- 返回结果时**必须附上筛选逻辑说明**\n- 同一参数只调一次接口，不要重复调用\n\n---\n\n## 📊 DOCX 报告15章结构（reporter.py 数据来源参考）\n\n> 此结构仅用于 DOCX 报告生成（reporter.generate() 输出格式），\n> LLM 文本分析报告请参考上方 **全量分析报告标准格式（LLM必读）** 章节。\n\n| # | 章节 | 核心内容 | 展示格式 | 数据源 |\n|:-:|:-----|:---------|:---------|:-------|\n| 一 | 公司概况 | 主营业务 + 行业地位 + 市值 | 段落 | WebAPI |\n| 二 | 实时行情 | 最新价/涨跌/PE/PB/市值 | 表格 | 新浪+腾讯 |\n| 三 | 机构持仓分析 | 机构家数/持股/变动 | 数据表 + analysis_points | extra_data.holdings |\n| 四 | 资金流向+ETF板块资金 | 近10日净流入/大单占比 + 关联行业ETF资金流 | 数据表 + analysis_points + ETF板块背景 | extra_data.money_flow + db.get_etf_flow() |\n| 五 | 融资融券分析 | 融资余额/净买/占比 | 数据表 + analysis_points | extra_data.margin_trading |\n| 六 | 高管及大股东行为 | 增持/减持记录 | 数据表 + analysis_points | extra_data.shareholder_trade |\n| 七 | 核心财务分析 | 7.1业绩/7.2利润/7.3资产/7.4现金流 | 数据表 + fin_analysis（短段落） | extra_data.financial_report |\n| 八 | 估值参考区间分析 | 8.1PE/8.2PB/8.3综合区间+术语表 | 表格+段落（EPS/BVPS由PE/PB和最新价动态计算，禁止硬编码） | WebAPI |\n| 九 | 券商研报观点 | 9.1近期研报/9.2 EPS一致性/9.3券商覆盖/9.4今日动态/9.5机构观点验证 | 格式化文本（5子节） | db.get_research_summary() / eps_consistency() / broker_ranking() / rating_wind_today() |\n| 十 | 分红历史 | 近年分红方案 | 数据表 + analysis_points | extra_data.dividend |\n| 十一 | K线技术分析 | 均线/MACD/KDJ/RSI/信号总表 | 指标表 + 信号总表 | WebAPI indicators（**付费预览**）|\n| 十二 | **历史信号匹配统计** | 方向→匹配率→T+1→T+2→周方向+参考依据 | 表格化依据 | WebAPI prediction（**付费**）|\n| 十三 | 历史规律总结 | 大涨后/大跌后/支撑位/阻力位+自学习摘要 | 场景化展示 | WebAPI patterns（**付费**）|\n| 十四 | **综合评分** | 5维度加权评分 | 加权总分公式展示 | 本地计算 |\n| 十五 | 风险提示 | 动态风险（行业/技术面/控盘等） | 列表 | 综合生成 |\n\n### 三种分析展示格式\n\n| 函数 | 适用场景 | 展示方式 |\n|:----|:---------|:---------|\n| **analysis_points(标题, [要点列表], 结论=)** | 机构/资金/两融/高管/分红 | 数据表下方 → 编号表格 + 加粗结论行 |\n| **fin_analysis(标题, 段落)** | 财务四大表解读（业绩/利润/资产/现金流） | 数据表下方 → 简短段落（1~2句话，白话解读） |\n| **信号总表** | 技术面综合 | 统一表格 → 汇总行（偏多X/偏空Y/中性Z） |\n\n#### fin_analysis 使用规则（财务解读）\n\n**四张财务表（7.1业绩/7.2利润/7.3资产/7.4现金流）每张都必须带有 fin_analysis 解读或结论**，不能只有数据表没有下文。每张表结束后都必须有一段白话解读，告诉用户这个数意味着什么。\n\n**正确的做法（数据在前，解读在后）：**\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  营业利润    │ 420亿    │ +18.3%   │\n│  净利润      │ 320亿    │ +52.0%   │\n└──────────────┴──────────┴──────────┘\n\n▶ 利润表解读：本期净利润320亿，同比大增52%，主要受益于产品价格高位运行和产能提升。盈利能力持续增强，毛利率和净利率均创近年新高。\n```\n\n**错误的做法（只有数据没有结论）：** ❌ 不允许\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  ...         │ ...      │ ...      │\n└──────────────┴──────────┴──────────┘\n```\n\n财务报表的 fin_analysis 必须回答三个问题：\n1. **好不好？** — 盈利能力是增强还是减弱\n2. **为什么？** — 变化的核心驱动因素（量/价/成本）\n3. **趋势如何？** — 未来可能的方向\n\n---\n\n## 🔑 APIKey 管理\n\n技能首次使用自动生成本地标识 Key，保存在 `~/.ghdata/ghdataapikey`。\n\n| 版本 | 每日限额 | 费用 |\n|:----|:--------|:-----|\n| 🆓 免费版 | 3 次/工具/日 | 免费 |\n| 💰 付费版 | 100 次/工具/日 | 需购买 |\n\n**购买地址：** https://www.oraskl.com/ghdata-admin/platform  \n\n> ⚠️ 购买链接使用**短时 token**（`?token=xxx`），URL 不携带完整 APIKey（v2.2.50 token化）。\n> LLM 生成报告时，使用 `analyze()` 返回的 `_payment_url` 字段（已含 `?token=` 参数），**不要使用此处的硬编码 URL**。\n\n**付费后替换文件内容：** 将购买的密钥写入 `~/.ghdata/ghdataapikey`\n\n**使用原则：**\n- APIKey 是付费资源，**不要随便消耗调用次数**\n- 同一只股票同一日仅调用一次 WebAPI，分析结果复用；**但\"付费状态实时核查\"优先于结果复用**（见下方协调规则）\n- 调用前先检查是否已有缓存数据，避免重复请求\n- **协调规则：** 若本会话中用户可能已付款（如刚展示过购买链接、用户声明已购买、或距离上次调用超过一定时间），即使同一只股票同日已分析过，也必须**重新调用一次** `db.kline_analyze(code)` 验证付费状态后再复用结果；若重新调用仍为 `preview: True`，则继续按免费预览处理，且可复用当日旧结果避免浪费配额\n- 非必要不调 `db_manager.analyze_kline()`，尤其批量操作时垫高用量\n\n---\n\n## 📈 综合评分加权公式（定版）\n\n```\n总分 = 基本面×0.35 + 估值面×0.20 + 技术面×0.15 + 资金面×0.20 + 情绪面×0.10\n评分参考：≥80偏高 🏆 | ≥65中等偏上 ✅ | ≥50中等 ⚠️ | <50偏低 ❌\n```\n\n| 维度 | 权重 | 说明 |\n|:----|:----:|:-----|\n| 基本面 | 35% | 营收/利润/ROE 趋势 |\n| 估值面 | 20% | PE/PB 历史分位 |\n| 技术面 | 15% | 均线/MACD/KDJ/RSI 信号 |\n| 资金面 | 20% | 主力资金流向/大单占比 |\n| 情绪面 | 10% | 换手率/量比/市场情绪 |\n\n---\n\n## 🔴 历史信号匹配统计铁律（Andy 铁律 — 必须严格遵循）\n\n### 1. 历史信号匹配统计展现顺序\n\n历史信号匹配统计章节内容必须按以下顺序排列：\n\n```\n涨跌方向汇总 → 信号方向统计(结论) → 匹配率(参考置信度) → T+1 → T+2 → 周方向 → 参考依据\n```\n\n符合「客户先看涨跌 → 再看细化 → 结论→支撑」的认知逻辑。\n\n### 2. 涨跌方向汇总（第一层，Andy 铁律 2026-08-09）\n\n客户看预测数据时**首先关注涨还是跌**，因此必须先输出涨跌方向汇总，再输出细化档位：\n\n```\n📈 涨跌方向：跌 ▼（综合评分 -0.35）\n   细化信号：震荡偏空（近30天正确率11.5%）\n```\n\n**5档 → 涨跌方向汇总 映射规则（铁律，必须严格遵循）：**\n\n| 细化档位（direction） | 涨跌方向汇总 | 图标 |\n|:-------------------|:-----------|:----|\n| 偏多 | 涨 | ▲ |\n| 震荡偏多 | 涨（偏弱） | ▲ |\n| 震荡 | 震荡 | ▬ |\n| 震荡偏空 | 跌（偏弱） | ▼ |\n| 偏空 | 跌 | ▼ |\n\n**规则：**\n- ❌ 禁止直接把 5 档 direction 作为第一行输出（如直接写\"方向：震荡偏空\"当标题）\n- ✅ 第一行必须是\"涨跌方向汇总\"（涨/震荡/跌 三选一 + ▲/▬/▼ 图标）\n- ✅ 第二行才写细化信号（5档 + 近30天正确率）\n- ✅ 综合评分 0~10 分，附进度条\n- ✅ key_signals 若含 `涨(细化:震荡偏空,近30天正确率11.5%)` 格式，直接按此展示；若为旧格式（如 `震荡(近30天正确率13.8%)`），则按上表映射规则推导涨跌方向\n\n### 3. 信号方向统计 + 参考置信度（细化层）\n\n```\n📈 方向：偏多  🎯 评分：6.5/10  [████████░░░░░░░]\n```\n\n方向：偏多 / 震荡偏多 / 震荡 / 震荡偏空 / 偏空  \n评分：0~10 分，附进度条\n\n### 4. 历史匹配率 — 三时段展示（Andy 铁律）\n\n历史信号匹配统计前必须输出历史匹配率，分三时段展示。**主指标为方向匹配率**（预测涨/跌/震荡与实际涨跌的一致性：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%），**参考区间命中率为辅助**（±1%窄区间口径苛刻，仅供辅助参考）：\n\n```\n方向匹配率（主指标）：\n  ✅ 全部历史：6/8 = 75.0%  [█████████░░░░░░░]  (正确数/总数)\n  ⚠️ 近60日：4/7 = 57.1%   [███████░░░░░░░░░]  (正确数/总数)\n  ❌ 近30日：1/3 = 33.3%   [████░░░░░░░░░░░░]  (正确数/总数)\n📎 参考区间命中率（±1%窄区间苛刻口径）：全部 12.5% ｜ 60日 14.3% ｜ 30日 0%\n```\n\n**规则：**\n- ✅ 展示方向匹配率（主指标）全部 + 近60日 + 近30日，必须带 正确数/总数 + 百分比 + 进度条（Andy 铁律）\n- ✅ 数据来源：优先 `latestPrediction.voteDetail.方向匹配率`（键值 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测，样本可能很少，需注明）\n- ✅ 辅助展示参考区间命中率 `accuracy.all/period30/period60`，必须注明\"±1%窄区间苛刻口径\"\n- ❌ 不展示偏多方向匹配率（Andy 明确要求去掉，仅保留上述三行）\n- 格式：`时段：Z.Z% [███████░░░░░░░] (正确数/总数)`\n- 按「全部→60日→30日」顺序排列\n- 进度条总长 20 格\n\n### 5. 历史波动参考区间 — 三要素铁律\n\n做历史信号统计时，**必须同时输出以下三个范围要素**：\n\n| 要素 | 含义 | 示例 |\n|:----|:-----|:-----|\n| **历史波动参考区间** | 综合判断的合理波动区间（最低~最高） | 6.85 ~ 7.10 元 |\n| **历史波动上沿** | 压力位上方的极限高值区 | 7.05 ~ 7.15 元 |\n| **历史波动下沿** | 支撑位下方的极限低值区 | 6.78 ~ 6.88 元 |\n| **参考置信度** | 本次参考的置信度（0~100%） | 75% |\n\n没有范围只有方向 = **无效参考**。用户要的是「多少钱能买、多少钱能卖」，不是「涨还是跌」。\n\n### 6. T+1 历史参考（下一交易日）\n\n```\n📅 T+1历史参考：涨 ▲（细化：偏多）  参考置信度：75%\n  历史波动区间：   6.85 ~ 7.10 元\n  历史波动上沿： 7.05 ~ 7.15 元\n  历史波动下沿： 6.78 ~ 6.88 元\n  历史均值：   6.98 元\n  📊 短线技术信号偏多\n```\n\n必须包含：\n- 涨跌方向汇总（涨▲/震荡▬/跌▼）+ 细化信号方向\n- 参考置信度\n- 历史波动区间（最低~最高）\n- 历史波动上沿 / 历史波动下沿\n- 预期历史均值\n- 技术信号\n\n### 7. T+2 历史参考（格式同上）\n\n```\n📅 T+2历史参考：涨 ▲（细化：偏多）  参考置信度：70%\n  历史波动区间：   6.80 ~ 7.15 元\n  历史波动上沿： 7.10 ~ 7.20 元\n  历史波动下沿： 6.72 ~ 6.82 元\n  历史均值：   6.98 元\n  💡 可持票待涨\n```\n\n### 8. 周方向\n\n```\n📅 中期信号：涨 ▲（细化：震荡偏多）\n  ✅ MA60上方支撑，中期趋势向上\n```\n\n必须包含周方向（Andy 确认）。\n\n### 9. 参考依据 — 二维表展示\n\n```\n参考依据：\n┌──────────┬──────────────────────────────────────────┬──────────┐\n│  维度     │  内容                                    │  信号    │\n├──────────┼──────────────────────────────────────────┼──────────┤\n│  📐 技术面 │ 均线多头排列 MA5>MA10>MA20                  │  偏多    │\n│  📐 技术面 │ MACD零轴上金叉，红柱扩大                      │  偏多    │\n│  🔍 模式   │ 近3日量价齐升，突破箱体上沿                   │  偏多    │\n│  🛡️ 支撑   │ 20日均线支撑有效，回踩不破                    │  偏多    │\n│  ⚠️ 风险   │ RSI进入超买区(72)，注意短线回调风险            │  偏空    │\n└──────────┴──────────────────────────────────────────┴──────────┘\n```\n\n3~5条依据，涵盖：技术面 + 模式识别 + 支撑/压力 + 风险因素\n\n---\n\n## 📈 历史规律展示格式（定版）\n\n### 场景化标题\n\n用用户秒懂的语言，不用工程师腔：\n\n| ❌ 旧格式 | ✅ 新格式 |\n|:---------|:---------|\n| 大涨后回调特征 | 某天突然大涨超过3%，之后3天会怎样？ |\n| 大跌后反弹规律 | 某天突然暴跌超过3%，之后3天能企稳吗？ |\n| 阻力位规律 | 股价涨到这个位置总是过不去？ |\n| 支撑位规律 | 股价跌到这里就跌不动了？ |\n\n### 展示模板\n\n```\n🔥 某天突然大涨超过3%，之后3天会怎样？\n  📈 历史上出现 12次\n  ✅/⚠️ 匹配率 75.0% [███████████░░░░░░░]\n     总共出现12次 | 符合9次 | 匹配率75.0%\n  💡 参考：大涨后历史规律偏回调\n  📌 最近案例：2026-06-15 大涨4.2%，之后3日累计+1.1%\n```\n\n### 已识别规律（由服务端 POST /api/klineanalyze 自动返回）\n\n| 规律 | 说明 |\n|:----|:------|\n| 大涨后回调规律 | >3%大涨后3日上涨比例低，偏回调 |\n| 大跌后反弹规律 | <-3%大跌后3日偏多比例高 |\n| 阻力位规律 | 统计历史上攻失败价位 |\n| 支撑位规律 | 统计历史回踩获撑价位 |\n| 回调性质判断 | MACD绿柱长度+KDJ极端程度区分趋势性下跌vs震荡回调 |\n\n> 上述规律由服务端 `KlineAnalyzeService.MinePatterns()` 自动计算。  \n> **注意：** C# 中 `??` 运算符优先级低于 `-`，格式 `%` 说明符会 `×100`，已踩坑修复。\n\n---\n\n## 📚 自学习规律跟踪\n\nAPI 返回 `learningSummary` 字段，从 `stock_patterns` 表读取历史规律记录。\n\n### 展示格式\n\n```\n📚 规律学习摘要\n  ──────────────────────────────────────────\n  规律#1（大涨后回调）第5次验证：大涨后3日下跌比例上升 ✅\n  方向匹配率：68%→75%（+7次验证）\n  ──────────────────────────────────────────\n  规律#2（大跌后反弹）第3次验证：大跌后反弹有效性稳定 ⚠️\n  方向匹配率：62%→63%（+2次验证）\n```\n\n### 处理逻辑\n- 按 `pattern_type` 分组\n- 统计验证次数（`verifyCount`）\n- 对比最新与上一次的比例变化，生成更新描述\n- 同时输出方向匹配率（全部历史统计）\n\n---\n\n## 📐 T+1/T+2/周方向推算逻辑\n\nDB 的 `predictions` 表没有 `t1_direction`/`t2_direction`/`weekly_direction` 数据（PredictorService 只算主方向）。\n\n`KlineAnalyzeService` 在返回前通过 `SubDirectionEstimator` 自动推算：\n\n| 主方向 | T+1/T+2 推算规则 |\n|:------|:----------------|\n| **偏多 / 偏空** | T+1/T+2 跟随主方向 |\n| **震荡偏多** | 除非单日暴跌 >1.8%，才修正为「震荡」 |\n| **震荡偏空** | 除非单日暴涨 >1.8%，才修正为「震荡」 |\n| **震荡** | 根据涨跌幅判断偏向 |\n\n---\n\n## 🌟 报告内容人性化原则\n\n1. **场景化标题：** 把「大涨后回调特征」改为「某天突然大涨超过3%，之后3天会怎样？」— 用户秒懂\n2. **可视化符号：** `✅/❌/📈/📉/🔴/🟢` 比文字更快传递信息\n3. **历史统计总结：** 每次规律后给一句历史统计参考（如「大涨后偏回调」），辅助用户理解数据含义\n4. **出现次数+匹配率单独展示：** 拆成「总共出现N次 | 符合M次 | 匹配率Z% + 进度条」\n5. **数据单位人性化：** volume(股)→手，amount(元)→万元/亿元\n\n---\n\n## 📝 更高质量报告\n\n如需生成排版更精美的报告（灵活字体/颜色/布局/多图组合），LLM 可自行编写脚本通过 `db.kline_analyze(code)` 获取数据后生成 DOCX，`reporter.py` 仅作为兜底方案。\n\n---\n\n## 🔴 付费预览处理逻辑\n\n> ⚠️ **强制指令（付费状态实时核查，不可省略）：**\n> **每次获取 WebAPI 数据前，必须重新调用 `db.kline_analyze(code)`（或 `db.kline_analyze_v3(code)`）实时核查当前 APIKey 的付费状态，以本次调用的返回值为准。**\n> - ❌ **严禁**沿用本会话之前轮次、上一只股票、或上次报告得出的 `preview` 结论——用户可能在此期间已经扫码付款，服务端已将当前 Key 激活\n> - ❌ **严禁**因为\"之前是预览模式\"就惯性输出预览版报告；每次分析都必须重新验证\n> - ✅ 判断依据永远是**本次** `db.kline_analyze()` 返回值中的 `preview` 字段：\n>   - `preview: True` → 免费预览模式 → 按下方预览规则输出\n>   - 无 `preview` 字段（完整数据）→ 付费模式 → 正常输出全量分析\n> - 用户说\"已付款/已购买\"后，**必须重新调用一次** `db.kline_analyze()` 验证，不能直接凭用户说法切换模式，也不能沿用旧结论\n> - 同一次分析中，`analyze()` 返回的 `_payment_url` 与 `preview` 均来自本次实时调用，不要混用旧值\n\n**预览模式判断：** `db.kline_analyze` 返回的 `kline_analyze` 块中有 `preview: True` 时，表示当前为免费预览模式。\n\n> ⚠️ **强制指令（不可省略）：预览模式下，章节十二和十三的末尾必须输出购买链接。** \n> LLM 不得跳过链接、不得自行改写成无链接的纯文本、不得用\"付费版内容\"替代链接行。\n> 即使你觉得链接占位符未替换，**也必须原样输出** `💳 [立即获取 → 股海罗盘APIKey]({_payment_url})` 这一行。\n> 缺少购买链接 = 用户无法付款 = 严重错误。\n>\n> ⚠️ **强制格式指令：** 购买链接必须是**可点击的 markdown 链接** `[文字](URL)`，不能是纯文本。\n> - ✅ 正确：`💳 [立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin/platform/#/subscribe?token=XXXXXXXX)`\n> - ❌ 错误：`💳 立即获取 → 股海罗盘APIKey`（纯文本，不可点击）\n\n**预览模式下的报告规则：**\n- 章节一~十（基础数据）→ **正常展示**\n- 章节十一（K线技术分析）→ **仅展示原始指标数据表格**（MA/MACD/KDJ/RSI数值），**不作任何方向解读**（不写偏多/偏空/多头排列/金叉死叉等），不加信号汇总\n- 章节十二（历史信号匹配）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十三（历史规律总结）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十四~十五 → 正常展示\n- **不需要在报告末尾单独追加付费预览框** — 章节十二和十三已承担付费引导\n\n> ⚠️ **强制指令（章节模板优先于数据）：** 预览模式下，LLM **不得**自行展示或解读通过 `data_fetcher` 本地HTTP获取的任何K线技术数据、信号、规律、评分等付费内容。即使你本地采集到了这些数据（如MACD/KDJ/RSI数值、均线排列、量比等），也必须**严格按照上述章节规则**：\n> - 章节十一 → 只能展示原始数值表格，**禁止附上自己的解读**\n> - 章节十二/十三 → **不得自行填充数据或解读**，只能展示 🔒 痛点 + 付费价值列表 + 购买链接\n> - 不得在章节十一展示信号汇总、均线多头/空头判断、金叉/死叉等  \n> **错误示例**（❌ 禁止）：\"付费用户可查看完整分...\" 然后自己画个MACD解读  \n> **正确示例**（✅）：展示数据表 → 🔒 **痛点句** → • 列表 → 💳 购买链接\n\n**预览章节格式化要点：**\n1. 章节标题上方用 `🔒` 标记（如 `#### 十二、历史信号匹配统计 🔒`）\n2. 痛点句加粗（`> 🔒 **痛点文案**`）\n3. 付费价值列表用 `•`\n4. 购买链接使用 `{_payment_url}` 动态变量（来自 `db.kline_analyze()` / `kline_teaser()` 返回的 `_payment_url` 字段）\n   - **正确做法：** `[立即获取 → 股海罗盘APIKey]({_payment_url})` → LLM 将 `{_payment_url}` 替换为 `db.kline_analyze()` 结果中的实际 URL\n   - **错误做法：** `[立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin)` → **缺少 token 参数，付款后无法自动激活！**\n   - `_payment_url` 字段格式示例：`https://www.oraskl.com/ghdata-admin/platform/#/subscribe?token=XXXXXXXX`\n   - ⚠️ 该字段由 `db.get_payment_url()` 生成（**短时 token**，URL 不含完整 Key），不要用 `config.show()` 输出的掩码版自己拼！\n   - 无论预览/付费模式，`_payment_url` 始终存在，付费模式下可省略不展示\n5. **不要用 \"暂不展示\"、\"需付费查看\" 等平淡措辞** — 要用痛点驱动的销售语言\n6. `{_payment_url}` 链接为平台签发的**短时 token 链接**（`?token=xxx`），用户点击购买后，服务端在订单接口内部解析 token 并激活对应 Key。**不要自己拼链接，不要用掩码后的Key，不要尝试自行拼接 `?apikey=`！**\n\n**DOCX 报告路径：** `reporter.py` 的 `generate()` 内部通过 `_paid_section()` 自动处理付费占位，无需手动干预。\n\n---\n\n## ⚠️ 数据注意事项\n\n- **新浪财经** `hq.sinajs.cn` 是实时收盘价最可靠来源\n- **腾讯分钟数据** 成交量是累计值！需差分计算\n- **同花顺资金流向** 收盘价可能不准确，须用新浪验证\n- **股票代码：** 60xxx/68xxx=上海，00xxx/30xxx=深圳\n- **今日K线（todayKline）：** 盘中必传（客户端自拉腾讯API实时K线，18:00前DB无今日数据）；收市后可不传（18:00日更新服务已将今日K线写入DB）\n- **K线图（LINE_CHART）：** 仍需通过 `generate_kline_chart` 工具生成PNG（工具内部自拉腾讯API）\n- **技术指标/信号/规律/匹配率：** 均由服务端统一计算（POST `/api/klineanalyze`），客户端不再本地计算\n- **无数据=无价值：** 降级版（lite）对用户毫无意义，要么拿全数据出完整版，要么不出\n- **🔴 禁止硬编码：** 任何代码和规则中**不得出现针对某只股票的特化数据**（如 `eps_est=0.26` 这种特定股票的EPS、行业描述、行业PE/PB均值等）。所有数据必须从API实时获取或从已有数据动态计算（如 EPS = price / PE）。SKILL.md 中的示例必须使用通用占位符，不得出现具体股票名称。\n\n### DOCX 报告数据单位人性化\n\n| 字段 | 原始单位 | 报告展示单位 |\n|:----|:--------|:-----------|\n| volume | 股 | 手（÷100） |\n| amount | 元 | 万元（÷10000）或亿元（÷100000000） |\n| 流通市值/总市值 | 元 | 亿元 |\n\n---\n\n## 📌 技能角色说明\n\n**本技能不生成分析结论。** 技能仅负责：\n- 从公开数据源（新浪财经、腾讯财经、东方财富、同花顺等）采集历史数据\n- 提供17维历史数据统计计算（财务指标、技术指标、资金流向等）\n- 返回历史数据查询结果与统计方法输出\n\n**所有分析结论、趋势判断、文字解读均由用户接入的 LLM 自行生成**，与技能本身无关。技能不包含任何推荐股票、预测涨跌、建议买卖的逻辑。\n\n---\n\n> ⚠️ **强制指令 - 调用方式（供 LLM 执行参考）**\n>\n> 使用本技能时请**直接执行本文件中提供的 Python 代码**完成分析，**不要通过 `chat_with_agent` 调用 gh-data 智能体**。\n>\n> - ❌ chat_with_agent → gh-data → 跑Python（慢，额外3~8秒通信开销）\n> - ✅ 直接跑Python脚本（快，总耗时~3~5秒）\n>\n> Python：使用本机可用的 Python 3 环境执行下方代码；代码路径：本文件下方完整三阶段代码，复制即可执行。\n\n---\n\n## 📄 风险提示与免责声明\n\n**本技能本身不生成分析结论，所有分析结论由用户接入的LLM基于技能提供的历史数据自行生成。**\n\n本报告仅供参考，**不构成任何投资建议**。投资者据此操作，风险自担。\n\n数据来源：新浪财经(hq.sinajs.cn)、腾讯财经(qt.gtimg.cn/ifzq.gtimg.cn)、东方财富(datacenter-web.eastmoney.com)、同花顺(stockpage.10jqka.com.cn)\n\n**股票投资有风险，历史数据不代表未来表现。不含未来预测、不含投资建议、不含买卖指令。**\n\nFile v2.2.51:_meta.json\n\n{\n  \"ownerId\": \"kn77yfgxmym32jzt81n23h8vb988gsxn\",\n  \"slug\": \"gh-data\",\n  \"version\": \"2.2.51\",\n  \"publishedAt\": 1786518839107\n}\n\nFile v2.2.51:skill-card.md\n\n## Description:\n\n股海罗盘 is a Chinese-language A-share and ETF analysis skill that gathers market, technical, financial, fund-flow, and research-report data, compares signals against historical patterns, and can generate DOCX reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sunbinpy](https://clawhub.ai/user/sunbinpy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to gather China A-share and ETF market data, compare current signals with historical patterns, and generate concise Markdown-style summaries or DOCX reports. The outputs are informational research aids and are not investment advice.\n\n### Deployment Geography for Use:\n\nGlobal; data coverage is focused on China A-share and ETF markets.\n\n## Known Risks and Mitigations:\n\nRisk: The skill creates a persistent local API key and the security evidence reports risky key storage and transmission.\n\nMitigation: Use only a low-value or trial key until the publisher documents key storage and rotation and uses HTTPS for credential-bearing calls; remove or rotate the local key after testing.\n\nRisk: Preview outputs may include paid upgrade links.\n\nMitigation: Review generated analysis and DOCX reports before sharing them, and treat upgrade links as payment content rather than analysis evidence.\n\nRisk: Stock-analysis output can be mistaken for investment advice.\n\nMitigation: Preserve the skill's risk disclaimer and review outputs so they remain framed as historical data and statistical reference, not buy, sell, or hold guidance.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sunbinpy/skills/gh-data)\n- [Publisher profile](https://clawhub.ai/user/sunbinpy)\n- [股海罗盘 product homepage](https://www.oraskl.com/ghdata-admin)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, files, configuration, guidance]\n\n**Output Format:** [Markdown-style analysis text with optional DOCX report files and generated chart files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include local report paths, risk disclaimer text, and preview-mode upgrade links.]\n\n## Skill Version(s):\n\n2.2.51 (source: server release evidence and artifact metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v2.2.51:settings.json\n\n{\r\n  \"webapi_url\": \"http://api.topeasychina.com:15099/api\",\r\n  \"webapi_timeout\": 30,\r\n  \"doc_dir\": \"./doc\"\r\n}\n\nFile v2.2.51:requirements.txt\n\nrequests>=2.28.0\r\npython-docx>=1.0.0\r\nmatplotlib>=3.6.0\r\nmplfinance>=0.12.10\n\nArchive v2.2.50: 19 files, 93591 bytes\n\nFiles: _meta.json (127b), _pub_err.txt (0b), _pub_out.txt (0b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5598b), ghdata/chart.py (5920b), ghdata/config.py (7307b), ghdata/data_fetcher.py (23507b), ghdata/db_config.py (1749b), ghdata/db_manager.py (30361b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (89396b), ghdata/research_utils.py (12956b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2785b), SKILL.md (67185b)\n\nFile v2.2.50:SKILL.md\n\n---\nname: ghdata-stock\ndescription: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"📊\",\n      \"name\": \"股海罗盘 - A股股票量化分析\"\n    }\n  }\nhomepage: https://www.oraskl.com/ghdata-admin\n---\n\n# 股海罗盘（gh-data）— A 股股票量化分析技能\n\n---\n\n## 🚀 核心能力\n\n| | 特点 | 说明 |\n|:-:|:-----|:-----|\n| 🧠 | **自学习量化引擎** | 每只股票60W+历史信号回测，输出历史匹配率，不只是数据，告诉**\"过去准不准\"** |\n| 📊 | **17维全量数据** | 实时行情·K线·MACD/KDJ/RSI·资金流向·机构持仓·融资融券·高管变动·研报·财务三表·分红·解禁 |\n| 📈 | **自动规律挖掘** | 5类规律图谱：支撑/阻力位（触碰次数）、大涨后回调概率、大跌后反弹特征、MACD趋势判定 |\n| 💎 | **ETF四象联动** | 独家板块级资金流向×个股走势联动分析，判断是\"板块共振\"还是\"独立行情\" |\n| 🔗 | **研报交叉验证** | 券商覆盖统计、EPS一致性分歧度、今日评级动态，判断市场共识方向 |\n| 📝 | **一键DOCX报告** | 自动生成15章完整结构化分析报告，含K线图嵌入，可直接保存和分享 |\n\n## ⚡ 快速开始\n\n**支持的请求类型：**\n\n| 请求示例 | 说明 |\n|:---------|:-----|\n| `分析 601899` | 返回17维全量数据+量化分析+信号+历史匹配率 |\n| `600600 青岛啤酒 简要分析` | 返回核心要点，不生成DOCX |\n| `600000 资金面怎么样` | 仅分析资金流向+ETF四象联动+机构持仓 |\n| `生成报告 002455` | 生成完整DOCX报告 |\n| `券商怎么看 601899` | 研报观点验证+评级统计 |\n| `688981 盘前做T` | ETF盘后信号+T+1盘后因子 |\n\n## ⚙️ 配置\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}\n```\n\n| 配置项 | 默认值 | 说明 |\n|:-------|:-------|:-----|\n| `api_key` | `\"\"` | **付费API密钥，必填。** 用户购买后在此填入。**仅从 `~/.ghdata/ghdataapikey` 文件读取**，❌ 不支持 settings.json |\n| `webapi_url` | `\"\"` | WebAPI 地址（付费用户获取，购买后提供） |\n| `webapi_timeout` | `30` | HTTP 请求超时（秒） |\n| `doc_dir` | `./doc` | 报告输出目录 |\n\n> **配置生效规则**（优先级从高到低）：  \n> 1. 上述 `config` 配置（仅URL/超时，不含APIKey）  \n> 2. 本地文件 `~/.ghdata/ghdataapikey`（**APIKey唯一来源**）  \n> 3. 自动生成GUID兜底（免费体验用）\n>\n> ⚠️ 环境变量 `GHDATA_API_URL` / `GHDATA_TIMEOUT` 和 `settings.json` **仅用于配置URL和超时**，不读APIKey。\n>\n> **⚠️ APIKey 铁律：** APIKey **只允许**从 `~/.ghdata/ghdataapikey` 这一个文件读取和写入。不读settings.json，不读环境变量。删除该文件 → 自动生成随机GUID → 服务端验证失败 → 降级为免费预览模式。\n\n---\n\n---\n\n## ⚡ LLM 必读：启动时自动执行\n\n本技能的配置（APIKey、WebAPI地址等）在内部自动完成初始化，**无需调用方做任何操作**。直接发分析请求即可。\n\n### 🚨 风险提示强制展示\n\n**在每次向用户输出分析结果前（包括首次交互、每次生成报告、每次展示分析结论），LLM必须在最前方展示以下风险提示：**\n\n> ⚠️ **风险提示**：本技能为公开历史数据的统计与查询工具，**仅提供数据统计方法与历史数据查询结果，本身不生成任何分析结论**。所有分析结论均由您接入的大语言模型（LLM）基于技能提供的历史数据自行生成，与技能本身无关。所有分析结果均基于历史数据计算，**不构成任何投资建议，不预测未来走势**。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n**禁止以任何形式暗示或明示：**\n- 声称本工具推荐某只股票\n- 声称本工具能预测股价涨跌\n- 声称本工具建议买入/卖出/持有\n- 声称历史表现可保证未来收益\n\n**LLM输出措辞强制对照表：**\n\n| ❌ 禁止使用 | ✅ 必须使用 |\n|:-----------|:-----------|\n| 判势、综合判势、判断趋势 | 信号方向、综合信号 |\n| 预测、预判、涨跌范围预测、T+1预测 | 历史参考、参考区间、T+1历史参考 |\n| 准确率、历史准确率 | 匹配率、历史匹配率 |\n| 最佳、最差、最强、最弱 | 历史统计最高、历史统计最低 |\n| 优秀、良好、一般、较差（评分） | 偏高、中等偏上、中等、偏低 |\n| 评级为XX | 评分参考为XX |\n| 策略参考、操作参考 | 历史统计、历史规律 |\n| 需警惕、可关注、不宜、需注意（操作暗示） | 偏弱、偏强（信号描述） |\n| 安全垫、防御价值 | 股息率参考、稳定性参考 |\n| 容易回升、容易反弹、反弹属性、反弹需求、反弹动力、偏反弹、大概率会、概率偏高/偏低 | 历史统计中偏多/偏空，比例偏高/偏低 |\n| 评级参考、判断依据 | 评分参考、参考依据 |\n| 具吸引力、值得关注、承压、下跌空间、有支撑 | 偏高、中性、偏空（信号描述），股息率参考 |\n| 持有（建议语境）、注意风险、不宜、需警惕、企稳 | 偏强、偏弱（信号描述） |\n| 共振、综合共振、多周期共振 | 多周期综合信号、多周期合成信号 |\n| 可信、可信程度 | 参考置信度、参考级别 |\n| 买入、卖出、加仓、减仓、止损、止盈 | 仅限数据字段描述（如龙虎榜买卖席位） |\n\n> ⚠️ **本表也约束代码输出文本**：`reporter.py`、`analyzer.py` 等模块中涉及输出文本的硬编码字符串同样适用以上规则，不能仅靠 LLM 自觉合规。\n\n> ⚠️ **API数据分类名输出规则**：当展示WebAPI返回的模式分类名时（如\"大跌后反弹特征\"），需将其中的\"反弹\"替换为\"偏多\"描述。示例：`大跌后反弹特征` → `大跌后偏多特征`，`反弹属性` → `偏多属性`\n\n> ⚠️ **\"偏反弹\"——绝对禁止词**：任何时候不得用\"偏反弹\"描述历史规律方向。即使API原始数据包含\"0/1=0%反弹\"等字样，展示时也必须改为\"偏多\"/\"偏空\"描述。若数据本身的结论是\"历史统计中大跌后偏多比例偏高\"，则表述为\"大跌后历史统计偏多\"。\n>   正确：`大跌后历史规律偏多（均值+5.14%）` ✅\n>   错误：`大跌后历史规律偏反弹（均值+5.14%）` ❌\n\n> ⚠️ **API字段名翻译规则**：WebAPI返回的英文/中文字段名需按以下规则翻译后再输出，禁止直接照搬：\n> - `latestPrediction` → `最新信号参考`\n> - `accuracy` → `匹配率`（注意双口径：`accuracy.all/period30/period60` 为**参考区间命中率**（±1%窄区间，苛刻口径，辅助展示）；`directionAll/direction30/direction60` 为仅统计有方向倾向预测的方向判定，样本可能很少）\n> - `voteDetail.方向匹配率` → `方向匹配率`（**主指标**：3档符号判定 全部/60日/30日，格式 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）\n> - `rangeForecast` → `参考区间`\n> - `predictDate` → `参考日期`\n> - `prediction` / `predict` 出现 → 一律替换为 `信号` / `参考`\n> - `direction` → `信号方向`\n> - `voteDetail` → `各规则投票明细`\n> - 任何包含\"预测\"\"预判\"的字段名 → 改为\"参考\"\"信号\"\n\n> ⚠️ **输出后处理强制规则**：在你完成全部分析文本生成后，**必须调用一次 `sanitizer.sanitize(你的输出文本)`** 进行最终合规过滤。此函数会自动替换所有红线词。示例：\n> ```python\n> from ghdata.sanitizer import sanitize\n> final_output = sanitize(your_full_output_text)\n> ```\n\n---\n\n## 🚀 核心工作流（每次分析必须执行）\n\n每次分析一只股票，必须完成以下三阶段：\n\n```\n阶段 A：数据采集      ─→  阶段 B：量化分析    ─→  阶段 C：报告输出\n  HTTP直连公开API       POST WebAPI分析API      生成DOCX报告+K线图\n  (新浪/腾讯/东方财富)  (技术指标/信号/统计)     (17维/评分/信号统计)\n```\n\n---\n\n### 阶段 A：17 维数据采集（本地 HTTP 直连）\n\n**方式：** 调用 `ghdata/data_fetcher.py` 中的函数，通过本地 HTTP 直连新浪/腾讯/东方财富等公开 API 获取原始数据。单次约 0.5~2s，支持并行调用，**速度快于 WebAPI 全量拉取**。\n\n| # | 数据维度 | 数据源 | 函数 |\n|:-:|:---------|:-------|:-----|\n| 1 | 实时行情 | 新浪 + 腾讯双源交叉 | `fetch_realtime(code)` |\n| 2 | 日K线数据 | 腾讯 ifzq.gtimg.cn | `fetch_kline(code, days)` |\n| 3 | 今日分时 | 腾讯 qt.gtimg.cn 分钟数据 | `fetch_today_tick(code)` |\n| 4 | 资金流向 | 同花顺 stockpage.10jqka | `fetch_money_flow(code, days)` |\n| 5 | 融资融券 | 东方财富 DataCenter | `fetch_margin_trading(code, days)` |\n| 6 | 机构持仓 | 东方财富 DataCenter | `fetch_main_holdings(code)` |\n| 7 | 股东增减持 | 东方财富 DataCenter | `fetch_shareholder_trade(code)` |\n| 8 | 高管持股变动 | 东方财富 DataCenter | `fetch_executive_change(code)` |\n| 9 | 财务数据 | 东方财富 DataCenter | `fetch_financial(code)` |\n| 10 | 资产负债表 | 东方财富 DataCenter | `fetch_balance_sheet(code)` |\n| 11 | 利润表 | 东方财富 DataCenter | `fetch_income_statement(code)` |\n| 12 | 现金流量表 | 东方财富 DataCenter | `fetch_cashflow(code)` |\n| 13 | 分红历史 | 东方财富 DataCenter | `fetch_dividend(code)` |\n| 14 | 券商研报 | 东方财富 DataCenter | `fetch_research_report(code)` |\n| 15 | 机构调研 | 东方财富 DataCenter | `fetch_institutional_survey(code)` |\n| 16 | 限售解禁 | 东方财富 DataCenter | `fetch_unlock_data(code)` |\n| 17 | **行业信息** | 东方财富 DataCenter | `fetch_industry_info(code)` |\n\n> **增强数据（量化分析使用，通过 WebAPI 获取）：**\n> - **行业ETF资金流** → `db_manager.get_etf_flow(code, days=15)` — 近N日ETF资金净流入/出\n> - **ETF数据统计（含盘后）** → `db_manager.get_etf_stats(...)` — 盘后活跃度排名\n> - **券商研报汇总** → `db_manager.get_research_summary(code)` — 机构评级/EPS预测\n> - **EPS一致性预期** → `db_manager.get_eps_consistency(code)` — 分歧度判定\n> - **券商覆盖统计** → `db_manager.get_broker_ranking(code)` — 买入率\n> - **今日评级动态** → `db_manager.get_rating_wind_today(code)` — 今日研报更新\n\n**Python 代码（直接在 CMD 中执行）：**\n\n```python\nimport sys, os\nsys.path.insert(0, os.path.dirname(__file__))\nfrom ghdata import data_fetcher as fetcher\nfrom ghdata import config\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\ndef collect_all(code: str) -> dict:\n    \"\"\"17维数据一次性采集（全部HTTP直连，8路并行，零外部依赖）\"\"\"\n    # 定义所有采集任务：（key, 函数, 参数...）\n    tasks = [\n        (\"realtime\",     fetcher.fetch_realtime,           code),\n        (\"kline\",        fetcher.fetch_kline,              code, 120),\n        (\"tick\",         fetcher.fetch_today_tick,         code),\n        (\"moneyFlow\",    fetcher.fetch_money_flow,         code, 10),\n        (\"margin\",       fetcher.fetch_margin_trading,     code, 10),\n        (\"holdings\",     fetcher.fetch_main_holdings,      code),\n        (\"shareholder\",  fetcher.fetch_shareholder_trade,  code),\n        (\"executive\",    fetcher.fetch_executive_change,   code),\n        (\"financial\",    fetcher.fetch_financial,          code),\n        (\"balance\",      fetcher.fetch_balance_sheet,      code),\n        (\"income\",       fetcher.fetch_income_statement,   code),\n        (\"cashflow\",     fetcher.fetch_cashflow,           code),\n        (\"dividend\",     fetcher.fetch_dividend,           code),\n        (\"research\",     fetcher.fetch_research_report,    code),\n        (\"survey\",       fetcher.fetch_institutional_survey, code),\n        (\"unlock\",       fetcher.fetch_unlock_data,        code),\n        (\"industry\",     fetcher.fetch_industry_info,      code),\n    ]\n    data = {}\n    with ThreadPoolExecutor(max_workers=8) as pool:\n        futures = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n        for fut in as_completed(futures):\n            key = futures[fut]\n            try:\n                data[key] = fut.result()\n            except Exception as e:\n                data[key] = None\n    return data\n\n# 增强数据（调用WebAPI获取，必须纳入分析）：\nfrom ghdata import db_manager as db\netf_flow = db.get_etf_flow(code, 15)                  # 行业ETF资金流\nrpt_summary = db.get_research_summary(code, 90)        # 研报汇总\neps_data = db.get_eps_consistency(code, 180)           # EPS一致性\nbroker_data = db.get_broker_ranking(code, 90)          # 券商覆盖\ntoday_rpt = db.get_rating_wind_today(code)             # 今日动态\n```\n\n---\n\n### 阶段 B：量化分析（WebAPI）\n\n采集完数据后，调用 WebAPI 进行量化分析：\n\n```python\nfrom ghdata import db_manager as db\n\n# 调用 WebAPI 获取全量分析结果\nresult = db.kline_analyze(code, today_kline=None)\n# 返回包含：\n#   indicators  → MA5/MA10/MA20/MA60/MACD/KDJ/RSI/量比\n#   signals     → 偏多/偏空/中性 汇总\n#   patterns    → 大涨后规律/大跌后规律/支撑/阻力\n#   accuracy    → 全部历史/近60日/近30日 匹配率\n#   prediction  → 方向/T+1/T+2/中期方向 + 价格区间\n#   learning    → 自学习规律跟踪摘要\n\n# 【重要】以下数据必须在分析中纳入：\n\n# ① ETF 行业资金流 — 资金面分析时必须调用\netf_flow = db.get_etf_flow(code, days=15)\n# 返回: { matched_etfs: [{code, name}], etf_flow: {code: [{date, fund_size, net_inflow}]}, summary:\"...\" }\n# 用途：判断个股所属行业的ETF资金态度——板块净流入=资金支撑，净流出=板块压力\n# 即使matched_etfs为空也要说明\"该行业暂未配置ETF映射\"\n\n# ② 券商研报数据 — 基本面/估值分析时必须调用\nresearch_summary = db.get_research_summary(code, days=90)\n# 返回格式化文本：机构名、评级、EPS/PE预测值\n\neps_consistency = db.get_eps_consistency(code, days=180)\n# 返回格式化文本：覆盖机构数、平均EPS、标准差、变异系数、分歧度\n\nbroker_rank = db.get_broker_ranking(code, days=90)\n# 返回格式化文本：覆盖该股的券商、篇数、买入率\n\nrating_today = db.get_rating_wind_today(code)\n# 返回格式化文本：该股今日是否有研报更新\n```\n\n**WebAPI 地址通过配置中的 `webapi_url` 设置。**\n\n---\n\n### 阶段 C：报告生成\n\n```python\nfrom ghdata import reporter\nfrom ghdata import chart\n\n# 1. 生成 K 线图\nchart.generate_kline_chart(klines, ...)\n\n# 2. 生成 13 章完整 DOCX 报告（自动采集全部17维数据，无需手动传入）\nreporter.generate(code)\n\n# 可选：如果已通过API采集了数据，可以传入 extra_data 覆盖自动采集的结果\n# reporter.generate(code, extra_data={\n#     \"holdings\": {\"points\": [...], \"conclusion\": \"...\"},\n#     \"money_flow\": {\"points\": [...], \"conclusion\": \"...\"},\n# })\n```\n\n---\n\n## 📈 个股分析（LLM 指令）\n\n用户输入股票代码或名称时，LLM执行三阶段分析流程（采集→量化→报告）。\n\n### 用户输入匹配表\n\n| 用户说 | LLM执行 | 说明 |\n|:-------|:--------|:-----|\n| \"分析600028\"、\"看看中国石化\" | 阶段A+B：采集+量化 → **输出精简报告** | ⚡默认输出精简版（见下方），**不生成15章全文** |\n| \"中国石化怎么样\"、\"600028走势\" | 阶段A+B：采集+量化 → **输出精简报告** | 同上 |\n| \"帮我全面分析一下这只股票\"、\"出完整报告\"、\"详细分析\" | 阶段A+B+C：完整15章报告 | 完整报告耗时较长，调用方需设置 timeout≥180s |\n| \"生成分析报告\"、\"出报告\"、\"出文档\" | 阶段A+B→C：生成DOCX | 调用 reporter.generate() 生成docx文件 |\n| \"帮我分析这几只股票\"、\"600028和601857对比\" | 逐只执行 → 输出精简报告 | 多只按顺序处理 |\n| \"K线图\"、\"走势图\" | 阶段A→chart：生成K线图 | 调用 chart.generate_kline_chart() |\n| \"这只股票估值怎么样\"、\"估值合理吗\" | 阶段B → 估值分析 | 展示估值分位/杜邦分析/F-Score |\n| \"技术面多周期怎么看\" | 阶段B → 多周期分析 | 展示日线周线综合信号 |\n| \"北向资金在买还是卖\"、\"龙虎榜有这只吗\" | 阶段B → 资金面画像 | 展示北向/龙虎榜/ETF四象联动/封板/回购/板块 |\n| \"券商怎么看这只股票\"、\"最近有研报吗\" | 阶段B → 券商研报观点 | 展示近期覆盖/EPS一致性/机构观点验证 |\n| \"全面分析所有A股\"、\"帮我扫一下市场\" | 条件筛选TOP10 → 逐只深度分析 → 市场概览 | 不逐只分析5000只 |\n| \"看涨的股票有哪些\"、\"选几只优质股\" | 条件筛选（方向=偏多, 评分高） | 按评分排序TOP20 |\n\n### 全量分析报告标准格式（LLM必读）\n\n当用户要求**全面分析一只股票**（如\"分析一下\"、\"看看\"、\"怎么样\"等常规分析请求），请严格按以下15章结构呈现分析结果。\n\n**执行方式：执行 Python 脚本完成完整的三阶段分析（采集→量化→报告），然后按以下结构逐章输出。**\n\n```python\nfrom ghdata import data_fetcher as fetcher, db_manager as db, eval_engine\n\n# 阶段 A：本地 HTTP 采集原始数据（8路并行，~2秒完成）\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\ncode = \"688502\"  # 替换为待分析的股票代码\n\n# 并行采集17维数据（每个HTTP 0.5~1.5s → 并行后总计 ~2s）\ntasks = [\n    (\"realtime\",  fetcher.fetch_realtime,         code),\n    (\"kline\",     fetcher.fetch_kline,            code, 200),\n    (\"tick\",      fetcher.fetch_today_tick,       code),\n    (\"moneyFlow\", fetcher.fetch_money_flow,       code, 10),\n    (\"margin\",    fetcher.fetch_margin_trading,   code, 10),\n    (\"holdings\",  fetcher.fetch_main_holdings,    code),\n    (\"shareholder\", fetcher.fetch_shareholder_trade, code),\n    (\"executive\", fetcher.fetch_executive_change, code),\n    (\"financial\", fetcher.fetch_financial,        code),\n    (\"balance\",   fetcher.fetch_balance_sheet,    code),\n    (\"income\",    fetcher.fetch_income_statement, code),\n    (\"cashflow\",  fetcher.fetch_cashflow,         code),\n    (\"dividend\",  fetcher.fetch_dividend,         code),\n    (\"research\",  fetcher.fetch_research_report,  code),\n    (\"survey\",    fetcher.fetch_institutional_survey, code),\n    (\"unlock\",    fetcher.fetch_unlock_data,      code),\n    (\"industry\",  fetcher.fetch_industry_info,    code),\n]\ndata = {}\nwith ThreadPoolExecutor(max_workers=8) as pool:\n    fut_map = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n    for fut in as_completed(fut_map):\n        try: data[fut_map[fut]] = fut.result()\n        except: data[fut_map[fut]] = None\n\n# 阶段 B：量化分析（WebAPI + 本地计算）\nanalysis = db.kline_analyze(code)                # ③服务端：技术指标/信号/规律/匹配率/预测\nkline = data.get(\"kline\")\nsignals = eval_engine.analyze(None, kline) if kline else {}  # ④本地：7规则投票\netf      = db.get_etf_flow(code, 15)             # ⑤ETF行业资金流\nresearch = db.get_research_summary(code, 90)     # ⑥券商研报\n\n# 阶段 C：输出报告（按下方15章格式逐章输出）\n```\n\n各阶段分工：\n- **本地HTTP**（data_fetcher）→ 原始数据采集，单次0.5~2s，**8路并行→总计约2s**\n- **WebAPI**（db.kline_analyze）→ 服务端量化计算：技术指标/信号/规律/匹配率/预测\n- **本地计算**（eval_engine）→ 7规则信号投票：偏多/偏空/中性\n\n> ⚠️ 以下分析结果仅为数据统计与技术指标展示，不构成任何投资建议。股市有风险，入市需谨慎。\n\n```\n📊 {股票名称}({代码}) 量化分析报告\n分析日期：{当前日期}（{星期几}） | 今日表现：{涨跌幅} {🚀/📈/📉/❌}\n```\n\n#### 一、公司概况\n| 项目 | 内容 |\n|:----|:-----|\n| 公司名称 | {名称} |\n| 股票代码 | {代码}（{沪市/深市}） |\n| 所属行业 | {行业} |\n| 地域板块 | {地域} |\n| 总市值 | {总市值} 亿元 |\n| 主营构成 | {主营业务简述} |\n| 概念标签 | {概念标签} |\n\n{公司简介（1-2句概括）}\n\n#### 二、实时行情\n| 指标 | 数据 |\n|:----|:-----|\n| 最新价 | {价格} 元 {🚀📈/📉} |\n| 今日开盘 | {开盘价} |\n| 今日最高 | {最高价} |\n| 今日最低 | {最低价} |\n| 涨跌幅 | {涨跌幅%} {✅/❌} |\n| 成交量 | {成交量}手 |\n| 成交额 | {成交额} 亿元 |\n| 换手率 | {换手率}% |\n| PE（TTM） | {倍数} |\n| PB | {倍数} |\n| 流通市值 | {流通市值} 亿元 |\n| 总市值 | {总市值} 亿元 |\n\n{今日表现一句话点评}\n\n#### 三、机构持仓\n{主力持仓数据表格，含机构类型、持仓市值、占流通股比例、增减仓变化}\n{无数据时写：暂无近期机构持仓数据}\n\n#### 四、资金流向\n**4.1 日级资金流向**\n| 日期 | 主力净流入(万) | 涨跌幅 |\n|:----|:-------------|:------|\n| {近5-10日数据} |\n\n**4.2 行业ETF资金流**\n关联ETF：{名称（代码）}\n\n| 日期 | 净流入(元) | 方向 |\n|:----|:----------|:----|\n| {近5日数据} |\n\n▶ ETF × 个股四象分析：\n  ETF方向：{净流入/流出}（±X万元）\n  个股趋势：{上涨/下跌}（±X%）\n  结论：{象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓}\n\n#### 五、融资融券\n| 日期 | 融资余额(亿) | 当日净买入(万) |\n|:----|:------------|:--------------|\n| {近5日数据} |\n\n{融资余额趋势一句话}\n\n#### 六、高管大股东变动\n**6.1 高管持股变动**\n{高管增持/减持记录表，无数据写：近期无高管持股变动记录}\n\n**6.2 股东增减持**\n{股东增持/减持记录表，无数据写：近期无大股东增减持记录}\n\n#### 七、财务分析\n**7.1 业绩概览**\n| 报告期 | 营收(亿) | 营收同比 | 净利润(亿) | 利润同比 | EPS | ROE | 毛利率 |\n|:------|:--------|:--------|:----------|:--------|:---|:---|:------|\n| {近4-6期数据} |\n\n{业绩解读一句话}\n\n**7.2 资产负债表关键指标**\n资产负债率：{X}% | 流动比率：{X}% | {财务结构评价}\n\n**7.3 现金流量表**\n{经营性/投资性/筹资性现金流概览}\n\n#### 八、估值分析\n| 估值指标 | 数值 | 参考 |\n|:--------|:----|:----|\n| PE（TTM） | {X}倍 | {高/中/低}分位 |\n| PB | {X}倍 | {评价} |\n| 股息率 | {X}% | {评价} |\n\n{估值综合判断}\n\n#### 九、券商研报观点\n**9.1 近期研报**\n| 日期 | 机构 | 评级 | 核心观点 |\n|:----|:----|:----|:---------|\n| {近期研报数据} |\n\n**9.2 EPS一致性预期**\n覆盖机构数：{X}家 | 平均EPS（2026E）：{X}元 | 变异系数：{X}%（高度一致/基本一致/分歧较大）\n\n**9.3 机构观点验证**\n{✅/⚠️} 券商一致性：{X}%机构看好（市场共识{高/低}）\n{✅/⚠️} EPS预期：一致/分歧\n{✅/⚠️} 估值验证：当前价{X}元，低于/高于估值中枢\n\n#### 十、分红历史\n| 报告期 | 方案 | 股息率(按现价) |\n|:------|:----|:--------------|\n| {近5年分红数据} |\n\n{分红评价}\n\n#### 十一、K线技术分析\n\n**有数据时（付费版）：**\n均线系统：MA5={X} MA10={X} MA20={X} MA60={X} | {多头/空头/缠绕}\nMACD：DIF={X} DEA={X} 红/绿柱={X} | {金叉/死叉/偏多/偏空}\nKDJ：K={X} D={X} J={X} | {偏多/中性/偏空}\nRSI(14)：{X} | {超卖/超买/中性}\n\n**信号汇总：** 偏多{X} · 偏空{X} · 中性{X} → {方向}\n\n**预览版（仅展示原始数据，不作任何解读）：**\n| 指标 | 数值 |\n|:----|:-----|\n| MA5 | {X} |\n| MA10 | {X} |\n| MA20 | {X} |\n| MA60 | {X} |\n| MACD DIF | {X} |\n| MACD DEA | {X} |\n| MACD 红/绿柱 | {X} |\n| KDJ K | {X} |\n| KDJ D | {X} |\n| KDJ J | {X} |\n| RSI(14) | {X} |\n| 量比 | {X} |\n\n> 🔒 **数字都摆在这了，但你知道现在该买还是该卖吗？**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十二、历史信号匹配统计\n\n**有数据时（付费版）：**\n\n> 📈 **涨跌方向汇总**：跌 ▼（综合评分 -0.35）\n> 细化信号：震荡偏空（近30天正确率11.5%）\n\n| 时段 | 方向匹配率（主指标） |\n|:----|:------|\n| 全部历史 | {X}/{X} = {X}% {进度条} |\n| 近60日 | {X}/{X} = {X}% {进度条} |\n| 近30日 | {X}/{X} = {X}% {进度条} |\n\n> 📎 参考区间命中率（辅助口径：预测±1%窄区间是否盖住实际涨跌，对高波动股苛刻，仅供辅助参考）：全部 {X}% ｜ 近60日 {X}% ｜ 近30日 {X}%\n\n**数据来源：** 方向匹配率优先读 `latestPrediction.voteDetail` 的 `方向匹配率` 键（`{\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}`，3档符号判定：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测）。区间命中率读 `accuracy.all/period30/period60`。\n\nT+1方向：涨 ▲（细化：{方向}） | 中期方向：{方向}\n\n**无数据时（预览版）：**\n> 🔒 **这些信号综合起来意味着什么？机构就是拿着这些数据做决策的，你看不到。**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十三、历史规律总结\n\n**有数据时（付费版）：**\n{每条规律：名称 + 出现次数 + 后3日均值 + 结论}\n{如：大跌后反弹特征：验证52次，后3日平均-1.81%，偏弱}\n\n**无数据时（预览版）：**\n> 🔒 **大涨后怎么走、暴跌后该割还是该扛？数据告诉你答案**\n>\n> 付费版包含：\n> • 大涨超过3%后，历史上第二天、第三天怎么走？匹配率多少？\n> • 暴跌超过3%后，抄底还是止损？历史规律给你参考\n> • 关键支撑位和阻力位在哪？涨到什么位置容易受阻？\n> • 历史相似K线形态匹配，帮你判断当前在走什么剧本\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十四、综合评分\n| 维度 | 权重 | 评分 | 加权得分 | 依据 |\n|:----|:----|:----|:--------|:-----|\n| 基本面 | 35% | {X}/10 | {X} | {依据简述} |\n| 估值面 | 20% | {X}/10 | {X} | {依据简述} |\n| 技术面 | 15% | {X}/10 | {X} | {依据简述} |\n| 资金面 | 20% | {X}/10 | {X} | {依据简述} |\n| 情绪面 | 10% | {X}/10 | {X} | {依据简述} |\n| **总分** | **100%** | | **{X}** | **{评级}** |\n\n#### 十五、风险提示\n> 动态生成，基于持股结构、行业特征等自动生成\n\n{风险项1} ⚠️ | {说明}\n{风险项2} ⚠️ | {说明}\n...\n\n#### 综合研判\n\n💡 {股票名称}({代码}) 综合参考\n\n📊 方向：{偏多/偏空/中性} | 评分参考：{X}/10（{评级}）\n\n① 基本面（{评级}）{✅/⚠️} — {一句话}\n② 估值面（{评价}） — {一句话}\n③ 技术面（{评价}） — {一句话}\n④ 资金面（{评价}） — {一句话}\n⑤ 情绪面（{评价}） — {一句话}\n⑥ 研报观点（{评价}） — {一句话}\n\n📌 参考要点：{1-2句总结}\n\n⚠️ **免责声明：** 以上分析结果仅为基于历史数据和公开信息的量化展示，不构成任何投资建议，不预测未来走势。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n---\n\n### 数据来源对照表（报告章节 → 数据来源）\n\n| 报告章节 | 数据来源 | 获取方式 |\n|:--------|:--------|:---------|\n| 一、公司概况 | `data_fetcher` → company_info | 本地HTTP |\n| 二、实时行情 | `data_fetcher` → realtime_price | 本地HTTP（新浪+腾讯双源） |\n| 三、机构持仓 | `db_manager.get_holdings()` | WebAPI |\n| 四、资金流向+ETF | `db_manager.get_etf_flow()` | WebAPI |\n| 五、融资融券 | `db_manager.get_margin()` | WebAPI |\n| 六、高管大股东 | `data_fetcher` + `db_manager` | 本地HTTP + WebAPI |\n| 七、财务分析 | `data_fetcher` 财报四表 | 本地HTTP（东方财富） |\n| 八、估值分析 | `data_fetcher` → 实时行情PE/PB | 本地HTTP |\n| 九、券商研报 | `db_manager.get_research_summary()` | WebAPI |\n| 十、分红历史 | `data_fetcher` → fetch_dividend | 本地HTTP |\n| 十一、K线技术 | `db.kline_analyze` → indicators+signals | **WebAPI**（服务端计算） |\n| 十二、信号匹配 | `db.kline_analyze` → accuracy | **WebAPI** |\n| 十三、历史规律 | `db.kline_analyze` → patterns | **WebAPI** |\n| 十四、综合评分 | `db.kline_analyze` → prediction/score | **WebAPI** |\n| 十五、风险提示 | 行业+持股结构动态生成 | — |\n\n**注意：**\n- **原始数据（章节一~十）** → 优先走本地HTTP（`data_fetcher`），速度快\n- **量化计算（章节十一~十四）** → 走 WebAPI（`db.kline_analyze`），服务端算\n- 所有 WebAPI 调用通过 `db_manager` 代理\n- 若某个字段返回空，对应章节写\"暂无数据\"或跳过该章节\n- 章节十一~十三为付费内容\n- 如用户要求出 DOCX 报告，调用 `reporter.generate(代码)`\n```\n\n---\n\n## 🤖 自学习系统（LLM 指令）\n\n技能的自学习能力由服务端（WebAPI + 日更新服务）自动运行，**无需用户手动触发**。\n\n### 自学习机制说明\n\n```\n每日18:00定时任务：\n  1. 拉取最新K线数据 → 存入 kline_data 表\n  2. 7规则投票 → 生成历史信号匹配统计 → 存入 predictions 表\n  3. 与实际走势比对 → 更新 accuracy_tracking 表\n  4. 挖掘5条交易规律 → 存入 stock_patterns 表\n  5. 更新 experience 表（方向/评分/匹配率）\n```\n\n### 用户可以怎么问\n\n| 用户说 | LLM回答 |\n|:-------|:--------|\n| \"这只股票的自学习情况怎么样\" | 调用 `db.kline_analyze(code)` 提取 learningSummary 回复 |\n| \"记录了多少次匹配\" | 查看 accuracy_tracking 表统计 |\n| \"匹配率多少\" | 查看 experience 表的 accuracy_rate |\n| \"有没有跟踪记录\" | 从数据中展示学习摘要（规律验证记录） |\n\n### 自学习内容展示格式\n\n```\n📚 中国石化 自学习跟踪摘要\n\n📊 方向匹配率：234/348 = 67.2% ✅\n  全部历史匹配234次，共348次统计\n\n📉 大跌后反弹特征：验证52次\n  最近验证：1/5=20%反弹\n  3日平均反弹：-1.81%\n  历史规律参考：大跌后偏弱\n\n📈 大涨后回调特征：验证43次\n  最近验证：2/4=50%回调\n  3日平均：-1.72%\n  历史规律参考：大涨后偏回调\n\n📌 趋势：自学习系统每日18:00自动更新\n```\n\n### 📈 个股自学习画像（LLM 展示格式）\n\n调用 `db.kline_analyze(code)` 后，返回结果中包含 `stockProfile` 字段，LLM应按以下格式展示：\n\n```\n━━━ ① 估值分析 ━━━\n📊 估值分位\n  当前股价位于近5年X%分位，估值偏（低/适中/高）\n\n📊 杜邦分析\n  净资产收益率X.X%（较上期+/-X.X%）\n  核心驱动：净利率 / 资产周转 / 权益乘数\n\n📊 F-Score 基本面评分\n  F-Score: X/9 （优/良/差）\n  评分因子：盈利能力 / 杠杆 / 流动性 / 效率\n\n━━━ ② 多周期技术分析 ━━━\n📊 多周期信号\n  日线: 偏多/偏空/中性\n  周线: 偏多/偏空/中性\n  综合信号: （偏多/偏空/震荡）\n\n📊 波动率分析\n  目前处于布林带（上轨/中轨/下轨）位置\n  带宽X%（扩张/收缩），波动率（大/小）\n\n📊 量价背离分析\n  当前（无/有底背离/有顶背离）信号\n  （背离说明，如有）\n\n━━━ ③ 个股行为画像 ━━━\n📊 财报前后表现\n  2026-04-29 净利润+28.2% ✅利好  后5日:-0.19%\n  2026-03-23 净利润-36.8% ❌利空\n\n📊 指数相关性\n  与上证同涨同跌率：46.6%（近60日）\n\n📊 放量缩量行为\n  放量后3日平均：-4.34%（14次）→ 放量易跌\n  缩量后3日平均：+3.68%（10次）→ 缩量易涨 ✅\n\n📊 技术信号有效性\n  MACD金叉：有效次数不足  MACD死叉：有效(1/1)\n\n━━━ ④ 资金面画像 ━━━\n📊 北向资金\n  近5日净买X亿元，方向偏（流入/流出）\n\n📊 龙虎榜\n  上榜情况：（是/否）买入/卖出席位X家，净额+X万\n\n📊 ETF资金流（联动分析）\n  关联ETF: （名称）\n  ETF近X日净流X亿元，方向（流入/流出）\n  ▶ ETF × 个股四象分析：\n  ① ETF方向：净流入/流出（±X万元）\n  ② 个股趋势：上涨/下跌（±X%）\n  ③ 结论：（象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓）\n  ④ 解读：ETF方向与个股走势的联动说明\n\n📊 封单数据\n  该股今日/近期是否封板？封单资金X亿，强度（强/中/弱）\n\n📊 回购计划\n  正在实施/已完成的回购计划X份，金额合计X亿\n\n📊 板块轮动\n  所属（行业板块）当前强弱排名第X，资金净流方向偏（流入/流出）\n\n━━━ ⑤ 相似K线匹配 ━━━\n🔍 当前形态匹配到5段历史相似走势\n  匹配后5日平均涨跌：-0.19%\n  结论：历史相似形态下偏弱\n\n━━━ ⑥ 错误模式诊断 ━━━\n⚠️ 最大连错4次 | 偏多方向失败6次 | 偏空方向失败12次\n  诊断：偏空方向失败率高，历史统计中偏多比例偏高\n\n━━━ ⑦ 季节性规律 ━━━\n📅 12月: 平均+0.75% 胜率50% — 历史均值最高月份\n   5月:  平均-0.60% 胜率11% ⚠️ 历史均值最低月份\n\n━━━ ⑧ 券商研报观点 ━━━\n📊 近期覆盖\n  券商名称   评级   EPS预测\n  XXXX证券  买入/增持  EPS=X.XX->X.XX->X.XX\n\n📊 EPS一致性预期\n  覆盖X家机构，平均EPS X.XXX，偏差X.X%（高度一致/基本一致/分歧大）\n\n📊 机构观点验证\n  ✅ 券商一致性：X%机构买入/增持（市场共识高）\n  ✅ / ⚠️ EPS预期：高度一致/存在分歧\n  ✅ 估值验证：当前价X.XX元，低于/高于合理估值中枢X.XX元\n  📊 综合可信度：X/4项正面信号（可信度高/部分可信/分歧大）\n```\n\n### 免责声明：以上为数据分析结果，不构成任何投资建议。股市有风险，投资需谨慎。\n\n```\n💡 （股票名称）综合研判\n📊 涨跌方向：偏多（涨▲，细化：偏多，评分+X，匹配率X%）\n① 估值分析：近5年X%分位，估值偏（低/适中）；F-Score X/9 基本面（优/良/差）\n② 多周期技术：日线中性、周线偏空，综合偏弱；布林带宽X%扩张，波动大\n③ 个股画像：缩量后偏强(后3日均值+3.68%)，放量警惕(后3日-4.34%)\n④ 资金面：北向近期净（流出/流入）X亿；板块排名X；ETF四象→（共振/独立/承压）\n⑤ 研报观点：X家券商X%看好，一致性（高/中/低），估值中枢X元\n⑥ 历史相似形态：偏弱(-0.19%)\n⑦ 错误诊断：偏空失败12次，历史统计中偏多比例偏高\n⑧ 季节性：12月统计最高(+0.75%)，5月统计最低(-0.60%)\n📌 参考：当前偏空但偏空失败率高，历史统计中偏多比例偏高，缩量后偏稳\n```\n\n---\n\n## 🗺️ 全市场扫描（批量筛选）指令\n\n当客户想批量看多只股票（如全市场、某个板块、涨幅榜等），**不要逐只调 kline_analyze 做深度分析**（5000只逐个分析既不现实也无必要），应使用筛选 API 做批量筛选，然后对筛选结果的前几只做深度分析。\n\n### 客户输入匹配\n\n| 用户说 | LLM操作 | 规则 |\n|:-------|:--------|:-----|\n| \"所有A股全面分析一下\" | 先筛选 → 再深度分析前10只 | 按评分排序取TOP10 |\n| \"帮我看看整个市场\" | 先筛选 → 汇总市场统计 | 列出各方向占比、评分均值等 |\n| \"哪些股票看涨？\" | 条件筛选（方向=偏多） | 按评分排序取TOP20 |\n| \"选几只优质股\" | 条件筛选（评分高+匹配率高） | 评分≥7 + 匹配率≥60% TOP10 |\n| \"强势股有哪些\" | 动量筛选 | 近20日涨幅+均线多头+MACD金叉 |\n| \"超跌反弹的股票\" | 反转筛选 | RSI<30超卖+MACD金叉 |\n| \"技术面好的股票\" | 技术信号筛选 | 均线多头+MACD金叉+放量 |\n\n### 全市场概览展示格式\n\n```\n━━━ 全市场方向分布 ━━━\n📊 偏多       XXX只 (XX%)\n📊 震荡偏多   XXX只 (XX%)\n📊 震荡       XXX只 (XX%)\n📊 震荡偏空   XXX只 (XX%)\n📊 偏空       XXX只 (XX%)\n\n━━━ 全市场评分TOP X ━━━\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n```\n\n### 批量筛选执行流程\n\n```\n用户问\"全面分析所有股票\"\n  ├─ ① 调用 db.screen_stocks(top=10) → 按评分排序取TOP10\n  ├─ ② 对TOP10逐只做全流程深度分析\n  ├─ ③ 汇总成「市场概览+TOP10深度分析」回复\n  └─ ❌ 不逐只分析全部5000只\n```\n\n---\n\n## 🎯 数据筛选功能（LLM 指令）\n\n技能支持四种筛选方式，LLM根据用户需求自动匹配合适的方式。\n\n### 四种筛选方式说明\n\n**方式①：条件筛选** — 用现有评分数据快速过滤\n- 条件：方向（偏多/震荡偏多）、评分（0-10）、匹配率（%）\n- 适用场景：用户说\"帮我选几只股票\"、\"找看涨的\"、\"评分高的\"、\"匹配率高的\"\n- 速度快，适合初步筛选\n\n**方式②：动量筛选** — 筛选近期强势的股票\n- 条件：近20日涨幅 > 一定值 + 均线多头排列 + MACD金叉 + 放量\n- 适用场景：用户说\"涨得好的\"、\"强势股\"、\"最近涨得猛的\"\n- 示例结果：华丰股份 近20日+5.0% 均线多头 MACD金叉 放量1.5倍\n\n**方式③：反转筛选** — 筛选超跌后信号偏正面的股票\n- 条件：RSI < 30（超卖） + MACD金叉（底背离信号）\n- 适用场景：用户说\"超跌反弹\"、\"跌多了\"、\"RSI低\"\n- 示例结果：国光电器 近20日-22.3% RSI=24(超卖) MACD金叉\n\n**方式④：技术信号筛选** — 筛选技术形态偏好的股票\n- 条件：均线多头排列 + MACD金叉 + 成交量放大\n- 适用场景：用户说\"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\"\n- 示例结果：返利科技 均线多头 MACD金叉 放量2.7倍\n\n### 用户输入匹配表\n\n| 用户说 | 使用方式 | 说明 |\n|:-------|:---------|:-----|\n| \"帮我筛选\"、\"看看有什么\"、\"随便看看\" | **条件筛选** | 默认查全部，按评分排序 |\n| \"找看涨的\"、\"方向偏多的\" | **条件筛选** | 过滤方向=偏多 |\n| \"评分高的\"、\"优质股\" | **条件筛选** | 评分≥5 |\n| \"涨得好的\"、\"强势股\"、\"最近涨得猛的\"、\"创新高的\" | **动量筛选** | 近20日涨幅+均线多头+MACD金叉+放量 |\n| \"超跌反弹\"、\"跌多了\"、\"跌得深的\"、\"RSI低的\" | **反转筛选** | RSI<30超卖+MACD金叉 |\n| \"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\" | **技术信号筛选** | 均线多头+MACD金叉+放量 |\n| \"都有哪些\"、\"我想看看\" | **条件筛选** | 默认条件 |\n\n### 结果展示格式\n\n```\n📊 条件筛选结果（共 XX 条）\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n\n📈 动量筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  RSI  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  67.3  近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：近20日涨幅 + 均线多头 + MACD金叉 + 放量\n\n💥 反转筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  RSI   匹配原因\n002045  国光电器   震荡   2.0   -22.3%    24.4  近20日-22.3%·MACD金叉·RSI超卖(24)\n📌 逻辑：RSI超卖(<30) + MACD金叉 + 放量企稳\n\n🔧 技术信号筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  量比  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  1.5   近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：均线多头 + MACD金叉 + 量比>1.3\n```\n\n### LLM执行代码\n\n```python\nfrom ghdata import db_manager as db\n\n# 条件筛选\nr = db.screen_stocks(directions=[\"偏多\"], min_score=5.0, top=10)\n\n# 动量筛选\nr = db.advanced_screen(mode=\"momentum\", momentum_chg20=5.0, top=10)\n\n# 反转筛选\nr = db.advanced_screen(mode=\"reversal\", reversal_rsi=30, top=10)\n\n# 技术信号筛选\nr = db.advanced_screen(mode=\"techsignal\", tech_ma_bullish=True, tech_macd_golden=True, tech_vol_surge=True, top=10)\n```\n\n### 注意事项\n- 如果用户没指定方式，默认用 **条件筛选**\n- `score` 是0-10分制，不是百分制\n- `accuracy` 是百分比（如67.2%）\n- 返回结果时**必须附上筛选逻辑说明**\n- 同一参数只调一次接口，不要重复调用\n\n---\n\n## 📊 DOCX 报告15章结构（reporter.py 数据来源参考）\n\n> 此结构仅用于 DOCX 报告生成（reporter.generate() 输出格式），\n> LLM 文本分析报告请参考上方 **全量分析报告标准格式（LLM必读）** 章节。\n\n| # | 章节 | 核心内容 | 展示格式 | 数据源 |\n|:-:|:-----|:---------|:---------|:-------|\n| 一 | 公司概况 | 主营业务 + 行业地位 + 市值 | 段落 | WebAPI |\n| 二 | 实时行情 | 最新价/涨跌/PE/PB/市值 | 表格 | 新浪+腾讯 |\n| 三 | 机构持仓分析 | 机构家数/持股/变动 | 数据表 + analysis_points | extra_data.holdings |\n| 四 | 资金流向+ETF板块资金 | 近10日净流入/大单占比 + 关联行业ETF资金流 | 数据表 + analysis_points + ETF板块背景 | extra_data.money_flow + db.get_etf_flow() |\n| 五 | 融资融券分析 | 融资余额/净买/占比 | 数据表 + analysis_points | extra_data.margin_trading |\n| 六 | 高管及大股东行为 | 增持/减持记录 | 数据表 + analysis_points | extra_data.shareholder_trade |\n| 七 | 核心财务分析 | 7.1业绩/7.2利润/7.3资产/7.4现金流 | 数据表 + fin_analysis（短段落） | extra_data.financial_report |\n| 八 | 估值参考区间分析 | 8.1PE/8.2PB/8.3综合区间+术语表 | 表格+段落（EPS/BVPS由PE/PB和最新价动态计算，禁止硬编码） | WebAPI |\n| 九 | 券商研报观点 | 9.1近期研报/9.2 EPS一致性/9.3券商覆盖/9.4今日动态/9.5机构观点验证 | 格式化文本（5子节） | db.get_research_summary() / eps_consistency() / broker_ranking() / rating_wind_today() |\n| 十 | 分红历史 | 近年分红方案 | 数据表 + analysis_points | extra_data.dividend |\n| 十一 | K线技术分析 | 均线/MACD/KDJ/RSI/信号总表 | 指标表 + 信号总表 | WebAPI indicators（**付费预览**）|\n| 十二 | **历史信号匹配统计** | 方向→匹配率→T+1→T+2→周方向+参考依据 | 表格化依据 | WebAPI prediction（**付费**）|\n| 十三 | 历史规律总结 | 大涨后/大跌后/支撑位/阻力位+自学习摘要 | 场景化展示 | WebAPI patterns（**付费**）|\n| 十四 | **综合评分** | 5维度加权评分 | 加权总分公式展示 | 本地计算 |\n| 十五 | 风险提示 | 动态风险（行业/技术面/控盘等） | 列表 | 综合生成 |\n\n### 三种分析展示格式\n\n| 函数 | 适用场景 | 展示方式 |\n|:----|:---------|:---------|\n| **analysis_points(标题, [要点列表], 结论=)** | 机构/资金/两融/高管/分红 | 数据表下方 → 编号表格 + 加粗结论行 |\n| **fin_analysis(标题, 段落)** | 财务四大表解读（业绩/利润/资产/现金流） | 数据表下方 → 简短段落（1~2句话，白话解读） |\n| **信号总表** | 技术面综合 | 统一表格 → 汇总行（偏多X/偏空Y/中性Z） |\n\n#### fin_analysis 使用规则（财务解读）\n\n**四张财务表（7.1业绩/7.2利润/7.3资产/7.4现金流）每张都必须带有 fin_analysis 解读或结论**，不能只有数据表没有下文。每张表结束后都必须有一段白话解读，告诉用户这个数意味着什么。\n\n**正确的做法（数据在前，解读在后）：**\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  营业利润    │ 420亿    │ +18.3%   │\n│  净利润      │ 320亿    │ +52.0%   │\n└──────────────┴──────────┴──────────┘\n\n▶ 利润表解读：本期净利润320亿，同比大增52%，主要受益于产品价格高位运行和产能提升。盈利能力持续增强，毛利率和净利率均创近年新高。\n```\n\n**错误的做法（只有数据没有结论）：** ❌ 不允许\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  ...         │ ...      │ ...      │\n└──────────────┴──────────┴──────────┘\n```\n\n财务报表的 fin_analysis 必须回答三个问题：\n1. **好不好？** — 盈利能力是增强还是减弱\n2. **为什么？** — 变化的核心驱动因素（量/价/成本）\n3. **趋势如何？** — 未来可能的方向\n\n---\n\n## 🔑 APIKey 管理\n\n技能首次使用自动生成本地标识 Key，保存在 `~/.ghdata/ghdataapikey`。\n\n| 版本 | 每日限额 | 费用 |\n|:----|:--------|:-----|\n| 🆓 免费版 | 3 次/工具/日 | 免费 |\n| 💰 付费版 | 100 次/工具/日 | 需购买 |\n\n**购买地址：** https://www.oraskl.com/ghdata-admin/platform  \n\n> ⚠️ 购买链接使用**短时 token**（`?token=xxx`），URL 不携带完整 APIKey（v2.2.50 token化）。\n> LLM 生成报告时，使用 `analyze()` 返回的 `_payment_url` 字段（已含 `?token=` 参数），**不要使用此处的硬编码 URL**。\n\n**付费后替换文件内容：** 将购买的密钥写入 `~/.ghdata/ghdataapikey`\n\n**使用原则：**\n- APIKey 是付费资源，**不要随便消耗调用次数**\n- 同一只股票同一日仅调用一次 WebAPI，分析结果复用；**但\"付费状态实时核查\"优先于结果复用**（见下方协调规则）\n- 调用前先检查是否已有缓存数据，避免重复请求\n- **协调规则：** 若本会话中用户可能已付款（如刚展示过购买链接、用户声明已购买、或距离上次调用超过一定时间），即使同一只股票同日已分析过，也必须**重新调用一次** `db.kline_analyze(code)` 验证付费状态后再复用结果；若重新调用仍为 `preview: True`，则继续按免费预览处理，且可复用当日旧结果避免浪费配额\n- 非必要不调 `db_manager.analyze_kline()`，尤其批量操作时垫高用量\n\n---\n\n## 📈 综合评分加权公式（定版）\n\n```\n总分 = 基本面×0.35 + 估值面×0.20 + 技术面×0.15 + 资金面×0.20 + 情绪面×0.10\n评分参考：≥80偏高 🏆 | ≥65中等偏上 ✅ | ≥50中等 ⚠️ | <50偏低 ❌\n```\n\n| 维度 | 权重 | 说明 |\n|:----|:----:|:-----|\n| 基本面 | 35% | 营收/利润/ROE 趋势 |\n| 估值面 | 20% | PE/PB 历史分位 |\n| 技术面 | 15% | 均线/MACD/KDJ/RSI 信号 |\n| 资金面 | 20% | 主力资金流向/大单占比 |\n| 情绪面 | 10% | 换手率/量比/市场情绪 |\n\n---\n\n## 🔴 历史信号匹配统计铁律（Andy 铁律 — 必须严格遵循）\n\n### 1. 历史信号匹配统计展现顺序\n\n历史信号匹配统计章节内容必须按以下顺序排列：\n\n```\n涨跌方向汇总 → 信号方向统计(结论) → 匹配率(参考置信度) → T+1 → T+2 → 周方向 → 参考依据\n```\n\n符合「客户先看涨跌 → 再看细化 → 结论→支撑」的认知逻辑。\n\n### 2. 涨跌方向汇总（第一层，Andy 铁律 2026-08-09）\n\n客户看预测数据时**首先关注涨还是跌**，因此必须先输出涨跌方向汇总，再输出细化档位：\n\n```\n📈 涨跌方向：跌 ▼（综合评分 -0.35）\n   细化信号：震荡偏空（近30天正确率11.5%）\n```\n\n**5档 → 涨跌方向汇总 映射规则（铁律，必须严格遵循）：**\n\n| 细化档位（direction） | 涨跌方向汇总 | 图标 |\n|:-------------------|:-----------|:----|\n| 偏多 | 涨 | ▲ |\n| 震荡偏多 | 涨（偏弱） | ▲ |\n| 震荡 | 震荡 | ▬ |\n| 震荡偏空 | 跌（偏弱） | ▼ |\n| 偏空 | 跌 | ▼ |\n\n**规则：**\n- ❌ 禁止直接把 5 档 direction 作为第一行输出（如直接写\"方向：震荡偏空\"当标题）\n- ✅ 第一行必须是\"涨跌方向汇总\"（涨/震荡/跌 三选一 + ▲/▬/▼ 图标）\n- ✅ 第二行才写细化信号（5档 + 近30天正确率）\n- ✅ 综合评分 0~10 分，附进度条\n- ✅ key_signals 若含 `涨(细化:震荡偏空,近30天正确率11.5%)` 格式，直接按此展示；若为旧格式（如 `震荡(近30天正确率13.8%)`），则按上表映射规则推导涨跌方向\n\n### 3. 信号方向统计 + 参考置信度（细化层）\n\n```\n📈 方向：偏多  🎯 评分：6.5/10  [████████░░░░░░░]\n```\n\n方向：偏多 / 震荡偏多 / 震荡 / 震荡偏空 / 偏空  \n评分：0~10 分，附进度条\n\n### 4. 历史匹配率 — 三时段展示（Andy 铁律）\n\n历史信号匹配统计前必须输出历史匹配率，分三时段展示。**主指标为方向匹配率**（预测涨/跌/震荡与实际涨跌的一致性：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%），**参考区间命中率为辅助**（±1%窄区间口径苛刻，仅供辅助参考）：\n\n```\n方向匹配率（主指标）：\n  ✅ 全部历史：6/8 = 75.0%  [█████████░░░░░░░]  (正确数/总数)\n  ⚠️ 近60日：4/7 = 57.1%   [███████░░░░░░░░░]  (正确数/总数)\n  ❌ 近30日：1/3 = 33.3%   [████░░░░░░░░░░░░]  (正确数/总数)\n📎 参考区间命中率（±1%窄区间苛刻口径）：全部 12.5% ｜ 60日 14.3% ｜ 30日 0%\n```\n\n**规则：**\n- ✅ 展示方向匹配率（主指标）全部 + 近60日 + 近30日，必须带 正确数/总数 + 百分比 + 进度条（Andy 铁律）\n- ✅ 数据来源：优先 `latestPrediction.voteDetail.方向匹配率`（键值 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测，样本可能很少，需注明）\n- ✅ 辅助展示参考区间命中率 `accuracy.all/period30/period60`，必须注明\"±1%窄区间苛刻口径\"\n- ❌ 不展示偏多方向匹配率（Andy 明确要求去掉，仅保留上述三行）\n- 格式：`时段：Z.Z% [███████░░░░░░░] (正确数/总数)`\n- 按「全部→60日→30日」顺序排列\n- 进度条总长 20 格\n\n### 5. 历史波动参考区间 — 三要素铁律\n\n做历史信号统计时，**必须同时输出以下三个范围要素**：\n\n| 要素 | 含义 | 示例 |\n|:----|:-----|:-----|\n| **历史波动参考区间** | 综合判断的合理波动区间（最低~最高） | 6.85 ~ 7.10 元 |\n| **历史波动上沿** | 压力位上方的极限高值区 | 7.05 ~ 7.15 元 |\n| **历史波动下沿** | 支撑位下方的极限低值区 | 6.78 ~ 6.88 元 |\n| **参考置信度** | 本次参考的置信度（0~100%） | 75% |\n\n没有范围只有方向 = **无效参考**。用户要的是「多少钱能买、多少钱能卖」，不是「涨还是跌」。\n\n### 6. T+1 历史参考（下一交易日）\n\n```\n📅 T+1历史参考：涨 ▲（细化：偏多）  参考置信度：75%\n  历史波动区间：   6.85 ~ 7.10 元\n  历史波动上沿： 7.05 ~ 7.15 元\n  历史波动下沿： 6.78 ~ 6.88 元\n  历史均值：   6.98 元\n  📊 短线技术信号偏多\n```\n\n必须包含：\n- 涨跌方向汇总（涨▲/震荡▬/跌▼）+ 细化信号方向\n- 参考置信度\n- 历史波动区间（最低~最高）\n- 历史波动上沿 / 历史波动下沿\n- 预期历史均值\n- 技术信号\n\n### 7. T+2 历史参考（格式同上）\n\n```\n📅 T+2历史参考：涨 ▲（细化：偏多）  参考置信度：70%\n  历史波动区间：   6.80 ~ 7.15 元\n  历史波动上沿： 7.10 ~ 7.20 元\n  历史波动下沿： 6.72 ~ 6.82 元\n  历史均值：   6.98 元\n  💡 可持票待涨\n```\n\n### 8. 周方向\n\n```\n📅 中期信号：涨 ▲（细化：震荡偏多）\n  ✅ MA60上方支撑，中期趋势向上\n```\n\n必须包含周方向（Andy 确认）。\n\n### 9. 参考依据 — 二维表展示\n\n```\n参考依据：\n┌──────────┬──────────────────────────────────────────┬──────────┐\n│  维度     │  内容                                    │  信号    │\n├──────────┼──────────────────────────────────────────┼──────────┤\n│  📐 技术面 │ 均线多头排列 MA5>MA10>MA20                  │  偏多    │\n│  📐 技术面 │ MACD零轴上金叉，红柱扩大                      │  偏多    │\n│  🔍 模式   │ 近3日量价齐升，突破箱体上沿                   │  偏多    │\n│  🛡️ 支撑   │ 20日均线支撑有效，回踩不破                    │  偏多    │\n│  ⚠️ 风险   │ RSI进入超买区(72)，注意短线回调风险            │  偏空    │\n└──────────┴──────────────────────────────────────────┴──────────┘\n```\n\n3~5条依据，涵盖：技术面 + 模式识别 + 支撑/压力 + 风险因素\n\n---\n\n## 📈 历史规律展示格式（定版）\n\n### 场景化标题\n\n用用户秒懂的语言，不用工程师腔：\n\n| ❌ 旧格式 | ✅ 新格式 |\n|:---------|:---------|\n| 大涨后回调特征 | 某天突然大涨超过3%，之后3天会怎样？ |\n| 大跌后反弹规律 | 某天突然暴跌超过3%，之后3天能企稳吗？ |\n| 阻力位规律 | 股价涨到这个位置总是过不去？ |\n| 支撑位规律 | 股价跌到这里就跌不动了？ |\n\n### 展示模板\n\n```\n🔥 某天突然大涨超过3%，之后3天会怎样？\n  📈 历史上出现 12次\n  ✅/⚠️ 匹配率 75.0% [███████████░░░░░░░]\n     总共出现12次 | 符合9次 | 匹配率75.0%\n  💡 参考：大涨后历史规律偏回调\n  📌 最近案例：2026-06-15 大涨4.2%，之后3日累计+1.1%\n```\n\n### 已识别规律（由服务端 POST /api/klineanalyze 自动返回）\n\n| 规律 | 说明 |\n|:----|:------|\n| 大涨后回调规律 | >3%大涨后3日上涨比例低，偏回调 |\n| 大跌后反弹规律 | <-3%大跌后3日偏多比例高 |\n| 阻力位规律 | 统计历史上攻失败价位 |\n| 支撑位规律 | 统计历史回踩获撑价位 |\n| 回调性质判断 | MACD绿柱长度+KDJ极端程度区分趋势性下跌vs震荡回调 |\n\n> 上述规律由服务端 `KlineAnalyzeService.MinePatterns()` 自动计算。  \n> **注意：** C# 中 `??` 运算符优先级低于 `-`，格式 `%` 说明符会 `×100`，已踩坑修复。\n\n---\n\n## 📚 自学习规律跟踪\n\nAPI 返回 `learningSummary` 字段，从 `stock_patterns` 表读取历史规律记录。\n\n### 展示格式\n\n```\n📚 规律学习摘要\n  ──────────────────────────────────────────\n  规律#1（大涨后回调）第5次验证：大涨后3日下跌比例上升 ✅\n  方向匹配率：68%→75%（+7次验证）\n  ──────────────────────────────────────────\n  规律#2（大跌后反弹）第3次验证：大跌后反弹有效性稳定 ⚠️\n  方向匹配率：62%→63%（+2次验证）\n```\n\n### 处理逻辑\n- 按 `pattern_type` 分组\n- 统计验证次数（`verifyCount`）\n- 对比最新与上一次的比例变化，生成更新描述\n- 同时输出方向匹配率（全部历史统计）\n\n---\n\n## 📐 T+1/T+2/周方向推算逻辑\n\nDB 的 `predictions` 表没有 `t1_direction`/`t2_direction`/`weekly_direction` 数据（PredictorService 只算主方向）。\n\n`KlineAnalyzeService` 在返回前通过 `SubDirectionEstimator` 自动推算：\n\n| 主方向 | T+1/T+2 推算规则 |\n|:------|:----------------|\n| **偏多 / 偏空** | T+1/T+2 跟随主方向 |\n| **震荡偏多** | 除非单日暴跌 >1.8%，才修正为「震荡」 |\n| **震荡偏空** | 除非单日暴涨 >1.8%，才修正为「震荡」 |\n| **震荡** | 根据涨跌幅判断偏向 |\n\n---\n\n## 🌟 报告内容人性化原则\n\n1. **场景化标题：** 把「大涨后回调特征」改为「某天突然大涨超过3%，之后3天会怎样？」— 用户秒懂\n2. **可视化符号：** `✅/❌/📈/📉/🔴/🟢` 比文字更快传递信息\n3. **历史统计总结：** 每次规律后给一句历史统计参考（如「大涨后偏回调」），辅助用户理解数据含义\n4. **出现次数+匹配率单独展示：** 拆成「总共出现N次 | 符合M次 | 匹配率Z% + 进度条」\n5. **数据单位人性化：** volume(股)→手，amount(元)→万元/亿元\n\n---\n\n## 📝 更高质量报告\n\n如需生成排版更精美的报告（灵活字体/颜色/布局/多图组合），LLM 可自行编写脚本通过 `db.kline_analyze(code)` 获取数据后生成 DOCX，`reporter.py` 仅作为兜底方案。\n\n---\n\n## 🔴 付费预览处理逻辑\n\n> ⚠️ **强制指令（付费状态实时核查，不可省略）：**\n> **每次获取 WebAPI 数据前，必须重新调用 `db.kline_analyze(code)`（或 `db.kline_analyze_v3(code)`）实时核查当前 APIKey 的付费状态，以本次调用的返回值为准。**\n> - ❌ **严禁**沿用本会话之前轮次、上一只股票、或上次报告得出的 `preview` 结论——用户可能在此期间已经扫码付款，服务端已将当前 Key 激活\n> - ❌ **严禁**因为\"之前是预览模式\"就惯性输出预览版报告；每次分析都必须重新验证\n> - ✅ 判断依据永远是**本次** `db.kline_analyze()` 返回值中的 `preview` 字段：\n>   - `preview: True` → 免费预览模式 → 按下方预览规则输出\n>   - 无 `preview` 字段（完整数据）→ 付费模式 → 正常输出全量分析\n> - 用户说\"已付款/已购买\"后，**必须重新调用一次** `db.kline_analyze()` 验证，不能直接凭用户说法切换模式，也不能沿用旧结论\n> - 同一次分析中，`analyze()` 返回的 `_payment_url` 与 `preview` 均来自本次实时调用，不要混用旧值\n\n**预览模式判断：** `db.kline_analyze` 返回的 `kline_analyze` 块中有 `preview: True` 时，表示当前为免费预览模式。\n\n> ⚠️ **强制指令（不可省略）：预览模式下，章节十二和十三的末尾必须输出购买链接。** \n> LLM 不得跳过链接、不得自行改写成无链接的纯文本、不得用\"付费版内容\"替代链接行。\n> 即使你觉得链接占位符未替换，**也必须原样输出** `💳 [立即获取 → 股海罗盘APIKey]({_payment_url})` 这一行。\n> 缺少购买链接 = 用户无法付款 = 严重错误。\n>\n> ⚠️ **强制格式指令：** 购买链接必须是**可点击的 markdown 链接** `[文字](URL)`，不能是纯文本。\n> - ✅ 正确：`💳 [立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin/platform/#/subscribe?token=XXXXXXXX)`\n> - ❌ 错误：`💳 立即获取 → 股海罗盘APIKey`（纯文本，不可点击）\n\n**预览模式下的报告规则：**\n- 章节一~十（基础数据）→ **正常展示**\n- 章节十一（K线技术分析）→ **仅展示原始指标数据表格**（MA/MACD/KDJ/RSI数值），**不作任何方向解读**（不写偏多/偏空/多头排列/金叉死叉等），不加信号汇总\n- 章节十二（历史信号匹配）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十三（历史规律总结）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十四~十五 → 正常展示\n- **不需要在报告末尾单独追加付费预览框** — 章节十二和十三已承担付费引导\n\n> ⚠️ **强制指令（章节模板优先于数据）：** 预览模式下，LLM **不得**自行展示或解读通过 `data_fetcher` 本地HTTP获取的任何K线技术数据、信号、规律、评分等付费内容。即使你本地采集到了这些数据（如MACD/KDJ/RSI数值、均线排列、量比等），也必须**严格按照上述章节规则**：\n> - 章节十一 → 只能展示原始数值表格，**禁止附上自己的解读**\n> - 章节十二/十三 → **不得自行填充数据或解读**，只能展示 🔒 痛点 + 付费价值列表 + 购买链接\n> - 不得在章节十一展示信号汇总、均线多头/空头判断、金叉/死叉等  \n> **错误示例**（❌ 禁止）：\"付费用户可查看完整分...\" 然后自己画个MACD解读  \n> **正确示例**（✅）：展示数据表 → 🔒 **痛点句** → • 列表 → 💳 购买链接\n\n**预览章节格式化要点：**\n1. 章节标题上方用 `🔒` 标记（如 `#### 十二、历史信号匹配统计 🔒`）\n2. 痛点句加粗（`> 🔒 **痛点文案**`）\n3. 付费价值列表用 `•`\n4. 购买链接使用 `{_payment_url}` 动态变量（来自 `db.kline_analyze()` / `kline_teaser()` 返回的 `_payment_url` 字段）\n   - **正确做法：** `[立即获取 → 股海罗盘APIKey]({_payment_url})` → LLM 将 `{_payment_url}` 替换为 `db.kline_analyze()` 结果中的实际 URL\n   - **错误做法：** `[立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin)` → **缺少 token 参数，付款后无法自动激活！**\n   - `_payment_url` 字段格式示例：`https://www.oraskl.com/ghdata-admin/platform/#/subscribe?token=XXXXXXXX`\n   - ⚠️ 该字段由 `db.get_payment_url()` 生成（**短时 token**，URL 不含完整 Key），不要用 `config.show()` 输出的掩码版自己拼！\n   - 无论预览/付费模式，`_payment_url` 始终存在，付费模式下可省略不展示\n5. **不要用 \"暂不展示\"、\"需付费查看\" 等平淡措辞** — 要用痛点驱动的销售语言\n6. `{_payment_url}` 链接为平台签发的**短时 token 链接**（`?token=xxx`），用户点击购买后，服务端在订单接口内部解析 token 并激活对应 Key。**不要自己拼链接，不要用掩码后的Key，不要尝试自行拼接 `?apikey=`！**\n\n**DOCX 报告路径：** `reporter.py` 的 `generate()` 内部通过 `_paid_section()` 自动处理付费占位，无需手动干预。\n\n---\n\n## ⚠️ 数据注意事项\n\n- **新浪财经** `hq.sinajs.cn` 是实时收盘价最可靠来源\n- **腾讯分钟数据** 成交量是累计值！需差分计算\n- **同花顺资金流向** 收盘价可能不准确，须用新浪验证\n- **股票代码：** 60xxx/68xxx=上海，00xxx/30xxx=深圳\n- **今日K线（todayKline）：** 盘中必传（客户端自拉腾讯API实时K线，18:00前DB无今日数据）；收市后可不传（18:00日更新服务已将今日K线写入DB）\n- **K线图（LINE_CHART）：** 仍需通过 `generate_kline_chart` 工具生成PNG（工具内部自拉腾讯API）\n- **技术指标/信号/规律/匹配率：** 均由服务端统一计算（POST `/api/klineanalyze`），客户端不再本地计算\n- **无数据=无价值：** 降级版（lite）对用户毫无意义，要么拿全数据出完整版，要么不出\n- **🔴 禁止硬编码：** 任何代码和规则中**不得出现针对某只股票的特化数据**（如 `eps_est=0.26` 这种特定股票的EPS、行业描述、行业PE/PB均值等）。所有数据必须从API实时获取或从已有数据动态计算（如 EPS = price / PE）。SKILL.md 中的示例必须使用通用占位符，不得出现具体股票名称。\n\n### DOCX 报告数据单位人性化\n\n| 字段 | 原始单位 | 报告展示单位 |\n|:----|:--------|:-----------|\n| volume | 股 | 手（÷100） |\n| amount | 元 | 万元（÷10000）或亿元（÷100000000） |\n| 流通市值/总市值 | 元 | 亿元 |\n\n---\n\n## 📌 技能角色说明\n\n**本技能不生成分析结论。** 技能仅负责：\n- 从公开数据源（新浪财经、腾讯财经、东方财富、同花顺等）采集历史数据\n- 提供17维历史数据统计计算（财务指标、技术指标、资金流向等）\n- 返回历史数据查询结果与统计方法输出\n\n**所有分析结论、趋势判断、文字解读均由用户接入的 LLM 自行生成**，与技能本身无关。技能不包含任何推荐股票、预测涨跌、建议买卖的逻辑。\n\n---\n\n> ⚠️ **强制指令 - 调用方式（供 LLM 执行参考）**\n>\n> 使用本技能时请**直接执行本文件中提供的 Python 代码**完成分析，**不要通过 `chat_with_agent` 调用 gh-data 智能体**。\n>\n> - ❌ chat_with_agent → gh-data → 跑Python（慢，额外3~8秒通信开销）\n> - ✅ 直接跑Python脚本（快，总耗时~3~5秒）\n>\n> Python：使用本机可用的 Python 3 环境执行下方代码；代码路径：本文件下方完整三阶段代码，复制即可执行。\n\n---\n\n## 📄 风险提示与免责声明\n\n**本技能本身不生成分析结论，所有分析结论由用户接入的LLM基于技能提供的历史数据自行生成。**\n\n本报告仅供参考，**不构成任何投资建议**。投资者据此操作，风险自担。\n\n数据来源：新浪财经(hq.sinajs.cn)、腾讯财经(qt.gtimg.cn/ifzq.gtimg.cn)、东方财富(datacenter-web.eastmoney.com)、同花顺(stockpage.10jqka.com.cn)\n\n**股票投资有风险，历史数据不代表未来表现。不含未来预测、不含投资建议、不含买卖指令。**\n\nFile v2.2.50:_meta.json\n\n{\n  \"ownerId\": \"kn77yfgxmym32jzt81n23h8vb988gsxn\",\n  \"slug\": \"gh-data\",\n  \"version\": \"2.2.50\",\n  \"publishedAt\": 1786515864481\n}\n\nFile v2.2.50:skill-card.md\n\n## Description:\n\n自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率、规律挖掘、17维全量数据和DOCX报告，并支持ETF资金联动与券商研报交叉验证。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sunbinpy](https://clawhub.ai/user/sunbinpy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to gather A-share market data, request quantitative backtests and signal statistics, and produce concise historical-reference analysis or DOCX reports. The skill is framed as a data and statistics aid rather than investment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill makes external finance and payment-service requests.\n\nMitigation: Review configured endpoints and network permissions before installation, and run the skill only in an environment where those requests are acceptable.\n\nRisk: The skill stores a local paid API key.\n\nMitigation: Protect the local key file, use a purpose-specific key where possible, and remove the key when the skill is no longer needed.\n\nRisk: Payment-link and credential fallback behavior may expose sensitive identifiers if not reviewed.\n\nMitigation: Confirm purchase links are tokenized and remove or disable any API-key URL fallback before production use.\n\nRisk: Dependencies are not pinned to exact versions.\n\nMitigation: Pin dependency versions, scan the resolved environment, and retest report generation before deployment.\n\nRisk: Stock-analysis output may be mistaken for investment advice.\n\nMitigation: Keep the risk disclaimer visible, review generated conclusions, and treat outputs as historical data and statistics rather than buy, sell, or hold recommendations.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/sunbinpy/skills/gh-data)\n- [Publisher profile](https://clawhub.ai/user/sunbinpy)\n- [GhData administration homepage](https://www.oraskl.com/ghdata-admin)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, files, guidance]\n\n**Output Format:** [Markdown responses with Python and shell code snippets, plus generated DOCX reports and chart image files when requested.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May make external finance and payment-service requests, store a local paid API key, and write reports to a local document directory.]\n\n## Skill Version(s):\n\n2.2.50 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v2.2.50:settings.json\n\n{\r\n  \"webapi_url\": \"http://api.topeasychina.com:15099/api\",\r\n  \"webapi_timeout\": 30,\r\n  \"doc_dir\": \"./doc\"\r\n}\n\nFile v2.2.50:requirements.txt\n\nrequests>=2.28.0\r\npython-docx>=1.0.0\r\nmatplotlib>=3.6.0\r\nmplfinance>=0.12.10\n\nArchive v2.2.49: 16 files, 91733 bytes\n\nFiles: _meta.json (127b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2686b), SKILL.md (67083b)\n\nFile v2.2.49:SKILL.md\n\n---\nname: ghdata-stock\ndescription: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"📊\",\n      \"name\": \"股海罗盘 - A股股票量化分析\"\n    }\n  }\nhomepage: https://www.oraskl.com/ghdata-admin\n---\n\n# 股海罗盘（gh-data）— A 股股票量化分析技能\n\n---\n\n## 🚀 核心能力\n\n| | 特点 | 说明 |\n|:-:|:-----|:-----|\n| 🧠 | **自学习量化引擎** | 每只股票60W+历史信号回测，输出历史匹配率，不只是数据，告诉**\"过去准不准\"** |\n| 📊 | **17维全量数据** | 实时行情·K线·MACD/KDJ/RSI·资金流向·机构持仓·融资融券·高管变动·研报·财务三表·分红·解禁 |\n| 📈 | **自动规律挖掘** | 5类规律图谱：支撑/阻力位（触碰次数）、大涨后回调概率、大跌后反弹特征、MACD趋势判定 |\n| 💎 | **ETF四象联动** | 独家板块级资金流向×个股走势联动分析，判断是\"板块共振\"还是\"独立行情\" |\n| 🔗 | **研报交叉验证** | 券商覆盖统计、EPS一致性分歧度、今日评级动态，判断市场共识方向 |\n| 📝 | **一键DOCX报告** | 自动生成15章完整结构化分析报告，含K线图嵌入，可直接保存和分享 |\n\n## ⚡ 快速开始\n\n**支持的请求类型：**\n\n| 请求示例 | 说明 |\n|:---------|:-----|\n| `分析 601899` | 返回17维全量数据+量化分析+信号+历史匹配率 |\n| `600600 青岛啤酒 简要分析` | 返回核心要点，不生成DOCX |\n| `600000 资金面怎么样` | 仅分析资金流向+ETF四象联动+机构持仓 |\n| `生成报告 002455` | 生成完整DOCX报告 |\n| `券商怎么看 601899` | 研报观点验证+评级统计 |\n| `688981 盘前做T` | ETF盘后信号+T+1盘后因子 |\n\n## ⚙️ 配置\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}\n```\n\n| 配置项 | 默认值 | 说明 |\n|:-------|:-------|:-----|\n| `api_key` | `\"\"` | **付费API密钥，必填。** 用户购买后在此填入。**仅从 `~/.ghdata/ghdataapikey` 文件读取**，❌ 不支持 settings.json |\n| `webapi_url` | `\"\"` | WebAPI 地址（付费用户获取，购买后提供） |\n| `webapi_timeout` | `30` | HTTP 请求超时（秒） |\n| `doc_dir` | `./doc` | 报告输出目录 |\n\n> **配置生效规则**（优先级从高到低）：  \n> 1. 上述 `config` 配置（仅URL/超时，不含APIKey）  \n> 2. 本地文件 `~/.ghdata/ghdataapikey`（**APIKey唯一来源**）  \n> 3. 自动生成GUID兜底（免费体验用）\n>\n> ⚠️ 环境变量 `GHDATA_API_URL` / `GHDATA_TIMEOUT` 和 `settings.json` **仅用于配置URL和超时**，不读APIKey。\n>\n> **⚠️ APIKey 铁律：** APIKey **只允许**从 `~/.ghdata/ghdataapikey` 这一个文件读取和写入。不读settings.json，不读环境变量。删除该文件 → 自动生成随机GUID → 服务端验证失败 → 降级为免费预览模式。\n\n---\n\n---\n\n## ⚡ LLM 必读：启动时自动执行\n\n本技能的配置（APIKey、WebAPI地址等）在内部自动完成初始化，**无需调用方做任何操作**。直接发分析请求即可。\n\n### 🚨 风险提示强制展示\n\n**在每次向用户输出分析结果前（包括首次交互、每次生成报告、每次展示分析结论），LLM必须在最前方展示以下风险提示：**\n\n> ⚠️ **风险提示**：本技能为公开历史数据的统计与查询工具，**仅提供数据统计方法与历史数据查询结果，本身不生成任何分析结论**。所有分析结论均由您接入的大语言模型（LLM）基于技能提供的历史数据自行生成，与技能本身无关。所有分析结果均基于历史数据计算，**不构成任何投资建议，不预测未来走势**。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n**禁止以任何形式暗示或明示：**\n- 声称本工具推荐某只股票\n- 声称本工具能预测股价涨跌\n- 声称本工具建议买入/卖出/持有\n- 声称历史表现可保证未来收益\n\n**LLM输出措辞强制对照表：**\n\n| ❌ 禁止使用 | ✅ 必须使用 |\n|:-----------|:-----------|\n| 判势、综合判势、判断趋势 | 信号方向、综合信号 |\n| 预测、预判、涨跌范围预测、T+1预测 | 历史参考、参考区间、T+1历史参考 |\n| 准确率、历史准确率 | 匹配率、历史匹配率 |\n| 最佳、最差、最强、最弱 | 历史统计最高、历史统计最低 |\n| 优秀、良好、一般、较差（评分） | 偏高、中等偏上、中等、偏低 |\n| 评级为XX | 评分参考为XX |\n| 策略参考、操作参考 | 历史统计、历史规律 |\n| 需警惕、可关注、不宜、需注意（操作暗示） | 偏弱、偏强（信号描述） |\n| 安全垫、防御价值 | 股息率参考、稳定性参考 |\n| 容易回升、容易反弹、反弹属性、反弹需求、反弹动力、偏反弹、大概率会、概率偏高/偏低 | 历史统计中偏多/偏空，比例偏高/偏低 |\n| 评级参考、判断依据 | 评分参考、参考依据 |\n| 具吸引力、值得关注、承压、下跌空间、有支撑 | 偏高、中性、偏空（信号描述），股息率参考 |\n| 持有（建议语境）、注意风险、不宜、需警惕、企稳 | 偏强、偏弱（信号描述） |\n| 共振、综合共振、多周期共振 | 多周期综合信号、多周期合成信号 |\n| 可信、可信程度 | 参考置信度、参考级别 |\n| 买入、卖出、加仓、减仓、止损、止盈 | 仅限数据字段描述（如龙虎榜买卖席位） |\n\n> ⚠️ **本表也约束代码输出文本**：`reporter.py`、`analyzer.py` 等模块中涉及输出文本的硬编码字符串同样适用以上规则，不能仅靠 LLM 自觉合规。\n\n> ⚠️ **API数据分类名输出规则**：当展示WebAPI返回的模式分类名时（如\"大跌后反弹特征\"），需将其中的\"反弹\"替换为\"偏多\"描述。示例：`大跌后反弹特征` → `大跌后偏多特征`，`反弹属性` → `偏多属性`\n\n> ⚠️ **\"偏反弹\"——绝对禁止词**：任何时候不得用\"偏反弹\"描述历史规律方向。即使API原始数据包含\"0/1=0%反弹\"等字样，展示时也必须改为\"偏多\"/\"偏空\"描述。若数据本身的结论是\"历史统计中大跌后偏多比例偏高\"，则表述为\"大跌后历史统计偏多\"。\n>   正确：`大跌后历史规律偏多（均值+5.14%）` ✅\n>   错误：`大跌后历史规律偏反弹（均值+5.14%）` ❌\n\n> ⚠️ **API字段名翻译规则**：WebAPI返回的英文/中文字段名需按以下规则翻译后再输出，禁止直接照搬：\n> - `latestPrediction` → `最新信号参考`\n> - `accuracy` → `匹配率`（注意双口径：`accuracy.all/period30/period60` 为**参考区间命中率**（±1%窄区间，苛刻口径，辅助展示）；`directionAll/direction30/direction60` 为仅统计有方向倾向预测的方向判定，样本可能很少）\n> - `voteDetail.方向匹配率` → `方向匹配率`（**主指标**：3档符号判定 全部/60日/30日，格式 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）\n> - `rangeForecast` → `参考区间`\n> - `predictDate` → `参考日期`\n> - `prediction` / `predict` 出现 → 一律替换为 `信号` / `参考`\n> - `direction` → `信号方向`\n> - `voteDetail` → `各规则投票明细`\n> - 任何包含\"预测\"\"预判\"的字段名 → 改为\"参考\"\"信号\"\n\n> ⚠️ **输出后处理强制规则**：在你完成全部分析文本生成后，**必须调用一次 `sanitizer.sanitize(你的输出文本)`** 进行最终合规过滤。此函数会自动替换所有红线词。示例：\n> ```python\n> from ghdata.sanitizer import sanitize\n> final_output = sanitize(your_full_output_text)\n> ```\n\n---\n\n## 🚀 核心工作流（每次分析必须执行）\n\n每次分析一只股票，必须完成以下三阶段：\n\n```\n阶段 A：数据采集      ─→  阶段 B：量化分析    ─→  阶段 C：报告输出\n  HTTP直连公开API       POST WebAPI分析API      生成DOCX报告+K线图\n  (新浪/腾讯/东方财富)  (技术指标/信号/统计)     (17维/评分/信号统计)\n```\n\n---\n\n### 阶段 A：17 维数据采集（本地 HTTP 直连）\n\n**方式：** 调用 `ghdata/data_fetcher.py` 中的函数，通过本地 HTTP 直连新浪/腾讯/东方财富等公开 API 获取原始数据。单次约 0.5~2s，支持并行调用，**速度快于 WebAPI 全量拉取**。\n\n| # | 数据维度 | 数据源 | 函数 |\n|:-:|:---------|:-------|:-----|\n| 1 | 实时行情 | 新浪 + 腾讯双源交叉 | `fetch_realtime(code)` |\n| 2 | 日K线数据 | 腾讯 ifzq.gtimg.cn | `fetch_kline(code, days)` |\n| 3 | 今日分时 | 腾讯 qt.gtimg.cn 分钟数据 | `fetch_today_tick(code)` |\n| 4 | 资金流向 | 同花顺 stockpage.10jqka | `fetch_money_flow(code, days)` |\n| 5 | 融资融券 | 东方财富 DataCenter | `fetch_margin_trading(code, days)` |\n| 6 | 机构持仓 | 东方财富 DataCenter | `fetch_main_holdings(code)` |\n| 7 | 股东增减持 | 东方财富 DataCenter | `fetch_shareholder_trade(code)` |\n| 8 | 高管持股变动 | 东方财富 DataCenter | `fetch_executive_change(code)` |\n| 9 | 财务数据 | 东方财富 DataCenter | `fetch_financial(code)` |\n| 10 | 资产负债表 | 东方财富 DataCenter | `fetch_balance_sheet(code)` |\n| 11 | 利润表 | 东方财富 DataCenter | `fetch_income_statement(code)` |\n| 12 | 现金流量表 | 东方财富 DataCenter | `fetch_cashflow(code)` |\n| 13 | 分红历史 | 东方财富 DataCenter | `fetch_dividend(code)` |\n| 14 | 券商研报 | 东方财富 DataCenter | `fetch_research_report(code)` |\n| 15 | 机构调研 | 东方财富 DataCenter | `fetch_institutional_survey(code)` |\n| 16 | 限售解禁 | 东方财富 DataCenter | `fetch_unlock_data(code)` |\n| 17 | **行业信息** | 东方财富 DataCenter | `fetch_industry_info(code)` |\n\n> **增强数据（量化分析使用，通过 WebAPI 获取）：**\n> - **行业ETF资金流** → `db_manager.get_etf_flow(code, days=15)` — 近N日ETF资金净流入/出\n> - **ETF数据统计（含盘后）** → `db_manager.get_etf_stats(...)` — 盘后活跃度排名\n> - **券商研报汇总** → `db_manager.get_research_summary(code)` — 机构评级/EPS预测\n> - **EPS一致性预期** → `db_manager.get_eps_consistency(code)` — 分歧度判定\n> - **券商覆盖统计** → `db_manager.get_broker_ranking(code)` — 买入率\n> - **今日评级动态** → `db_manager.get_rating_wind_today(code)` — 今日研报更新\n\n**Python 代码（直接在 CMD 中执行）：**\n\n```python\nimport sys, os\nsys.path.insert(0, os.path.dirname(__file__))\nfrom ghdata import data_fetcher as fetcher\nfrom ghdata import config\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\ndef collect_all(code: str) -> dict:\n    \"\"\"17维数据一次性采集（全部HTTP直连，8路并行，零外部依赖）\"\"\"\n    # 定义所有采集任务：（key, 函数, 参数...）\n    tasks = [\n        (\"realtime\",     fetcher.fetch_realtime,           code),\n        (\"kline\",        fetcher.fetch_kline,              code, 120),\n        (\"tick\",         fetcher.fetch_today_tick,         code),\n        (\"moneyFlow\",    fetcher.fetch_money_flow,         code, 10),\n        (\"margin\",       fetcher.fetch_margin_trading,     code, 10),\n        (\"holdings\",     fetcher.fetch_main_holdings,      code),\n        (\"shareholder\",  fetcher.fetch_shareholder_trade,  code),\n        (\"executive\",    fetcher.fetch_executive_change,   code),\n        (\"financial\",    fetcher.fetch_financial,          code),\n        (\"balance\",      fetcher.fetch_balance_sheet,      code),\n        (\"income\",       fetcher.fetch_income_statement,   code),\n        (\"cashflow\",     fetcher.fetch_cashflow,           code),\n        (\"dividend\",     fetcher.fetch_dividend,           code),\n        (\"research\",     fetcher.fetch_research_report,    code),\n        (\"survey\",       fetcher.fetch_institutional_survey, code),\n        (\"unlock\",       fetcher.fetch_unlock_data,        code),\n        (\"industry\",     fetcher.fetch_industry_info,      code),\n    ]\n    data = {}\n    with ThreadPoolExecutor(max_workers=8) as pool:\n        futures = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n        for fut in as_completed(futures):\n            key = futures[fut]\n            try:\n                data[key] = fut.result()\n            except Exception as e:\n                data[key] = None\n    return data\n\n# 增强数据（调用WebAPI获取，必须纳入分析）：\nfrom ghdata import db_manager as db\netf_flow = db.get_etf_flow(code, 15)                  # 行业ETF资金流\nrpt_summary = db.get_research_summary(code, 90)        # 研报汇总\neps_data = db.get_eps_consistency(code, 180)           # EPS一致性\nbroker_data = db.get_broker_ranking(code, 90)          # 券商覆盖\ntoday_rpt = db.get_rating_wind_today(code)             # 今日动态\n```\n\n---\n\n### 阶段 B：量化分析（WebAPI）\n\n采集完数据后，调用 WebAPI 进行量化分析：\n\n```python\nfrom ghdata import db_manager as db\n\n# 调用 WebAPI 获取全量分析结果\nresult = db.kline_analyze(code, today_kline=None)\n# 返回包含：\n#   indicators  → MA5/MA10/MA20/MA60/MACD/KDJ/RSI/量比\n#   signals     → 偏多/偏空/中性 汇总\n#   patterns    → 大涨后规律/大跌后规律/支撑/阻力\n#   accuracy    → 全部历史/近60日/近30日 匹配率\n#   prediction  → 方向/T+1/T+2/中期方向 + 价格区间\n#   learning    → 自学习规律跟踪摘要\n\n# 【重要】以下数据必须在分析中纳入：\n\n# ① ETF 行业资金流 — 资金面分析时必须调用\netf_flow = db.get_etf_flow(code, days=15)\n# 返回: { matched_etfs: [{code, name}], etf_flow: {code: [{date, fund_size, net_inflow}]}, summary:\"...\" }\n# 用途：判断个股所属行业的ETF资金态度——板块净流入=资金支撑，净流出=板块压力\n# 即使matched_etfs为空也要说明\"该行业暂未配置ETF映射\"\n\n# ② 券商研报数据 — 基本面/估值分析时必须调用\nresearch_summary = db.get_research_summary(code, days=90)\n# 返回格式化文本：机构名、评级、EPS/PE预测值\n\neps_consistency = db.get_eps_consistency(code, days=180)\n# 返回格式化文本：覆盖机构数、平均EPS、标准差、变异系数、分歧度\n\nbroker_rank = db.get_broker_ranking(code, days=90)\n# 返回格式化文本：覆盖该股的券商、篇数、买入率\n\nrating_today = db.get_rating_wind_today(code)\n# 返回格式化文本：该股今日是否有研报更新\n```\n\n**WebAPI 地址通过配置中的 `webapi_url` 设置。**\n\n---\n\n### 阶段 C：报告生成\n\n```python\nfrom ghdata import reporter\nfrom ghdata import chart\n\n# 1. 生成 K 线图\nchart.generate_kline_chart(klines, ...)\n\n# 2. 生成 13 章完整 DOCX 报告（自动采集全部17维数据，无需手动传入）\nreporter.generate(code)\n\n# 可选：如果已通过API采集了数据，可以传入 extra_data 覆盖自动采集的结果\n# reporter.generate(code, extra_data={\n#     \"holdings\": {\"points\": [...], \"conclusion\": \"...\"},\n#     \"money_flow\": {\"points\": [...], \"conclusion\": \"...\"},\n# })\n```\n\n---\n\n## 📈 个股分析（LLM 指令）\n\n用户输入股票代码或名称时，LLM执行三阶段分析流程（采集→量化→报告）。\n\n### 用户输入匹配表\n\n| 用户说 | LLM执行 | 说明 |\n|:-------|:--------|:-----|\n| \"分析600028\"、\"看看中国石化\" | 阶段A+B：采集+量化 → **输出精简报告** | ⚡默认输出精简版（见下方），**不生成15章全文** |\n| \"中国石化怎么样\"、\"600028走势\" | 阶段A+B：采集+量化 → **输出精简报告** | 同上 |\n| \"帮我全面分析一下这只股票\"、\"出完整报告\"、\"详细分析\" | 阶段A+B+C：完整15章报告 | 完整报告耗时较长，调用方需设置 timeout≥180s |\n| \"生成分析报告\"、\"出报告\"、\"出文档\" | 阶段A+B→C：生成DOCX | 调用 reporter.generate() 生成docx文件 |\n| \"帮我分析这几只股票\"、\"600028和601857对比\" | 逐只执行 → 输出精简报告 | 多只按顺序处理 |\n| \"K线图\"、\"走势图\" | 阶段A→chart：生成K线图 | 调用 chart.generate_kline_chart() |\n| \"这只股票估值怎么样\"、\"估值合理吗\" | 阶段B → 估值分析 | 展示估值分位/杜邦分析/F-Score |\n| \"技术面多周期怎么看\" | 阶段B → 多周期分析 | 展示日线周线综合信号 |\n| \"北向资金在买还是卖\"、\"龙虎榜有这只吗\" | 阶段B → 资金面画像 | 展示北向/龙虎榜/ETF四象联动/封板/回购/板块 |\n| \"券商怎么看这只股票\"、\"最近有研报吗\" | 阶段B → 券商研报观点 | 展示近期覆盖/EPS一致性/机构观点验证 |\n| \"全面分析所有A股\"、\"帮我扫一下市场\" | 条件筛选TOP10 → 逐只深度分析 → 市场概览 | 不逐只分析5000只 |\n| \"看涨的股票有哪些\"、\"选几只优质股\" | 条件筛选（方向=偏多, 评分高） | 按评分排序TOP20 |\n\n### 全量分析报告标准格式（LLM必读）\n\n当用户要求**全面分析一只股票**（如\"分析一下\"、\"看看\"、\"怎么样\"等常规分析请求），请严格按以下15章结构呈现分析结果。\n\n**执行方式：执行 Python 脚本完成完整的三阶段分析（采集→量化→报告），然后按以下结构逐章输出。**\n\n```python\nfrom ghdata import data_fetcher as fetcher, db_manager as db, eval_engine\n\n# 阶段 A：本地 HTTP 采集原始数据（8路并行，~2秒完成）\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\ncode = \"688502\"  # 替换为待分析的股票代码\n\n# 并行采集17维数据（每个HTTP 0.5~1.5s → 并行后总计 ~2s）\ntasks = [\n    (\"realtime\",  fetcher.fetch_realtime,         code),\n    (\"kline\",     fetcher.fetch_kline,            code, 200),\n    (\"tick\",      fetcher.fetch_today_tick,       code),\n    (\"moneyFlow\", fetcher.fetch_money_flow,       code, 10),\n    (\"margin\",    fetcher.fetch_margin_trading,   code, 10),\n    (\"holdings\",  fetcher.fetch_main_holdings,    code),\n    (\"shareholder\", fetcher.fetch_shareholder_trade, code),\n    (\"executive\", fetcher.fetch_executive_change, code),\n    (\"financial\", fetcher.fetch_financial,        code),\n    (\"balance\",   fetcher.fetch_balance_sheet,    code),\n    (\"income\",    fetcher.fetch_income_statement, code),\n    (\"cashflow\",  fetcher.fetch_cashflow,         code),\n    (\"dividend\",  fetcher.fetch_dividend,         code),\n    (\"research\",  fetcher.fetch_research_report,  code),\n    (\"survey\",    fetcher.fetch_institutional_survey, code),\n    (\"unlock\",    fetcher.fetch_unlock_data,      code),\n    (\"industry\",  fetcher.fetch_industry_info,    code),\n]\ndata = {}\nwith ThreadPoolExecutor(max_workers=8) as pool:\n    fut_map = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n    for fut in as_completed(fut_map):\n        try: data[fut_map[fut]] = fut.result()\n        except: data[fut_map[fut]] = None\n\n# 阶段 B：量化分析（WebAPI + 本地计算）\nanalysis = db.kline_analyze(code)                # ③服务端：技术指标/信号/规律/匹配率/预测\nkline = data.get(\"kline\")\nsignals = eval_engine.analyze(None, kline) if kline else {}  # ④本地：7规则投票\netf      = db.get_etf_flow(code, 15)             # ⑤ETF行业资金流\nresearch = db.get_research_summary(code, 90)     # ⑥券商研报\n\n# 阶段 C：输出报告（按下方15章格式逐章输出）\n```\n\n各阶段分工：\n- **本地HTTP**（data_fetcher）→ 原始数据采集，单次0.5~2s，**8路并行→总计约2s**\n- **WebAPI**（db.kline_analyze）→ 服务端量化计算：技术指标/信号/规律/匹配率/预测\n- **本地计算**（eval_engine）→ 7规则信号投票：偏多/偏空/中性\n\n> ⚠️ 以下分析结果仅为数据统计与技术指标展示，不构成任何投资建议。股市有风险，入市需谨慎。\n\n```\n📊 {股票名称}({代码}) 量化分析报告\n分析日期：{当前日期}（{星期几}） | 今日表现：{涨跌幅} {🚀/📈/📉/❌}\n```\n\n#### 一、公司概况\n| 项目 | 内容 |\n|:----|:-----|\n| 公司名称 | {名称} |\n| 股票代码 | {代码}（{沪市/深市}） |\n| 所属行业 | {行业} |\n| 地域板块 | {地域} |\n| 总市值 | {总市值} 亿元 |\n| 主营构成 | {主营业务简述} |\n| 概念标签 | {概念标签} |\n\n{公司简介（1-2句概括）}\n\n#### 二、实时行情\n| 指标 | 数据 |\n|:----|:-----|\n| 最新价 | {价格} 元 {🚀📈/📉} |\n| 今日开盘 | {开盘价} |\n| 今日最高 | {最高价} |\n| 今日最低 | {最低价} |\n| 涨跌幅 | {涨跌幅%} {✅/❌} |\n| 成交量 | {成交量}手 |\n| 成交额 | {成交额} 亿元 |\n| 换手率 | {换手率}% |\n| PE（TTM） | {倍数} |\n| PB | {倍数} |\n| 流通市值 | {流通市值} 亿元 |\n| 总市值 | {总市值} 亿元 |\n\n{今日表现一句话点评}\n\n#### 三、机构持仓\n{主力持仓数据表格，含机构类型、持仓市值、占流通股比例、增减仓变化}\n{无数据时写：暂无近期机构持仓数据}\n\n#### 四、资金流向\n**4.1 日级资金流向**\n| 日期 | 主力净流入(万) | 涨跌幅 |\n|:----|:-------------|:------|\n| {近5-10日数据} |\n\n**4.2 行业ETF资金流**\n关联ETF：{名称（代码）}\n\n| 日期 | 净流入(元) | 方向 |\n|:----|:----------|:----|\n| {近5日数据} |\n\n▶ ETF × 个股四象分析：\n  ETF方向：{净流入/流出}（±X万元）\n  个股趋势：{上涨/下跌}（±X%）\n  结论：{象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓}\n\n#### 五、融资融券\n| 日期 | 融资余额(亿) | 当日净买入(万) |\n|:----|:------------|:--------------|\n| {近5日数据} |\n\n{融资余额趋势一句话}\n\n#### 六、高管大股东变动\n**6.1 高管持股变动**\n{高管增持/减持记录表，无数据写：近期无高管持股变动记录}\n\n**6.2 股东增减持**\n{股东增持/减持记录表，无数据写：近期无大股东增减持记录}\n\n#### 七、财务分析\n**7.1 业绩概览**\n| 报告期 | 营收(亿) | 营收同比 | 净利润(亿) | 利润同比 | EPS | ROE | 毛利率 |\n|:------|:--------|:--------|:----------|:--------|:---|:---|:------|\n| {近4-6期数据} |\n\n{业绩解读一句话}\n\n**7.2 资产负债表关键指标**\n资产负债率：{X}% | 流动比率：{X}% | {财务结构评价}\n\n**7.3 现金流量表**\n{经营性/投资性/筹资性现金流概览}\n\n#### 八、估值分析\n| 估值指标 | 数值 | 参考 |\n|:--------|:----|:----|\n| PE（TTM） | {X}倍 | {高/中/低}分位 |\n| PB | {X}倍 | {评价} |\n| 股息率 | {X}% | {评价} |\n\n{估值综合判断}\n\n#### 九、券商研报观点\n**9.1 近期研报**\n| 日期 | 机构 | 评级 | 核心观点 |\n|:----|:----|:----|:---------|\n| {近期研报数据} |\n\n**9.2 EPS一致性预期**\n覆盖机构数：{X}家 | 平均EPS（2026E）：{X}元 | 变异系数：{X}%（高度一致/基本一致/分歧较大）\n\n**9.3 机构观点验证**\n{✅/⚠️} 券商一致性：{X}%机构看好（市场共识{高/低}）\n{✅/⚠️} EPS预期：一致/分歧\n{✅/⚠️} 估值验证：当前价{X}元，低于/高于估值中枢\n\n#### 十、分红历史\n| 报告期 | 方案 | 股息率(按现价) |\n|:------|:----|:--------------|\n| {近5年分红数据} |\n\n{分红评价}\n\n#### 十一、K线技术分析\n\n**有数据时（付费版）：**\n均线系统：MA5={X} MA10={X} MA20={X} MA60={X} | {多头/空头/缠绕}\nMACD：DIF={X} DEA={X} 红/绿柱={X} | {金叉/死叉/偏多/偏空}\nKDJ：K={X} D={X} J={X} | {偏多/中性/偏空}\nRSI(14)：{X} | {超卖/超买/中性}\n\n**信号汇总：** 偏多{X} · 偏空{X} · 中性{X} → {方向}\n\n**预览版（仅展示原始数据，不作任何解读）：**\n| 指标 | 数值 |\n|:----|:-----|\n| MA5 | {X} |\n| MA10 | {X} |\n| MA20 | {X} |\n| MA60 | {X} |\n| MACD DIF | {X} |\n| MACD DEA | {X} |\n| MACD 红/绿柱 | {X} |\n| KDJ K | {X} |\n| KDJ D | {X} |\n| KDJ J | {X} |\n| RSI(14) | {X} |\n| 量比 | {X} |\n\n> 🔒 **数字都摆在这了，但你知道现在该买还是该卖吗？**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十二、历史信号匹配统计\n\n**有数据时（付费版）：**\n\n> 📈 **涨跌方向汇总**：跌 ▼（综合评分 -0.35）\n> 细化信号：震荡偏空（近30天正确率11.5%）\n\n| 时段 | 方向匹配率（主指标） |\n|:----|:------|\n| 全部历史 | {X}/{X} = {X}% {进度条} |\n| 近60日 | {X}/{X} = {X}% {进度条} |\n| 近30日 | {X}/{X} = {X}% {进度条} |\n\n> 📎 参考区间命中率（辅助口径：预测±1%窄区间是否盖住实际涨跌，对高波动股苛刻，仅供辅助参考）：全部 {X}% ｜ 近60日 {X}% ｜ 近30日 {X}%\n\n**数据来源：** 方向匹配率优先读 `latestPrediction.voteDetail` 的 `方向匹配率` 键（`{\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}`，3档符号判定：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测）。区间命中率读 `accuracy.all/period30/period60`。\n\nT+1方向：涨 ▲（细化：{方向}） | 中期方向：{方向}\n\n**无数据时（预览版）：**\n> 🔒 **这些信号综合起来意味着什么？机构就是拿着这些数据做决策的，你看不到。**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十三、历史规律总结\n\n**有数据时（付费版）：**\n{每条规律：名称 + 出现次数 + 后3日均值 + 结论}\n{如：大跌后反弹特征：验证52次，后3日平均-1.81%，偏弱}\n\n**无数据时（预览版）：**\n> 🔒 **大涨后怎么走、暴跌后该割还是该扛？数据告诉你答案**\n>\n> 付费版包含：\n> • 大涨超过3%后，历史上第二天、第三天怎么走？匹配率多少？\n> • 暴跌超过3%后，抄底还是止损？历史规律给你参考\n> • 关键支撑位和阻力位在哪？涨到什么位置容易受阻？\n> • 历史相似K线形态匹配，帮你判断当前在走什么剧本\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十四、综合评分\n| 维度 | 权重 | 评分 | 加权得分 | 依据 |\n|:----|:----|:----|:--------|:-----|\n| 基本面 | 35% | {X}/10 | {X} | {依据简述} |\n| 估值面 | 20% | {X}/10 | {X} | {依据简述} |\n| 技术面 | 15% | {X}/10 | {X} | {依据简述} |\n| 资金面 | 20% | {X}/10 | {X} | {依据简述} |\n| 情绪面 | 10% | {X}/10 | {X} | {依据简述} |\n| **总分** | **100%** | | **{X}** | **{评级}** |\n\n#### 十五、风险提示\n> 动态生成，基于持股结构、行业特征等自动生成\n\n{风险项1} ⚠️ | {说明}\n{风险项2} ⚠️ | {说明}\n...\n\n#### 综合研判\n\n💡 {股票名称}({代码}) 综合参考\n\n📊 方向：{偏多/偏空/中性} | 评分参考：{X}/10（{评级}）\n\n① 基本面（{评级}）{✅/⚠️} — {一句话}\n② 估值面（{评价}） — {一句话}\n③ 技术面（{评价}） — {一句话}\n④ 资金面（{评价}） — {一句话}\n⑤ 情绪面（{评价}） — {一句话}\n⑥ 研报观点（{评价}） — {一句话}\n\n📌 参考要点：{1-2句总结}\n\n⚠️ **免责声明：** 以上分析结果仅为基于历史数据和公开信息的量化展示，不构成任何投资建议，不预测未来走势。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n---\n\n### 数据来源对照表（报告章节 → 数据来源）\n\n| 报告章节 | 数据来源 | 获取方式 |\n|:--------|:--------|:---------|\n| 一、公司概况 | `data_fetcher` → company_info | 本地HTTP |\n| 二、实时行情 | `data_fetcher` → realtime_price | 本地HTTP（新浪+腾讯双源） |\n| 三、机构持仓 | `db_manager.get_holdings()` | WebAPI |\n| 四、资金流向+ETF | `db_manager.get_etf_flow()` | WebAPI |\n| 五、融资融券 | `db_manager.get_margin()` | WebAPI |\n| 六、高管大股东 | `data_fetcher` + `db_manager` | 本地HTTP + WebAPI |\n| 七、财务分析 | `data_fetcher` 财报四表 | 本地HTTP（东方财富） |\n| 八、估值分析 | `data_fetcher` → 实时行情PE/PB | 本地HTTP |\n| 九、券商研报 | `db_manager.get_research_summary()` | WebAPI |\n| 十、分红历史 | `data_fetcher` → fetch_dividend | 本地HTTP |\n| 十一、K线技术 | `db.kline_analyze` → indicators+signals | **WebAPI**（服务端计算） |\n| 十二、信号匹配 | `db.kline_analyze` → accuracy | **WebAPI** |\n| 十三、历史规律 | `db.kline_analyze` → patterns | **WebAPI** |\n| 十四、综合评分 | `db.kline_analyze` → prediction/score | **WebAPI** |\n| 十五、风险提示 | 行业+持股结构动态生成 | — |\n\n**注意：**\n- **原始数据（章节一~十）** → 优先走本地HTTP（`data_fetcher`），速度快\n- **量化计算（章节十一~十四）** → 走 WebAPI（`db.kline_analyze`），服务端算\n- 所有 WebAPI 调用通过 `db_manager` 代理\n- 若某个字段返回空，对应章节写\"暂无数据\"或跳过该章节\n- 章节十一~十三为付费内容\n- 如用户要求出 DOCX 报告，调用 `reporter.generate(代码)`\n```\n\n---\n\n## 🤖 自学习系统（LLM 指令）\n\n技能的自学习能力由服务端（WebAPI + 日更新服务）自动运行，**无需用户手动触发**。\n\n### 自学习机制说明\n\n```\n每日18:00定时任务：\n  1. 拉取最新K线数据 → 存入 kline_data 表\n  2. 7规则投票 → 生成历史信号匹配统计 → 存入 predictions 表\n  3. 与实际走势比对 → 更新 accuracy_tracking 表\n  4. 挖掘5条交易规律 → 存入 stock_patterns 表\n  5. 更新 experience 表（方向/评分/匹配率）\n```\n\n### 用户可以怎么问\n\n| 用户说 | LLM回答 |\n|:-------|:--------|\n| \"这只股票的自学习情况怎么样\" | 调用 `db.kline_analyze(code)` 提取 learningSummary 回复 |\n| \"记录了多少次匹配\" | 查看 accuracy_tracking 表统计 |\n| \"匹配率多少\" | 查看 experience 表的 accuracy_rate |\n| \"有没有跟踪记录\" | 从数据中展示学习摘要（规律验证记录） |\n\n### 自学习内容展示格式\n\n```\n📚 中国石化 自学习跟踪摘要\n\n📊 方向匹配率：234/348 = 67.2% ✅\n  全部历史匹配234次，共348次统计\n\n📉 大跌后反弹特征：验证52次\n  最近验证：1/5=20%反弹\n  3日平均反弹：-1.81%\n  历史规律参考：大跌后偏弱\n\n📈 大涨后回调特征：验证43次\n  最近验证：2/4=50%回调\n  3日平均：-1.72%\n  历史规律参考：大涨后偏回调\n\n📌 趋势：自学习系统每日18:00自动更新\n```\n\n### 📈 个股自学习画像（LLM 展示格式）\n\n调用 `db.kline_analyze(code)` 后，返回结果中包含 `stockProfile` 字段，LLM应按以下格式展示：\n\n```\n━━━ ① 估值分析 ━━━\n📊 估值分位\n  当前股价位于近5年X%分位，估值偏（低/适中/高）\n\n📊 杜邦分析\n  净资产收益率X.X%（较上期+/-X.X%）\n  核心驱动：净利率 / 资产周转 / 权益乘数\n\n📊 F-Score 基本面评分\n  F-Score: X/9 （优/良/差）\n  评分因子：盈利能力 / 杠杆 / 流动性 / 效率\n\n━━━ ② 多周期技术分析 ━━━\n📊 多周期信号\n  日线: 偏多/偏空/中性\n  周线: 偏多/偏空/中性\n  综合信号: （偏多/偏空/震荡）\n\n📊 波动率分析\n  目前处于布林带（上轨/中轨/下轨）位置\n  带宽X%（扩张/收缩），波动率（大/小）\n\n📊 量价背离分析\n  当前（无/有底背离/有顶背离）信号\n  （背离说明，如有）\n\n━━━ ③ 个股行为画像 ━━━\n📊 财报前后表现\n  2026-04-29 净利润+28.2% ✅利好  后5日:-0.19%\n  2026-03-23 净利润-36.8% ❌利空\n\n📊 指数相关性\n  与上证同涨同跌率：46.6%（近60日）\n\n📊 放量缩量行为\n  放量后3日平均：-4.34%（14次）→ 放量易跌\n  缩量后3日平均：+3.68%（10次）→ 缩量易涨 ✅\n\n📊 技术信号有效性\n  MACD金叉：有效次数不足  MACD死叉：有效(1/1)\n\n━━━ ④ 资金面画像 ━━━\n📊 北向资金\n  近5日净买X亿元，方向偏（流入/流出）\n\n📊 龙虎榜\n  上榜情况：（是/否）买入/卖出席位X家，净额+X万\n\n📊 ETF资金流（联动分析）\n  关联ETF: （名称）\n  ETF近X日净流X亿元，方向（流入/流出）\n  ▶ ETF × 个股四象分析：\n  ① ETF方向：净流入/流出（±X万元）\n  ② 个股趋势：上涨/下跌（±X%）\n  ③ 结论：（象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓）\n  ④ 解读：ETF方向与个股走势的联动说明\n\n📊 封单数据\n  该股今日/近期是否封板？封单资金X亿，强度（强/中/弱）\n\n📊 回购计划\n  正在实施/已完成的回购计划X份，金额合计X亿\n\n📊 板块轮动\n  所属（行业板块）当前强弱排名第X，资金净流方向偏（流入/流出）\n\n━━━ ⑤ 相似K线匹配 ━━━\n🔍 当前形态匹配到5段历史相似走势\n  匹配后5日平均涨跌：-0.19%\n  结论：历史相似形态下偏弱\n\n━━━ ⑥ 错误模式诊断 ━━━\n⚠️ 最大连错4次 | 偏多方向失败6次 | 偏空方向失败12次\n  诊断：偏空方向失败率高，历史统计中偏多比例偏高\n\n━━━ ⑦ 季节性规律 ━━━\n📅 12月: 平均+0.75% 胜率50% — 历史均值最高月份\n   5月:  平均-0.60% 胜率11% ⚠️ 历史均值最低月份\n\n━━━ ⑧ 券商研报观点 ━━━\n📊 近期覆盖\n  券商名称   评级   EPS预测\n  XXXX证券  买入/增持  EPS=X.XX->X.XX->X.XX\n\n📊 EPS一致性预期\n  覆盖X家机构，平均EPS X.XXX，偏差X.X%（高度一致/基本一致/分歧大）\n\n📊 机构观点验证\n  ✅ 券商一致性：X%机构买入/增持（市场共识高）\n  ✅ / ⚠️ EPS预期：高度一致/存在分歧\n  ✅ 估值验证：当前价X.XX元，低于/高于合理估值中枢X.XX元\n  📊 综合可信度：X/4项正面信号（可信度高/部分可信/分歧大）\n```\n\n### 免责声明：以上为数据分析结果，不构成任何投资建议。股市有风险，投资需谨慎。\n\n```\n💡 （股票名称）综合研判\n📊 涨跌方向：偏多（涨▲，细化：偏多，评分+X，匹配率X%）\n① 估值分析：近5年X%分位，估值偏（低/适中）；F-Score X/9 基本面（优/良/差）\n② 多周期技术：日线中性、周线偏空，综合偏弱；布林带宽X%扩张，波动大\n③ 个股画像：缩量后偏强(后3日均值+3.68%)，放量警惕(后3日-4.34%)\n④ 资金面：北向近期净（流出/流入）X亿；板块排名X；ETF四象→（共振/独立/承压）\n⑤ 研报观点：X家券商X%看好，一致性（高/中/低），估值中枢X元\n⑥ 历史相似形态：偏弱(-0.19%)\n⑦ 错误诊断：偏空失败12次，历史统计中偏多比例偏高\n⑧ 季节性：12月统计最高(+0.75%)，5月统计最低(-0.60%)\n📌 参考：当前偏空但偏空失败率高，历史统计中偏多比例偏高，缩量后偏稳\n```\n\n---\n\n## 🗺️ 全市场扫描（批量筛选）指令\n\n当客户想批量看多只股票（如全市场、某个板块、涨幅榜等），**不要逐只调 kline_analyze 做深度分析**（5000只逐个分析既不现实也无必要），应使用筛选 API 做批量筛选，然后对筛选结果的前几只做深度分析。\n\n### 客户输入匹配\n\n| 用户说 | LLM操作 | 规则 |\n|:-------|:--------|:-----|\n| \"所有A股全面分析一下\" | 先筛选 → 再深度分析前10只 | 按评分排序取TOP10 |\n| \"帮我看看整个市场\" | 先筛选 → 汇总市场统计 | 列出各方向占比、评分均值等 |\n| \"哪些股票看涨？\" | 条件筛选（方向=偏多） | 按评分排序取TOP20 |\n| \"选几只优质股\" | 条件筛选（评分高+匹配率高） | 评分≥7 + 匹配率≥60% TOP10 |\n| \"强势股有哪些\" | 动量筛选 | 近20日涨幅+均线多头+MACD金叉 |\n| \"超跌反弹的股票\" | 反转筛选 | RSI<30超卖+MACD金叉 |\n| \"技术面好的股票\" | 技术信号筛选 | 均线多头+MACD金叉+放量 |\n\n### 全市场概览展示格式\n\n```\n━━━ 全市场方向分布 ━━━\n📊 偏多       XXX只 (XX%)\n📊 震荡偏多   XXX只 (XX%)\n📊 震荡       XXX只 (XX%)\n📊 震荡偏空   XXX只 (XX%)\n📊 偏空       XXX只 (XX%)\n\n━━━ 全市场评分TOP X ━━━\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n```\n\n### 批量筛选执行流程\n\n```\n用户问\"全面分析所有股票\"\n  ├─ ① 调用 db.screen_stocks(top=10) → 按评分排序取TOP10\n  ├─ ② 对TOP10逐只做全流程深度分析\n  ├─ ③ 汇总成「市场概览+TOP10深度分析」回复\n  └─ ❌ 不逐只分析全部5000只\n```\n\n---\n\n## 🎯 数据筛选功能（LLM 指令）\n\n技能支持四种筛选方式，LLM根据用户需求自动匹配合适的方式。\n\n### 四种筛选方式说明\n\n**方式①：条件筛选** — 用现有评分数据快速过滤\n- 条件：方向（偏多/震荡偏多）、评分（0-10）、匹配率（%）\n- 适用场景：用户说\"帮我选几只股票\"、\"找看涨的\"、\"评分高的\"、\"匹配率高的\"\n- 速度快，适合初步筛选\n\n**方式②：动量筛选** — 筛选近期强势的股票\n- 条件：近20日涨幅 > 一定值 + 均线多头排列 + MACD金叉 + 放量\n- 适用场景：用户说\"涨得好的\"、\"强势股\"、\"最近涨得猛的\"\n- 示例结果：华丰股份 近20日+5.0% 均线多头 MACD金叉 放量1.5倍\n\n**方式③：反转筛选** — 筛选超跌后信号偏正面的股票\n- 条件：RSI < 30（超卖） + MACD金叉（底背离信号）\n- 适用场景：用户说\"超跌反弹\"、\"跌多了\"、\"RSI低\"\n- 示例结果：国光电器 近20日-22.3% RSI=24(超卖) MACD金叉\n\n**方式④：技术信号筛选** — 筛选技术形态偏好的股票\n- 条件：均线多头排列 + MACD金叉 + 成交量放大\n- 适用场景：用户说\"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\"\n- 示例结果：返利科技 均线多头 MACD金叉 放量2.7倍\n\n### 用户输入匹配表\n\n| 用户说 | 使用方式 | 说明 |\n|:-------|:---------|:-----|\n| \"帮我筛选\"、\"看看有什么\"、\"随便看看\" | **条件筛选** | 默认查全部，按评分排序 |\n| \"找看涨的\"、\"方向偏多的\" | **条件筛选** | 过滤方向=偏多 |\n| \"评分高的\"、\"优质股\" | **条件筛选** | 评分≥5 |\n| \"涨得好的\"、\"强势股\"、\"最近涨得猛的\"、\"创新高的\" | **动量筛选** | 近20日涨幅+均线多头+MACD金叉+放量 |\n| \"超跌反弹\"、\"跌多了\"、\"跌得深的\"、\"RSI低的\" | **反转筛选** | RSI<30超卖+MACD金叉 |\n| \"技术面好\"、\"多头排列\"、\"金叉\"、\"放量上涨\" | **技术信号筛选** | 均线多头+MACD金叉+放量 |\n| \"都有哪些\"、\"我想看看\" | **条件筛选** | 默认条件 |\n\n### 结果展示格式\n\n```\n📊 条件筛选结果（共 XX 条）\n代码    名称        方向   评分   匹配率\n600028  中国石化    偏多   8.2    67.2%\n...\n\n📈 动量筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  RSI  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  67.3  近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：近20日涨幅 + 均线多头 + MACD金叉 + 放量\n\n💥 反转筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  RSI   匹配原因\n002045  国光电器   震荡   2.0   -22.3%    24.4  近20日-22.3%·MACD金叉·RSI超卖(24)\n📌 逻辑：RSI超卖(<30) + MACD金叉 + 放量企稳\n\n🔧 技术信号筛选结果（共 XX 条）\n代码    名称       方向   评分  近20日涨幅  均线  量比  匹配原因\n605100  华丰股份   偏多   5.0   +5.0%      多头  1.5   近20日+5.0%·均线多头·MACD金叉·放量1.5倍\n📌 逻辑：均线多头 + MACD金叉 + 量比>1.3\n```\n\n### LLM执行代码\n\n```python\nfrom ghdata import db_manager as db\n\n# 条件筛选\nr = db.screen_stocks(directions=[\"偏多\"], min_score=5.0, top=10)\n\n# 动量筛选\nr = db.advanced_screen(mode=\"momentum\", momentum_chg20=5.0, top=10)\n\n# 反转筛选\nr = db.advanced_screen(mode=\"reversal\", reversal_rsi=30, top=10)\n\n# 技术信号筛选\nr = db.advanced_screen(mode=\"techsignal\", tech_ma_bullish=True, tech_macd_golden=True, tech_vol_surge=True, top=10)\n```\n\n### 注意事项\n- 如果用户没指定方式，默认用 **条件筛选**\n- `score` 是0-10分制，不是百分制\n- `accuracy` 是百分比（如67.2%）\n- 返回结果时**必须附上筛选逻辑说明**\n- 同一参数只调一次接口，不要重复调用\n\n---\n\n## 📊 DOCX 报告15章结构（reporter.py 数据来源参考）\n\n> 此结构仅用于 DOCX 报告生成（reporter.generate() 输出格式），\n> LLM 文本分析报告请参考上方 **全量分析报告标准格式（LLM必读）** 章节。\n\n| # | 章节 | 核心内容 | 展示格式 | 数据源 |\n|:-:|:-----|:---------|:---------|:-------|\n| 一 | 公司概况 | 主营业务 + 行业地位 + 市值 | 段落 | WebAPI |\n| 二 | 实时行情 | 最新价/涨跌/PE/PB/市值 | 表格 | 新浪+腾讯 |\n| 三 | 机构持仓分析 | 机构家数/持股/变动 | 数据表 + analysis_points | extra_data.holdings |\n| 四 | 资金流向+ETF板块资金 | 近10日净流入/大单占比 + 关联行业ETF资金流 | 数据表 + analysis_points + ETF板块背景 | extra_data.money_flow + db.get_etf_flow() |\n| 五 | 融资融券分析 | 融资余额/净买/占比 | 数据表 + analysis_points | extra_data.margin_trading |\n| 六 | 高管及大股东行为 | 增持/减持记录 | 数据表 + analysis_points | extra_data.shareholder_trade |\n| 七 | 核心财务分析 | 7.1业绩/7.2利润/7.3资产/7.4现金流 | 数据表 + fin_analysis（短段落） | extra_data.financial_report |\n| 八 | 估值参考区间分析 | 8.1PE/8.2PB/8.3综合区间+术语表 | 表格+段落（EPS/BVPS由PE/PB和最新价动态计算，禁止硬编码） | WebAPI |\n| 九 | 券商研报观点 | 9.1近期研报/9.2 EPS一致性/9.3券商覆盖/9.4今日动态/9.5机构观点验证 | 格式化文本（5子节） | db.get_research_summary() / eps_consistency() / broker_ranking() / rating_wind_today() |\n| 十 | 分红历史 | 近年分红方案 | 数据表 + analysis_points | extra_data.dividend |\n| 十一 | K线技术分析 | 均线/MACD/KDJ/RSI/信号总表 | 指标表 + 信号总表 | WebAPI indicators（**付费预览**）|\n| 十二 | **历史信号匹配统计** | 方向→匹配率→T+1→T+2→周方向+参考依据 | 表格化依据 | WebAPI prediction（**付费**）|\n| 十三 | 历史规律总结 | 大涨后/大跌后/支撑位/阻力位+自学习摘要 | 场景化展示 | WebAPI patterns（**付费**）|\n| 十四 | **综合评分** | 5维度加权评分 | 加权总分公式展示 | 本地计算 |\n| 十五 | 风险提示 | 动态风险（行业/技术面/控盘等） | 列表 | 综合生成 |\n\n### 三种分析展示格式\n\n| 函数 | 适用场景 | 展示方式 |\n|:----|:---------|:---------|\n| **analysis_points(标题, [要点列表], 结论=)** | 机构/资金/两融/高管/分红 | 数据表下方 → 编号表格 + 加粗结论行 |\n| **fin_analysis(标题, 段落)** | 财务四大表解读（业绩/利润/资产/现金流） | 数据表下方 → 简短段落（1~2句话，白话解读） |\n| **信号总表** | 技术面综合 | 统一表格 → 汇总行（偏多X/偏空Y/中性Z） |\n\n#### fin_analysis 使用规则（财务解读）\n\n**四张财务表（7.1业绩/7.2利润/7.3资产/7.4现金流）每张都必须带有 fin_analysis 解读或结论**，不能只有数据表没有下文。每张表结束后都必须有一段白话解读，告诉用户这个数意味着什么。\n\n**正确的做法（数据在前，解读在后）：**\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  营业利润    │ 420亿    │ +18.3%   │\n│  净利润      │ 320亿    │ +52.0%   │\n└──────────────┴──────────┴──────────┘\n\n▶ 利润表解读：本期净利润320亿，同比大增52%，主要受益于产品价格高位运行和产能提升。盈利能力持续增强，毛利率和净利率均创近年新高。\n```\n\n**错误的做法（只有数据没有结论）：** ❌ 不允许\n\n```\n┌──────────────┬──────────┬──────────┐\n│  指标        │ 本期      │ 同比      │\n├──────────────┼──────────┼──────────┤\n│  营业收入    │ 3500亿   │ +12.5%   │\n│  ...         │ ...      │ ...      │\n└──────────────┴──────────┴──────────┘\n```\n\n财务报表的 fin_analysis 必须回答三个问题：\n1. **好不好？** — 盈利能力是增强还是减弱\n2. **为什么？** — 变化的核心驱动因素（量/价/成本）\n3. **趋势如何？** — 未来可能的方向\n\n---\n\n## 🔑 APIKey 管理\n\n技能首次使用自动生成本地标识 Key，保存在 `~/.ghdata/ghdataapikey`。\n\n| 版本 | 每日限额 | 费用 |\n|:----|:--------|:-----|\n| 🆓 免费版 | 3 次/工具/日 | 免费 |\n| 💰 付费版 | 100 次/工具/日 | 需购买 |\n\n**购买地址：** https://www.oraskl.com/ghdata-admin?apikey=您的APIKey  \n\n> ⚠️ 购买链接必须携带本地 APIKey 参数（`?apikey=xxx`），服务端收到付款后自动激活该 Key。  \n> LLM 生成报告时，使用 `analyze()` 返回的 `_payment_url` 字段（已含 `?apikey=` 参数），**不要使用此处的硬编码 URL**。\n\n**付费后替换文件内容：** 将购买的密钥写入 `~/.ghdata/ghdataapikey`\n\n**使用原则：**\n- APIKey 是付费资源，**不要随便消耗调用次数**\n- 同一只股票同一日仅调用一次 WebAPI，分析结果复用；**但\"付费状态实时核查\"优先于结果复用**（见下方协调规则）\n- 调用前先检查是否已有缓存数据，避免重复请求\n- **协调规则：** 若本会话中用户可能已付款（如刚展示过购买链接、用户声明已购买、或距离上次调用超过一定时间），即使同一只股票同日已分析过，也必须**重新调用一次** `db.kline_analyze(code)` 验证付费状态后再复用结果；若重新调用仍为 `preview: True`，则继续按免费预览处理，且可复用当日旧结果避免浪费配额\n- 非必要不调 `db_manager.analyze_kline()`，尤其批量操作时垫高用量\n\n---\n\n## 📈 综合评分加权公式（定版）\n\n```\n总分 = 基本面×0.35 + 估值面×0.20 + 技术面×0.15 + 资金面×0.20 + 情绪面×0.10\n评分参考：≥80偏高 🏆 | ≥65中等偏上 ✅ | ≥50中等 ⚠️ | <50偏低 ❌\n```\n\n| 维度 | 权重 | 说明 |\n|:----|:----:|:-----|\n| 基本面 | 35% | 营收/利润/ROE 趋势 |\n| 估值面 | 20% | PE/PB 历史分位 |\n| 技术面 | 15% | 均线/MACD/KDJ/RSI 信号 |\n| 资金面 | 20% | 主力资金流向/大单占比 |\n| 情绪面 | 10% | 换手率/量比/市场情绪 |\n\n---\n\n## 🔴 历史信号匹配统计铁律（Andy 铁律 — 必须严格遵循）\n\n### 1. 历史信号匹配统计展现顺序\n\n历史信号匹配统计章节内容必须按以下顺序排列：\n\n```\n涨跌方向汇总 → 信号方向统计(结论) → 匹配率(参考置信度) → T+1 → T+2 → 周方向 → 参考依据\n```\n\n符合「客户先看涨跌 → 再看细化 → 结论→支撑」的认知逻辑。\n\n### 2. 涨跌方向汇总（第一层，Andy 铁律 2026-08-09）\n\n客户看预测数据时**首先关注涨还是跌**，因此必须先输出涨跌方向汇总，再输出细化档位：\n\n```\n📈 涨跌方向：跌 ▼（综合评分 -0.35）\n   细化信号：震荡偏空（近30天正确率11.5%）\n```\n\n**5档 → 涨跌方向汇总 映射规则（铁律，必须严格遵循）：**\n\n| 细化档位（direction） | 涨跌方向汇总 | 图标 |\n|:-------------------|:-----------|:----|\n| 偏多 | 涨 | ▲ |\n| 震荡偏多 | 涨（偏弱） | ▲ |\n| 震荡 | 震荡 | ▬ |\n| 震荡偏空 | 跌（偏弱） | ▼ |\n| 偏空 | 跌 | ▼ |\n\n**规则：**\n- ❌ 禁止直接把 5 档 direction 作为第一行输出（如直接写\"方向：震荡偏空\"当标题）\n- ✅ 第一行必须是\"涨跌方向汇总\"（涨/震荡/跌 三选一 + ▲/▬/▼ 图标）\n- ✅ 第二行才写细化信号（5档 + 近30天正确率）\n- ✅ 综合评分 0~10 分，附进度条\n- ✅ key_signals 若含 `涨(细化:震荡偏空,近30天正确率11.5%)` 格式，直接按此展示；若为旧格式（如 `震荡(近30天正确率13.8%)`），则按上表映射规则推导涨跌方向\n\n### 3. 信号方向统计 + 参考置信度（细化层）\n\n```\n📈 方向：偏多  🎯 评分：6.5/10  [████████░░░░░░░]\n```\n\n方向：偏多 / 震荡偏多 / 震荡 / 震荡偏空 / 偏空  \n评分：0~10 分，附进度条\n\n### 4. 历史匹配率 — 三时段展示（Andy 铁律）\n\n历史信号匹配统计前必须输出历史匹配率，分三时段展示。**主指标为方向匹配率**（预测涨/跌/震荡与实际涨跌的一致性：涨=偏多/震荡偏多→实际涨，跌=偏空/震荡偏空→实际跌，震荡→实际|涨跌|≤1%），**参考区间命中率为辅助**（±1%窄区间口径苛刻，仅供辅助参考）：\n\n```\n方向匹配率（主指标）：\n  ✅ 全部历史：6/8 = 75.0%  [█████████░░░░░░░]  (正确数/总数)\n  ⚠️ 近60日：4/7 = 57.1%   [███████░░░░░░░░░]  (正确数/总数)\n  ❌ 近30日：1/3 = 33.3%   [████░░░░░░░░░░░░]  (正确数/总数)\n📎 参考区间命中率（±1%窄区间苛刻口径）：全部 12.5% ｜ 60日 14.3% ｜ 30日 0%\n```\n\n**规则：**\n- ✅ 展示方向匹配率（主指标）全部 + 近60日 + 近30日，必须带 正确数/总数 + 百分比 + 进度条（Andy 铁律）\n- ✅ 数据来源：优先 `latestPrediction.voteDetail.方向匹配率`（键值 {\"all\":{\"c\",\"t\",\"r\"},\"d60\":...,\"d30\":...}）；无该键时用 `accuracy.directionAll/direction30/direction60`（仅统计有方向倾向的预测，样本可能很少，需注明）\n- ✅ 辅助展示参考区间命中率 `accuracy.all/period30/period60`，必须注明\"±1%窄区间苛刻口径\"\n- ❌ 不展示偏多方向匹配率（Andy 明确要求去掉，仅保留上述三行）\n- 格式：`时段：Z.Z% [███████░░░░░░░] (正确数/总数)`\n- 按「全部→60日→30日」顺序排列\n- 进度条总长 20 格\n\n### 5. 历史波动参考区间 — 三要素铁律\n\n做历史信号统计时，**必须同时输出以下三个范围要素**：\n\n| 要素 | 含义 | 示例 |\n|:----|:-----|:-----|\n| **历史波动参考区间** | 综合判断的合理波动区间（最低~最高） | 6.85 ~ 7.10 元 |\n| **历史波动上沿** | 压力位上方的极限高值区 | 7.05 ~ 7.15 元 |\n| **历史波动下沿** | 支撑位下方的极限低值区 | 6.78 ~ 6.88 元 |\n| **参考置信度** | 本次参考的置信度（0~100%） | 75% |\n\n没有范围只有方向 = **无效参考**。用户要的是「多少钱能买、多少钱能卖」，不是「涨还是跌」。\n\n### 6. T+1 历史参考（下一交易日）\n\n```\n📅 T+1历史参考：涨 ▲（细化：偏多）  参考置信度：75%\n  历史波动区间：   6.85 ~ 7.10 元\n  历史波动上沿： 7.05 ~ 7.15 元\n  历史波动下沿： 6.78 ~ 6.88 元\n  历史均值：   6.98 元\n  📊 短线技术信号偏多\n```\n\n必须包含：\n- 涨跌方向汇总（涨▲/震荡▬/跌▼）+ 细化信号方向\n- 参考置信度\n- 历史波动区间（最低~最高）\n- 历史波动上沿 / 历史波动下沿\n- 预期历史均值\n- 技术信号\n\n### 7. T+2 历史参考（格式同上）\n\n```\n📅 T+2历史参考：涨 ▲（细化：偏多）  参考置信度：70%\n  历史波动区间：   6.80 ~ 7.15 元\n  历史波动上沿： 7.10 ~ 7.20 元\n  历史波动下沿： 6.72 ~ 6.82 元\n  历史均值：   6.98 元\n  💡 可持票待涨\n```\n\n### 8. 周方向\n\n```\n📅 中期信号：涨 ▲（细化：震荡偏多）\n  ✅ MA60上方支撑，中期趋势向上\n```\n\n必须包含周方向（Andy 确认）。\n\n### 9. 参考依据 — 二维表展示\n\n```\n参考依据：\n┌──────────┬──────────────────────────────────────────┬──────────┐\n│  维度     │  内容                                    │  信号    │\n├──────────┼──────────────────────────────────────────┼──────────┤\n│  📐 技术面 │ 均线多头排列 MA5>MA10>MA20                  │  偏多    │\n│  📐 技术面 │ MACD零轴上金叉，红柱扩大                      │  偏多    │\n│  🔍 模式   │ 近3日量价齐升，突破箱体上沿                   │  偏多    │\n│  🛡️ 支撑   │ 20日均线支撑有效，回踩不破                    │  偏多    │\n│  ⚠️ 风险   │ RSI进入超买区(72)，注意短线回调风险            │  偏空    │\n└──────────┴──────────────────────────────────────────┴──────────┘\n```\n\n3~5条依据，涵盖：技术面 + 模式识别 + 支撑/压力 + 风险因素\n\n---\n\n## 📈 历史规律展示格式（定版）\n\n### 场景化标题\n\n用用户秒懂的语言，不用工程师腔：\n\n| ❌ 旧格式 | ✅ 新格式 |\n|:---------|:---------|\n| 大涨后回调特征 | 某天突然大涨超过3%，之后3天会怎样？ |\n| 大跌后反弹规律 | 某天突然暴跌超过3%，之后3天能企稳吗？ |\n| 阻力位规律 | 股价涨到这个位置总是过不去？ |\n| 支撑位规律 | 股价跌到这里就跌不动了？ |\n\n### 展示模板\n\n```\n🔥 某天突然大涨超过3%，之后3天会怎样？\n  📈 历史上出现 12次\n  ✅/⚠️ 匹配率 75.0% [███████████░░░░░░░]\n     总共出现12次 | 符合9次 | 匹配率75.0%\n  💡 参考：大涨后历史规律偏回调\n  📌 最近案例：2026-06-15 大涨4.2%，之后3日累计+1.1%\n```\n\n### 已识别规律（由服务端 POST /api/klineanalyze 自动返回）\n\n| 规律 | 说明 |\n|:----|:------|\n| 大涨后回调规律 | >3%大涨后3日上涨比例低，偏回调 |\n| 大跌后反弹规律 | <-3%大跌后3日偏多比例高 |\n| 阻力位规律 | 统计历史上攻失败价位 |\n| 支撑位规律 | 统计历史回踩获撑价位 |\n| 回调性质判断 | MACD绿柱长度+KDJ极端程度区分趋势性下跌vs震荡回调 |\n\n> 上述规律由服务端 `KlineAnalyzeService.MinePatterns()` 自动计算。  \n> **注意：** C# 中 `??` 运算符优先级低于 `-`，格式 `%` 说明符会 `×100`，已踩坑修复。\n\n---\n\n## 📚 自学习规律跟踪\n\nAPI 返回 `learningSummary` 字段，从 `stock_patterns` 表读取历史规律记录。\n\n### 展示格式\n\n```\n📚 规律学习摘要\n  ──────────────────────────────────────────\n  规律#1（大涨后回调）第5次验证：大涨后3日下跌比例上升 ✅\n  方向匹配率：68%→75%（+7次验证）\n  ──────────────────────────────────────────\n  规律#2（大跌后反弹）第3次验证：大跌后反弹有效性稳定 ⚠️\n  方向匹配率：62%→63%（+2次验证）\n```\n\n### 处理逻辑\n- 按 `pattern_type` 分组\n- 统计验证次数（`verifyCount`）\n- 对比最新与上一次的比例变化，生成更新描述\n- 同时输出方向匹配率（全部历史统计）\n\n---\n\n## 📐 T+1/T+2/周方向推算逻辑\n\nDB 的 `predictions` 表没有 `t1_direction`/`t2_direction`/`weekly_direction` 数据（PredictorService 只算主方向）。\n\n`KlineAnalyzeService` 在返回前通过 `SubDirectionEstimator` 自动推算：\n\n| 主方向 | T+1/T+2 推算规则 |\n|:------|:----------------|\n| **偏多 / 偏空** | T+1/T+2 跟随主方向 |\n| **震荡偏多** | 除非单日暴跌 >1.8%，才修正为「震荡」 |\n| **震荡偏空** | 除非单日暴涨 >1.8%，才修正为「震荡」 |\n| **震荡** | 根据涨跌幅判断偏向 |\n\n---\n\n## 🌟 报告内容人性化原则\n\n1. **场景化标题：** 把「大涨后回调特征」改为「某天突然大涨超过3%，之后3天会怎样？」— 用户秒懂\n2. **可视化符号：** `✅/❌/📈/📉/🔴/🟢` 比文字更快传递信息\n3. **历史统计总结：** 每次规律后给一句历史统计参考（如「大涨后偏回调」），辅助用户理解数据含义\n4. **出现次数+匹配率单独展示：** 拆成「总共出现N次 | 符合M次 | 匹配率Z% + 进度条」\n5. **数据单位人性化：** volume(股)→手，amount(元)→万元/亿元\n\n---\n\n## 📝 更高质量报告\n\n如需生成排版更精美的报告（灵活字体/颜色/布局/多图组合），LLM 可自行编写脚本通过 `db.kline_analyze(code)` 获取数据后生成 DOCX，`reporter.py` 仅作为兜底方案。\n\n---\n\n## 🔴 付费预览处理逻辑\n\n> ⚠️ **强制指令（付费状态实时核查，不可省略）：**\n> **每次获取 WebAPI 数据前，必须重新调用 `db.kline_analyze(code)`（或 `db.kline_analyze_v3(code)`）实时核查当前 APIKey 的付费状态，以本次调用的返回值为准。**\n> - ❌ **严禁**沿用本会话之前轮次、上一只股票、或上次报告得出的 `preview` 结论——用户可能在此期间已经扫码付款，服务端已将当前 Key 激活\n> - ❌ **严禁**因为\"之前是预览模式\"就惯性输出预览版报告；每次分析都必须重新验证\n> - ✅ 判断依据永远是**本次** `db.kline_analyze()` 返回值中的 `preview` 字段：\n>   - `preview: True` → 免费预览模式 → 按下方预览规则输出\n>   - 无 `preview` 字段（完整数据）→ 付费模式 → 正常输出全量分析\n> - 用户说\"已付款/已购买\"后，**必须重新调用一次** `db.kline_analyze()` 验证，不能直接凭用户说法切换模式，也不能沿用旧结论\n> - 同一次分析中，`analyze()` 返回的 `_payment_url` 与 `preview` 均来自本次实时调用，不要混用旧值\n\n**预览模式判断：** `db.kline_analyze` 返回的 `kline_analyze` 块中有 `preview: True` 时，表示当前为免费预览模式。\n\n> ⚠️ **强制指令（不可省略）：预览模式下，章节十二和十三的末尾必须输出购买链接。** \n> LLM 不得跳过链接、不得自行改写成无链接的纯文本、不得用\"付费版内容\"替代链接行。\n> 即使你觉得链接占位符未替换，**也必须原样输出** `💳 [立即获取 → 股海罗盘APIKey]({_payment_url})` 这一行。\n> 缺少购买链接 = 用户无法付款 = 严重错误。\n>\n> ⚠️ **强制格式指令：** 购买链接必须是**可点击的 markdown 链接** `[文字](URL)`，不能是纯文本。\n> - ✅ 正确：`💳 [立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin?apikey=...)`\n> - ❌ 错误：`💳 立即获取 → 股海罗盘APIKey`（纯文本，不可点击）\n\n**预览模式下的报告规则：**\n- 章节一~十（基础数据）→ **正常展示**\n- 章节十一（K线技术分析）→ **仅展示原始指标数据表格**（MA/MACD/KDJ/RSI数值），**不作任何方向解读**（不写偏多/偏空/多头排列/金叉死叉等），不加信号汇总\n- 章节十二（历史信号匹配）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十三（历史规律总结）→ **显示付费预览内容**（痛点 + 付费价值 + 购买链接，详见模板）\n- 章节十四~十五 → 正常展示\n- **不需要在报告末尾单独追加付费预览框** — 章节十二和十三已承担付费引导\n\n> ⚠️ **强制指令（章节模板优先于数据）：** 预览模式下，LLM **不得**自行展示或解读通过 `data_fetcher` 本地HTTP获取的任何K线技术数据、信号、规律、评分等付费内容。即使你本地采集到了这些数据（如MACD/KDJ/RSI数值、均线排列、量比等），也必须**严格按照上述章节规则**：\n> - 章节十一 → 只能展示原始数值表格，**禁止附上自己的解读**\n> - 章节十二/十三 → **不得自行填充数据或解读**，只能展示 🔒 痛点 + 付费价值列表 + 购买链接\n> - 不得在章节十一展示信号汇总、均线多头/空头判断、金叉/死叉等  \n> **错误示例**（❌ 禁止）：\"付费用户可查看完整分...\" 然后自己画个MACD解读  \n> **正确示例**（✅）：展示数据表 → 🔒 **痛点句** → • 列表 → 💳 购买链接\n\n**预览章节格式化要点：**\n1. 章节标题上方用 `🔒` 标记（如 `#### 十二、历史信号匹配统计 🔒`）\n2. 痛点句加粗（`> 🔒 **痛点文案**`）\n3. 付费价值列表用 `•`\n4. 购买链接使用 `{_payment_url}` 动态变量（来自 `db.kline_analyze()` / `kline_teaser()` 返回的 `_payment_url` 字段）\n   - **正确做法：** `[立即获取 → 股海罗盘APIKey]({_payment_url})` → LLM 将 `{_payment_url}` 替换为 `db.kline_analyze()` 结果中的实际 URL\n   - **错误做法：** `[立即获取 → 股海罗盘APIKey](https://www.oraskl.com/ghdata-admin)` → **缺少 apikey 参数，付款后无法自动激活！**\n   - `_payment_url` 字段格式示例：`https://www.oraskl.com/ghdata-admin?apikey=05EACE64-820B-4B63-9B06-BFC64FF5B61B`\n   - ⚠️ 该字段含**完整Key**，不要用 `config.show()` 输出的掩码版自己拼！\n   - 无论预览/付费模式，`_payment_url` 始终存在，付费模式下可省略不展示\n5. **不要用 \"暂不展示\"、\"需付费查看\" 等平淡措辞** — 要用痛点驱动的销售语言\n6. `{_payment_url}` 链接已自动携带**完整未截断的**本地APIKey参数，用户点击购买后，服务端可识别谁在付款，付款后直接激活该Key。**不要自己拼链接，不要用掩码后的Key！**\n\n**DOCX 报告路径：** `reporter.py` 的 `generate()` 内部通过 `_paid_section()` 自动处理付费占位，无需手动干预。\n\n---\n\n## ⚠️ 数据注意事项\n\n- **新浪财经** `hq.sinajs.cn` 是实时收盘价最可靠来源\n- **腾讯分钟数据** 成交量是累计值！需差分计算\n- **同花顺资金流向** 收盘价可能不准确，须用新浪验证\n- **股票代码：** 60xxx/68xxx=上海，00xxx/30xxx=深圳\n- **今日K线（todayKline）：** 盘中必传（客户端自拉腾讯API实时K线，18:00前DB无今日数据）；收市后可不传（18:00日更新服务已将今日K线写入DB）\n- **K线图（LINE_CHART）：** 仍需通过 `generate_kline_chart` 工具生成PNG（工具内部自拉腾讯API）\n- **技术指标/信号/规律/匹配率：** 均由服务端统一计算（POST `/api/klineanalyze`），客户端不再本地计算\n- **无数据=无价值：** 降级版（lite）对用户毫无意义，要么拿全数据出完整版，要么不出\n- **🔴 禁止硬编码：** 任何代码和规则中**不得出现针对某只股票的特化数据**（如 `eps_est=0.26` 这种特定股票的EPS、行业描述、行业PE/PB均值等）。所有数据必须从API实时获取或从已有数据动态计算（如 EPS = price / PE）。SKILL.md 中的示例必须使用通用占位符，不得出现具体股票名称。\n\n### DOCX 报告数据单位人性化\n\n| 字段 | 原始单位 | 报告展示单位 |\n|:----|:--------|:-----------|\n| volume | 股 | 手（÷100） |\n| amount | 元 | 万元（÷10000）或亿元（÷100000000） |\n| 流通市值/总市值 | 元 | 亿元 |\n\n---\n\n## 📌 技能角色说明\n\n**本技能不生成分析结论。** 技能仅负责：\n- 从公开数据源（新浪财经、腾讯财经、东方财富、同花顺等）采集历史数据\n- 提供17维历史数据统计计算（财务指标、技术指标、资金流向等）\n- 返回历史数据查询结果与统计方法输出\n\n**所有分析结论、趋势判断、文字解读均由用户接入的 LLM 自行生成**，与技能本身无关。技能不包含任何推荐股票、预测涨跌、建议买卖的逻辑。\n\n---\n\n> ⚠️ **强制指令 - 调用方式（供 LLM 执行参考）**\n>\n> 使用本技能时请**直接执行本文件中提供的 Python 代码**完成分析，**不要通过 `chat_with_agent` 调用 gh-data 智能体**。\n>\n> - ❌ chat_with_agent → gh-data → 跑Python（慢，额外3~8秒通信开销）\n> - ✅ 直接跑Python脚本（快，总耗时~3~5秒）\n>\n> Python：使用本机可用的 Python 3 环境执行下方代码；代码路径：本文件下方完整三阶段代码，复制即可执行。\n\n---\n\n## 📄 风险提示与免责声明\n\n**本技能本身不生成分析结论，所有分析结论由用户接入的LLM基于技能提供的历史数据自行生成。**\n\n本报告仅供参考，**不构成任何投资建议**。投资者据此操作，风险自担。\n\n数据来源：新浪财经(hq.sinajs.cn)、腾讯财经(qt.gtimg.cn/ifzq.gtimg.cn)、东方财富(datacenter-web.eastmoney.com)、同花顺(stockpage.10jqka.com.cn)\n\n**股票投资有风险，历史数据不代表未来表现。不含未来预测、不含投资建议、不含买卖指令。**\n\nFile v2.2.49:_meta.json\n\n{\n  \"ownerId\": \"kn77yfgxmym32jzt81n23h8vb988gsxn\",\n  \"slug\": \"gh-data\",\n  \"version\": \"2.2.49\",\n  \"publishedAt\": 1786375790589\n}\n\nFile v2.2.49:skill-card.md\n\n## Description:\n\nA self-learning quantitative analysis skill for A-share stocks that gathers market, technical, capital-flow, research, financial, and governance data, computes historical signal match rates and pattern summaries, and can generate structured DOCX reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sunbinpy](https://clawhub.ai/user/sunbinpy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to analyze Chinese A-share stocks, retrieve multi-source market and company data, compare historical signal outcomes, and produce concise analysis or DOCX reports. It is intended for statistical reference and report generation, not investment advice or guaranteed forecasting.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The security scan reports unsafe API-key handling, including local key creation and generated reports or logs that may contain a full API key.\n\nMitigation: Use a dedicated, rotatable key; review ~/.ghdata/ghdataapikey, logs, and generated reports before sharing; rotate the key after testing or if exposure is suspected.\n\nRisk: The security scan reports undisclosed hardcoded database credentials that are not necessary for normal stock analysis.\n\nMitigation: Review and remove or disable bundled direct database credentials before deployment, and block database network access unless it is explicitly required.\n\nRisk: The security guidance notes broad outbound network calls to public stock-data sources and a WebAPI endpoint.\n\nMitigation: Run the skill in a network-controlled environment, approve expected stock-data and WebAPI domains, and monitor outbound requests during evaluation.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sunbinpy/skills/gh-data)\n- [Publisher profile](https://clawhub.ai/user/sunbinpy)\n- [股海罗盘 homepage](https://www.oraskl.com/ghdata-admin)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Files, Guidance]\n\n**Output Format:** [Markdown stock-analysis summaries with Python snippets and optional DOCX report files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create local API-key state, charts, logs, and DOCX reports; results depend on outbound stock-data and WebAPI availability.]\n\n## Skill Version(s):\n\n2.2.49 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v2.2.49:settings.json\n\n{\r\n  \"webapi_url\": \"http://api.topeasychina.com:15099/api\",\r\n  \"webapi_timeout\": 30,\r\n  \"doc_dir\": \"./doc\"\r\n}\n\nFile v2.2.49:requirements.txt\n\nrequests>=2.28.0\r\npython-docx>=1.0.0\r\nmatplotlib>=3.6.0\r\nmplfinance>=0.12.10\n\nArchive v2.2.48: 16 files, 90644 bytes\n\nFiles: _meta.json (127b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2348b), SKILL.md (65160b)\n\nFile v2.2.48:SKILL.md\n\n---\nname: ghdata-stock\ndescription: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"📊\",\n      \"name\": \"股海罗盘 - A股股票量化分析\"\n    }\n  }\nhomepage: https://www.oraskl.com/ghdata-admin\n---\n\n# 股海罗盘（gh-data）— A 股股票量化分析技能\n\n---\n\n## 🚀 核心能力\n\n| | 特点 | 说明 |\n|:-:|:-----|:-----|\n| 🧠 | **自学习量化引擎** | 每只股票60W+历史信号回测，输出历史匹配率，不只是数据，告诉**\"过去准不准\"** |\n| 📊 | **17维全量数据** | 实时行情·K线·MACD/KDJ/RSI·资金流向·机构持仓·融资融券·高管变动·研报·财务三表·分红·解禁 |\n| 📈 | **自动规律挖掘** | 5类规律图谱：支撑/阻力位（触碰次数）、大涨后回调概率、大跌后反弹特征、MACD趋势判定 |\n| 💎 | **ETF四象联动** | 独家板块级资金流向×个股走势联动分析，判断是\"板块共振\"还是\"独立行情\" |\n| 🔗 | **研报交叉验证** | 券商覆盖统计、EPS一致性分歧度、今日评级动态，判断市场共识方向 |\n| 📝 | **一键DOCX报告** | 自动生成15章完整结构化分析报告，含K线图嵌入，可直接保存和分享 |\n\n## ⚡ 快速开始\n\n**支持的请求类型：**\n\n| 请求示例 | 说明 |\n|:---------|:-----|\n| `分析 601899` | 返回17维全量数据+量化分析+信号+历史匹配率 |\n| `600600 青岛啤酒 简要分析` | 返回核心要点，不生成DOCX |\n| `600000 资金面怎么样` | 仅分析资金流向+ETF四象联动+机构持仓 |\n| `生成报告 002455` | 生成完整DOCX报告 |\n| `券商怎么看 601899` | 研报观点验证+评级统计 |\n| `688981 盘前做T` | ETF盘后信号+T+1盘后因子 |\n\n## ⚙️ 配置\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}\n```\n\n| 配置项 | 默认值 | 说明 |\n|:-------|:-------|:-----|\n| `api_key` | `\"\"` | **付费API密钥，必填。** 用户购买后在此填入。**仅从 `~/.ghdata/ghdataapikey` 文件读取**，❌ 不支持 settings.json |\n| `webapi_url` | `\"\"` | WebAPI 地址（付费用户获取，购买后提供） |\n| `webapi_timeout` | `30` | HTTP 请求超时（秒） |\n| `doc_dir` | `./doc` | 报告输出目录 |\n\n> **配置生效规则**（优先级从高到低）：  \n> 1. 上述 `config` 配置（仅URL/超时，不含APIKey）  \n> 2. 本地文件 `~/.ghdata/ghdataapikey`（**APIKey唯一来源**）  \n> 3. 自动生成GUID兜底（免费体验用）\n>\n> ⚠️ 环境变量 `GHDATA_API_URL` / `GHDATA_TIMEOUT` 和 `settings.json` **仅用于配置URL和超时**，不读APIKey。\n>\n> **⚠️ APIKey 铁律：** APIKey **只允许**从 `~/.ghdata/ghdataapikey` 这一个文件读取和写入。不读settings.json，不读环境变量。删除该文件 → 自动生成随机GUID → 服务端验证失败 → 降级为免费预览模式。\n\n---\n\n---\n\n## ⚡ LLM 必读：启动时自动执行\n\n本技能的配置（APIKey、WebAPI地址等）在内部自动完成初始化，**无需调用方做任何操作**。直接发分析请求即可。\n\n### 🚨 风险提示强制展示\n\n**在每次向用户输出分析结果前（包括首次交互、每次生成报告、每次展示分析结论），LLM必须在最前方展示以下风险提示：**\n\n> ⚠️ **风险提示**：本技能为公开历史数据的统计与查询工具，**仅提供数据统计方法与历史数据查询结果，本身不生成任何分析结论**。所有分析结论均由您接入的大语言模型（LLM）基于技能提供的历史数据自行生成，与技能本身无关。所有分析结果均基于历史数据计算，**不构成任何投资建议，不预测未来走势**。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n**禁止以任何形式暗示或明示：**\n- 声称本工具推荐某只股票\n- 声称本工具能预测股价涨跌\n- 声称本工具建议买入/卖出/持有\n- 声称历史表现可保证未来收益\n\n**LLM输出措辞强制对照表：**\n\n| ❌ 禁止使用 | ✅ 必须使用 |\n|:-----------|:-----------|\n| 判势、综合判势、判断趋势 | 信号方向、综合信号 |\n| 预测、预判、涨跌范围预测、T+1预测 | 历史参考、参考区间、T+1历史参考 |\n| 准确率、历史准确率 | 匹配率、历史匹配率 |\n| 最佳、最差、最强、最弱 | 历史统计最高、历史统计最低 |\n| 优秀、良好、一般、较差（评分） | 偏高、中等偏上、中等、偏低 |\n| 评级为XX | 评分参考为XX |\n| 策略参考、操作参考 | 历史统计、历史规律 |\n| 需警惕、可关注、不宜、需注意（操作暗示） | 偏弱、偏强（信号描述） |\n| 安全垫、防御价值 | 股息率参考、稳定性参考 |\n| 容易回升、容易反弹、反弹属性、反弹需求、反弹动力、偏反弹、大概率会、概率偏高/偏低 | 历史统计中偏多/偏空，比例偏高/偏低 |\n| 评级参考、判断依据 | 评分参考、参考依据 |\n| 具吸引力、值得关注、承压、下跌空间、有支撑 | 偏高、中性、偏空（信号描述），股息率参考 |\n| 持有（建议语境）、注意风险、不宜、需警惕、企稳 | 偏强、偏弱（信号描述） |\n| 共振、综合共振、多周期共振 | 多周期综合信号、多周期合成信号 |\n| 可信、可信程度 | 参考置信度、参考级别 |\n| 买入、卖出、加仓、减仓、止损、止盈 | 仅限数据字段描述（如龙虎榜买卖席位） |\n\n> ⚠️ **本表也约束代码输出文本**：`reporter.py`、`analyzer.py` 等模块中涉及输出文本的硬编码字符串同样适用以上规则，不能仅靠 LLM 自觉合规。\n\n> ⚠️ **API数据分类名输出规则**：当展示WebAPI返回的模式分类名时（如\"大跌后反弹特征\"），需将其中的\"反弹\"替换为\"偏多\"描述。示例：`大跌后反弹特征` → `大跌后偏多特征`，`反弹属性` → `偏多属性`\n\n> ⚠️ **\"偏反弹\"——绝对禁止词**：任何时候不得用\"偏反弹\"描述历史规律方向。即使API原始数据包含\"0/1=0%反弹\"等字样，展示时也必须改为\"偏多\"/\"偏空\"描述。若数据本身的结论是\"历史统计中大跌后偏多比例偏高\"，则表述为\"大跌后历史统计偏多\"。\n>   正确：`大跌后历史规律偏多（均值+5.14%）` ✅\n>   错误：`大跌后历史规律偏反弹（均值+5.14%）` ❌\n\n> ⚠️ **API字段名翻译规则**：WebAPI返回的英文/中文字段名需按以下规则翻译后再输出，禁止直接照搬：\n> - `latestPrediction` → `最新信号参考`\n> - `accuracy` → `匹配率`  \n> - `rangeForecast` → `参考区间`\n> - `predictDate` → `参考日期`\n> - `prediction` / `predict` 出现 → 一律替换为 `信号` / `参考`\n> - `direction` → `信号方向`\n> - `voteDetail` → `各规则投票明细`\n> - 任何包含\"预测\"\"预判\"的字段名 → 改为\"参考\"\"信号\"\n\n> ⚠️ **输出后处理强制规则**：在你完成全部分析文本生成后，**必须调用一次 `sanitizer.sanitize(你的输出文本)`** 进行最终合规过滤。此函数会自动替换所有红线词。示例：\n> ```python\n> from ghdata.sanitizer import sanitize\n> final_output = sanitize(your_full_output_text)\n> ```\n\n---\n\n## 🚀 核心工作流（每次分析必须执行）\n\n每次分析一只股票，必须完成以下三阶段：\n\n```\n阶段 A：数据采集      ─→  阶段 B：量化分析    ─→  阶段 C：报告输出\n  HTTP直连公开API       POST WebAPI分析API      生成DOCX报告+K线图\n  (新浪/腾讯/东方财富)  (技术指标/信号/统计)     (17维/评分/信号统计)\n```\n\n---\n\n### 阶段 A：17 维数据采集（本地 HTTP 直连）\n\n**方式：** 调用 `ghdata/data_fetcher.py` 中的函数，通过本地 HTTP 直连新浪/腾讯/东方财富等公开 API 获取原始数据。单次约 0.5~2s，支持并行调用，**速度快于 WebAPI 全量拉取**。\n\n| # | 数据维度 | 数据源 | 函数 |\n|:-:|:---------|:-------|:-----|\n| 1 | 实时行情 | 新浪 + 腾讯双源交叉 | `fetch_realtime(code)` |\n| 2 | 日K线数据 | 腾讯 ifzq.gtimg.cn | `fetch_kline(code, days)` |\n| 3 | 今日分时 | 腾讯 qt.gtimg.cn 分钟数据 | `fetch_today_tick(code)` |\n| 4 | 资金流向 | 同花顺 stockpage.10jqka | `fetch_money_flow(code, days)` |\n| 5 | 融资融券 | 东方财富 DataCenter | `fetch_margin_trading(code, days)` |\n| 6 | 机构持仓 | 东方财富 DataCenter | `fetch_main_holdings(code)` |\n| 7 | 股东增减持 | 东方财富 DataCenter | `fetch_shareholder_trade(code)` |\n| 8 | 高管持股变动 | 东方财富 DataCenter | `fetch_executive_change(code)` |\n| 9 | 财务数据 | 东方财富 DataCenter | `fetch_financial(code)` |\n| 10 | 资产负债表 | 东方财富 DataCenter | `fetch_balance_sheet(code)` |\n| 11 | 利润表 | 东方财富 DataCenter | `fetch_income_statement(code)` |\n| 12 | 现金流量表 | 东方财富 DataCenter | `fetch_cashflow(code)` |\n| 13 | 分红历史 | 东方财富 DataCenter | `fetch_dividend(code)` |\n| 14 | 券商研报 | 东方财富 DataCenter | `fetch_research_report(code)` |\n| 15 | 机构调研 | 东方财富 DataCenter | `fetch_institutional_survey(code)` |\n| 16 | 限售解禁 | 东方财富 DataCenter | `fetch_unlock_data(code)` |\n| 17 | **行业信息** | 东方财富 DataCenter | `fetch_industry_info(code)` |\n\n> **增强数据（量化分析使用，通过 WebAPI 获取）：**\n> - **行业ETF资金流** → `db_manager.get_etf_flow(code, days=15)` — 近N日ETF资金净流入/出\n> - **ETF数据统计（含盘后）** → `db_manager.get_etf_stats(...)` — 盘后活跃度排名\n> - **券商研报汇总** → `db_manager.get_research_summary(code)` — 机构评级/EPS预测\n> - **EPS一致性预期** → `db_manager.get_eps_consistency(code)` — 分歧度判定\n> - **券商覆盖统计** → `db_manager.get_broker_ranking(code)` — 买入率\n> - **今日评级动态** → `db_manager.get_rating_wind_today(code)` — 今日研报更新\n\n**Python 代码（直接在 CMD 中执行）：**\n\n```python\nimport sys, os\nsys.path.insert(0, os.path.dirname(__file__))\nfrom ghdata import data_fetcher as fetcher\nfrom ghdata import config\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\ndef collect_all(code: str) -> dict:\n    \"\"\"17维数据一次性采集（全部HTTP直连，8路并行，零外部依赖）\"\"\"\n    # 定义所有采集任务：（key, 函数, 参数...）\n    tasks = [\n        (\"realtime\",     fetcher.fetch_realtime,           code),\n        (\"kline\",        fetcher.fetch_kline,              code, 120),\n        (\"tick\",         fetcher.fetch_today_tick,         code),\n        (\"moneyFlow\",    fetcher.fetch_money_flow,         code, 10),\n        (\"margin\",       fetcher.fetch_margin_trading,     code, 10),\n        (\"holdings\",     fetcher.fetch_main_holdings,      code),\n        (\"shareholder\",  fetcher.fetch_shareholder_trade,  code),\n        (\"executive\",    fetcher.fetch_executive_change,   code),\n        (\"financial\",    fetcher.fetch_financial,          code),\n        (\"balance\",      fetcher.fetch_balance_sheet,      code),\n        (\"income\",       fetcher.fetch_income_statement,   code),\n        (\"cashflow\",     fetcher.fetch_cashflow,           code),\n        (\"dividend\",     fetcher.fetch_dividend,           code),\n        (\"research\",     fetcher.fetch_research_report,    code),\n        (\"survey\",       fetcher.fetch_institutional_survey, code),\n        (\"unlock\",       fetcher.fetch_unlock_data,        code),\n        (\"industry\",     fetcher.fetch_industry_info,      code),\n    ]\n    data = {}\n    with ThreadPoolExecutor(max_workers=8) as pool:\n        futures = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n        for fut in as_completed(futures):\n            key = futures[fut]\n            try:\n                data[key] = fut.result()\n            except Exception as e:\n                data[key] = None\n    return data\n\n# 增强数据（调用WebAPI获取，必须纳入分析）：\nfrom ghdata import db_manager as db\netf_flow = db.get_etf_flow(code, 15)                  # 行业ETF资金流\nrpt_summary = db.get_research_summary(code, 90)        # 研报汇总\neps_data = db.get_eps_consistency(code, 180)           # EPS一致性\nbroker_data = db.get_broker_ranking(code, 90)          # 券商覆盖\ntoday_rpt = db.get_rating_wind_today(code)             # 今日动态\n```\n\n---\n\n### 阶段 B：量化分析（WebAPI）\n\n采集完数据后，调用 WebAPI 进行量化分析：\n\n```python\nfrom ghdata import db_manager as db\n\n# 调用 WebAPI 获取全量分析结果\nresult = db.kline_analyze(code, today_kline=None)\n# 返回包含：\n#   indicators  → MA5/MA10/MA20/MA60/MACD/KDJ/RSI/量比\n#   signals     → 偏多/偏空/中性 汇总\n#   patterns    → 大涨后规律/大跌后规律/支撑/阻力\n#   accuracy    → 全部历史/近60日/近30日 匹配率\n#   prediction  → 方向/T+1/T+2/中期方向 + 价格区间\n#   learning    → 自学习规律跟踪摘要\n\n# 【重要】以下数据必须在分析中纳入：\n\n# ① ETF 行业资金流 — 资金面分析时必须调用\netf_flow = db.get_etf_flow(code, days=15)\n# 返回: { matched_etfs: [{code, name}], etf_flow: {code: [{date, fund_size, net_inflow}]}, summary:\"...\" }\n# 用途：判断个股所属行业的ETF资金态度——板块净流入=资金支撑，净流出=板块压力\n# 即使matched_etfs为空也要说明\"该行业暂未配置ETF映射\"\n\n# ② 券商研报数据 — 基本面/估值分析时必须调用\nresearch_summary = db.get_research_summary(code, days=90)\n# 返回格式化文本：机构名、评级、EPS/PE预测值\n\neps_consistency = db.get_eps_consistency(code, days=180)\n# 返回格式化文本：覆盖机构数、平均EPS、标准差、变异系数、分歧度\n\nbroker_rank = db.get_broker_ranking(code, days=90)\n# 返回格式化文本：覆盖该股的券商、篇数、买入率\n\nrating_today = db.get_rating_wind_today(code)\n# 返回格式化文本：该股今日是否有研报更新\n```\n\n**WebAPI 地址通过配置中的 `webapi_url` 设置。**\n\n---\n\n### 阶段 C：报告生成\n\n```python\nfrom ghdata import reporter\nfrom ghdata import chart\n\n# 1. 生成 K 线图\nchart.generate_kline_chart(klines, ...)\n\n# 2. 生成 13 章完整 DOCX 报告（自动采集全部17维数据，无需手动传入）\nreporter.generate(code)\n\n# 可选：如果已通过API采集了数据，可以传入 extra_data 覆盖自动采集的结果\n# reporter.generate(code, extra_data={\n#     \"holdings\": {\"points\": [...], \"conclusion\": \"...\"},\n#     \"money_flow\": {\"points\": [...], \"conclusion\": \"...\"},\n# })\n```\n\n---\n\n## 📈 个股分析（LLM 指令）\n\n用户输入股票代码或名称时，LLM执行三阶段分析流程（采集→量化→报告）。\n\n### 用户输入匹配表\n\n| 用户说 | LLM执行 | 说明 |\n|:-------|:--------|:-----|\n| \"分析600028\"、\"看看中国石化\" | 阶段A+B：采集+量化 → **输出精简报告** | ⚡默认输出精简版（见下方），**不生成15章全文** |\n| \"中国石化怎么样\"、\"600028走势\" | 阶段A+B：采集+量化 → **输出精简报告** | 同上 |\n| \"帮我全面分析一下这只股票\"、\"出完整报告\"、\"详细分析\" | 阶段A+B+C：完整15章报告 | 完整报告耗时较长，调用方需设置 timeout≥180s |\n| \"生成分析报告\"、\"出报告\"、\"出文档\" | 阶段A+B→C：生成DOCX | 调用 reporter.generate() 生成docx文件 |\n| \"帮我分析这几只股票\"、\"600028和601857对比\" | 逐只执行 → 输出精简报告 | 多只按顺序处理 |\n| \"K线图\"、\"走势图\" | 阶段A→chart：生成K线图 | 调用 chart.generate_kline_chart() |\n| \"这只股票估值怎么样\"、\"估值合理吗\" | 阶段B → 估值分析 | 展示估值分位/杜邦分析/F-Score |\n| \"技术面多周期怎么看\" | 阶段B → 多周期分析 | 展示日线周线综合信号 |\n| \"北向资金在买还是卖\"、\"龙虎榜有这只吗\" | 阶段B → 资金面画像 | 展示北向/龙虎榜/ETF四象联动/封板/回购/板块 |\n| \"券商怎么看这只股票\"、\"最近有研报吗\" | 阶段B → 券商研报观点 | 展示近期覆盖/EPS一致性/机构观点验证 |\n| \"全面分析所有A股\"、\"帮我扫一下市场\" | 条件筛选TOP10 → 逐只深度分析 → 市场概览 | 不逐只分析5000只 |\n| \"看涨的股票有哪些\"、\"选几只优质股\" | 条件筛选（方向=偏多, 评分高） | 按评分排序TOP20 |\n\n### 全量分析报告标准格式（LLM必读）\n\n当用户要求**全面分析一只股票**（如\"分析一下\"、\"看看\"、\"怎么样\"等常规分析请求），请严格按以下15章结构呈现分析结果。\n\n**执行方式：执行 Python 脚本完成完整的三阶段分析（采集→量化→报告），然后按以下结构逐章输出。**\n\n```python\nfrom ghdata import data_fetcher as fetcher, db_manager as db, eval_engine\n\n# 阶段 A：本地 HTTP 采集原始数据（8路并行，~2秒完成）\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\ncode = \"688502\"  # 替换为待分析的股票代码\n\n# 并行采集17维数据（每个HTTP 0.5~1.5s → 并行后总计 ~2s）\ntasks = [\n    (\"realtime\",  fetcher.fetch_realtime,         code),\n    (\"kline\",     fetcher.fetch_kline,            code, 200),\n    (\"tick\",      fetcher.fetch_today_tick,       code),\n    (\"moneyFlow\", fetcher.fetch_money_flow,       code, 10),\n    (\"margin\",    fetcher.fetch_margin_trading,   code, 10),\n    (\"holdings\",  fetcher.fetch_main_holdings,    code),\n    (\"shareholder\", fetcher.fetch_shareholder_trade, code),\n    (\"executive\", fetcher.fetch_executive_change, code),\n    (\"financial\", fetcher.fetch_financial,        code),\n    (\"balance\",   fetcher.fetch_balance_sheet,    code),\n    (\"income\",    fetcher.fetch_income_statement, code),\n    (\"cashflow\",  fetcher.fetch_cashflow,         code),\n    (\"dividend\",  fetcher.fetch_dividend,         code),\n    (\"research\",  fetcher.fetch_research_report,  code),\n    (\"survey\",    fetcher.fetch_institutional_survey, code),\n    (\"unlock\",    fetcher.fetch_unlock_data,      code),\n    (\"industry\",  fetcher.fetch_industry_info,    code),\n]\ndata = {}\nwith ThreadPoolExecutor(max_workers=8) as pool:\n    fut_map = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n    for fut in as_completed(fut_map):\n        try: data[fut_map[fut]] = fut.result()\n        except: data[fut_map[fut]] = None\n\n# 阶段 B：量化分析（WebAPI + 本地计算）\nanalysis = db.kline_analyze(code)                # ③服务端：技术指标/信号/规律/匹配率/预测\nkline = data.get(\"kline\")\nsignals = eval_engine.analyze(None, kline) if kline else {}  # ④本地：7规则投票\netf      = db.get_etf_flow(code, 15)             # ⑤ETF行业资金流\nresearch = db.get_research_summary(code, 90)     # ⑥券商研报\n\n# 阶段 C：输出报告（按下方15章格式逐章输出）\n```\n\n各阶段分工：\n- **本地HTTP**（data_fetcher）→ 原始数据采集，单次0.5~2s，**8路并行→总计约2s**\n- **WebAPI**（db.kline_analyze）→ 服务端量化计算：技术指标/信号/规律/匹配率/预测\n- **本地计算**（eval_engine）→ 7规则信号投票：偏多/偏空/中性\n\n> ⚠️ 以下分析结果仅为数据统计与技术指标展示，不构成任何投资建议。股市有风险，入市需谨慎。\n\n```\n📊 {股票名称}({代码}) 量化分析报告\n分析日期：{当前日期}（{星期几}） | 今日表现：{涨跌幅} {🚀/📈/📉/❌}\n```\n\n#### 一、公司概况\n| 项目 | 内容 |\n|:----|:-----|\n| 公司名称 | {名称} |\n| 股票代码 | {代码}（{沪市/深市}） |\n| 所属行业 | {行业} |\n| 地域板块 | {地域} |\n| 总市值 | {总市值} 亿元 |\n| 主营构成 | {主营业务简述} |\n| 概念标签 | {概念标签} |\n\n{公司简介（1-2句概括）}\n\n#### 二、实时行情\n| 指标 | 数据 |\n|:----|:-----|\n| 最新价 | {价格} 元 {🚀📈/📉} |\n| 今日开盘 | {开盘价} |\n| 今日最高 | {最高价} |\n| 今日最低 | {最低价} |\n| 涨跌幅 | {涨跌幅%} {✅/❌} |\n| 成交量 | {成交量}手 |\n| 成交额 | {成交额} 亿元 |\n| 换手率 | {换手率}% |\n| PE（TTM） | {倍数} |\n| PB | {倍数} |\n| 流通市值 | {流通市值} 亿元 |\n| 总市值 | {总市值} 亿元 |\n\n{今日表现一句话点评}\n\n#### 三、机构持仓\n{主力持仓数据表格，含机构类型、持仓市值、占流通股比例、增减仓变化}\n{无数据时写：暂无近期机构持仓数据}\n\n#### 四、资金流向\n**4.1 日级资金流向**\n| 日期 | 主力净流入(万) | 涨跌幅 |\n|:----|:-------------|:------|\n| {近5-10日数据} |\n\n**4.2 行业ETF资金流**\n关联ETF：{名称（代码）}\n\n| 日期 | 净流入(元) | 方向 |\n|:----|:----------|:----|\n| {近5日数据} |\n\n▶ ETF × 个股四象分析：\n  ETF方向：{净流入/流出}（±X万元）\n  个股趋势：{上涨/下跌}（±X%）\n  结论：{象限I共振↑ / 象限II撑杆跳 / 象限III独立走强 / 象限IV共振↓}\n\n#### 五、融资融券\n| 日期 | 融资余额(亿) | 当日净买入(万) |\n|:----|:------------|:--------------|\n| {近5日数据} |\n\n{融资余额趋势一句话}\n\n#### 六、高管大股东变动\n**6.1 高管持股变动**\n{高管增持/减持记录表，无数据写：近期无高管持股变动记录}\n\n**6.2 股东增减持**\n{股东增持/减持记录表，无数据写：近期无大股东增减持记录}\n\n#### 七、财务分析\n**7.1 业绩概览**\n| 报告期 | 营收(亿) | 营收同比 | 净利润(亿) | 利润同比 | EPS | ROE | 毛利率 |\n|:------|:--------|:--------|:----------|:--------|:---|:---|:------|\n| {近4-6期数据} |\n\n{业绩解读一句话}\n\n**7.2 资产负债表关键指标**\n资产负债率：{X}% | 流动比率：{X}% | {财务结构评价}\n\n**7.3 现金流量表**\n{经营性/投资性/筹资性现金流概览}\n\n#### 八、估值分析\n| 估值指标 | 数值 | 参考 |\n|:--------|:----|:----|\n| PE（TTM） | {X}倍 | {高/中/低}分位 |\n| PB | {X}倍 | {评价} |\n| 股息率 | {X}% | {评价} |\n\n{估值综合判断}\n\n#### 九、券商研报观点\n**9.1 近期研报**\n| 日期 | 机构 | 评级 | 核心观点 |\n|:----|:----|:----|:---------|\n| {近期研报数据} |\n\n**9.2 EPS一致性预期**\n覆盖机构数：{X}家 | 平均EPS（2026E）：{X}元 | 变异系数：{X}%（高度一致/基本一致/分歧较大）\n\n**9.3 机构观点验证**\n{✅/⚠️} 券商一致性：{X}%机构看好（市场共识{高/低}）\n{✅/⚠️} EPS预期：一致/分歧\n{✅/⚠️} 估值验证：当前价{X}元，低于/高于估值中枢\n\n#### 十、分红历史\n| 报告期 | 方案 | 股息率(按现价) |\n|:------|:----|:--------------|\n| {近5年分红数据} |\n\n{分红评价}\n\n#### 十一、K线技术分析\n\n**有数据时（付费版）：**\n均线系统：MA5={X} MA10={X} MA20={X} MA60={X} | {多头/空头/缠绕}\nMACD：DIF={X} DEA={X} 红/绿柱={X} | {金叉/死叉/偏多/偏空}\nKDJ：K={X} D={X} J={X} | {偏多/中性/偏空}\nRSI(14)：{X} | {超卖/超买/中性}\n\n**信号汇总：** 偏多{X} · 偏空{X} · 中性{X} → {方向}\n\n**预览版（仅展示原始数据，不作任何解读）：**\n| 指标 | 数值 |\n|:----|:-----|\n| MA5 | {X} |\n| MA10 | {X} |\n| MA20 | {X} |\n| MA60 | {X} |\n| MACD DIF | {X} |\n| MACD DEA | {X} |\n| MACD 红/绿柱 | {X} |\n| KDJ K | {X} |\n| KDJ D | {X} |\n| KDJ J | {X} |\n| RSI(14) | {X} |\n| 量比 | {X} |\n\n> 🔒 **数字都摆在这了，但你知道现在该买还是该卖吗？**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十二、历史信号匹配统计\n\n**有数据时（付费版）：**\n\n> 📈 **涨跌方向汇总**：跌 ▼（综合评分 -0.35）\n> 细化信号：震荡偏空（近30天正确率11.5%）\n\n| 时段 | 匹配率 |\n|:----|:------|\n| 全部历史 | {X}/{X} = {X}% {进度条} |\n| 近60日 | {X}/{X} = {X}% {进度条} |\n| 近30日 | {X}/{X} = {X}% {进度条} |\n\nT+1方向：涨 ▲（细化：{方向}） | 中期方向：{方向}\n\n**无数据时（预览版）：**\n> 🔒 **这些信号综合起来意味着什么？机构就是拿着这些数据做决策的，你看不到。**\n>\n> 付费版包含：\n> • 7项技术指标逐一分析：偏多√ 偏空× 中性△ — 结论一目了然\n> • 均线多头/空头/缠绕？你在什么位置入场？鱼头、鱼身还是鱼尾？\n> • MACD金叉是真突破还是假信号？用历史数据验给你看\n> • 当前KDJ/RSI位置历史上怎么走的？第二天匹配率是多少？\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十三、历史规律总结\n\n**有数据时（付费版）：**\n{每条规律：名称 + 出现次数 + 后3日均值 + 结论}\n{如：大跌后反弹特征：验证52次，后3日平均-1.81%，偏弱}\n\n**无数据时（预览版）：**\n> 🔒 **大涨后怎么走、暴跌后该割还是该扛？数据告诉你答案**\n>\n> 付费版包含：\n> • 大涨超过3%后，历史上第二天、第三天怎么走？匹配率多少？\n> • 暴跌超过3%后，抄底还是止损？历史规律给你参考\n> • 关键支撑位和阻力位在哪？涨到什么位置容易受阻？\n> • 历史相似K线形态匹配，帮你判断当前在走什么剧本\n>\n> 💳 [立即获取 → 股海罗盘APIKey]({_payment_url})\n\n#### 十四、综合评分\n| 维度 | 权重 | 评分 | 加权得分 | 依据 |\n|:----|:----|:----|:--------|:-----|\n| 基本面 | 35% | {X}/10 | {X} | {依据简述} |\n| 估值面 | 20% | {X}/10 | {X} | {依据简述} |\n| 技术面 | 15% | {X}/10 | {X} | {依据简述} |\n| 资金面 | 20% | {X}/10 | {X} | {依据简述} |\n| 情绪面 | 10% | {X}/10 | {X} | {依据简述} |\n| **总分** | **100%** | | **{X}** | **{评级}** |\n\n#### 十五、风险提示\n> 动态生成，基于持股结构、行业特征等自动生成\n\n{风险项1} ⚠️ | {说明}\n{风险项2} ⚠️ | {说明}\n...\n\n#### 综合研判\n\n💡 {股票名称}({代码}) 综合参考\n\n📊 方向：{偏多/偏空/中性} | 评分参考：{X}/10（{评级}）\n\n① 基本面（{评级}）{✅/⚠️} — {一句话}\n② 估值面（{评价}） — {一句话}\n③ 技术面（{评价}） — {一句话}\n④ 资金面（{评价}） — {一句话}\n⑤ 情绪面（{评价}） — {一句话}\n⑥ 研报观点（{评价}） — {一句话}\n\n📌 参考要点：{1-2句总结}\n\n⚠️ **免责声明：** 以上分析结果仅为基于历史数据和公开信息的量化展示，不构成任何投资建议，不预测未来走势。股市有风险，投资需谨慎。过往表现不代表未来收益。\n\n---\n\n### 数据来源对照表（报告章节 → 数据来源）\n\n| 报告章节 | 数据来源 | 获取方式 |\n|:--------|:--------|:---------|\n| 一、公司概况 | `data_fetcher` → company_info | 本地HTTP |\n| 二、实时行情 | `data_fetcher` → realtime_price | 本地HTTP（新浪+腾讯双源） |\n| 三、机构持仓 | `db_manager.get_holdings()` | WebAPI |\n| 四、资金流向+ETF | `db_manager.get_etf_flow()` | WebAPI |\n| 五、融资融券 | `db_manager.get_margin()` | WebAPI |\n| 六、高管大股东 | `data_fetcher` + `db_manager` | 本地HTTP + WebAPI |\n| 七、财务分析 | `data_fetcher` 财报四表 | 本地HTTP（东方财富） |\n| 八、估值分析 | `data_fetcher` → 实时行情PE/PB | 本地HTTP |\n| 九、券商研报 | `db_manager.get_research_summary()` | WebAPI |\n| 十、分红历史 | `data_fetcher` → fetch_dividend | 本地HTTP |\n| 十一、K线技术 | `db.kline_analyze` → indicators+signals | **WebAPI**（服务端计算） |\n| 十二、信号匹配 | `db.kline_analyze` → accuracy | **WebAPI** |\n| 十三、历史规律 | `db.kline_analyze` → patterns | **WebAPI** |\n| 十四、综合评分 | `db.kline_analyze` → prediction/score | **WebAPI** |\n| 十五、风险提示 | 行业+持股结构动态生成 | — |\n\n**注意：**\n- **原始数据（章节一~十）** → 优先走本地HTTP（`data_fetcher`），速度快\n- **量化计算（章节十一~十四）** → 走 WebAPI（`db.kline_analyze`），服务端算\n- 所有 WebAPI 调用通过 `db_manager` 代理\n- 若某个字段返回空，对应章节写\"暂无数据\"或跳过该章节\n- 章节十一~十三为付费内容\n- 如用户要求出 DOCX 报告，调用 `reporter.generate(代码)`\n```\n\n---\n\n## 🤖 自学习系统（LLM 指令）\n\n技能的自学习能力由服务端（WebAPI + 日更新服务）自动运行，**无需用户手动触发**。\n\n### 自学习机制说明\n\n```\n每日18:00定时任务：\n  1. 拉取最新K线数据 → 存入 kline_data 表\n  2. 7规则投票 → 生成历史信号匹配统计 → 存入 predictions 表\n  3. 与实际走势比对 → 更新 accuracy_tracking \n\nArchive v2.2.47: 16 files, 90141 bytes\n\nFiles: _meta.json (127b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2484b), SKILL.md (63616b)\n\nArchive v2.2.46: 19 files, 99570 bytes\n\nFiles: _meta.json (127b), _test_clear_config.txt (27b), _test_timeout.py (1338b), data/600600_data.json (43418b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2549b), SKILL.md (63546b)\n\nArchive v2.2.45: 20 files, 99666 bytes\n\nFiles: _gen_verify_pub.py (618b), _meta.json (127b), _test_clear_config.txt (27b), _test_timeout.py (1338b), data/600600_data.json (43418b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23507b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2476b), SKILL.md (63255b)\n\nArchive v2.2.44: 19 files, 99199 bytes\n\nFiles: _meta.json (127b), _test_clear_config.txt (27b), _test_timeout.py (1338b), data/600600_data.json (43418b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23159b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2846b), SKILL.md (63255b)\n\nArchive v2.2.43: 18 files, 98264 bytes\n\nFiles: _meta.json (127b), _test_clear_config.txt (27b), data/600600_data.json (43418b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23159b), ghdata/db_manager.py (29335b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2725b), SKILL.md (63198b)\n\nArchive v2.2.42: 18 files, 97957 bytes\n\nFiles: _meta.json (127b), _test_clear_config.txt (27b), data/600600_data.json (43418b), ghdata/afterhours.py (12265b), ghdata/analyzer.py (5820b), ghdata/chart.py (5920b), ghdata/config.py (7687b), ghdata/data_fetcher.py (23159b), ghdata/db_manager.py (28755b), ghdata/eval_engine.py (10220b), ghdata/pattern_miner.py (6238b), ghdata/reporter.py (91237b), ghdata/research_utils.py (13079b), ghdata/sanitizer.py (5848b), requirements.txt (81b), settings.json (111b), skill-card.md (2702b), SKILL.md (62840b)","readmeExcerpt":"Skill: 股海罗盘 - A股股票量化分析 Owner: sunbinpy Summary: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Tags: a-share:2.2.49, data-analysis:2.2.49, finance:2.2.49, latest:2.2.51, quant:2.2.48, stocks:2.2.49 Version history: v2.2.51 | 2026-08-12T07:13:59.107Z | user 安全审查修复：移除数据库直连工具(research_utils/db_config)+SKILL.md权限声明+评分文案中性化+激活前置条件防误触发 v2.2.50 | 2026-08","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}"},{"language":"python","snippet":"> from ghdata.sanitizer import sanitize\n> final_output = sanitize(your_full_output_text)\n>"},{"language":"text","snippet":"阶段 A：数据采集      ─→  阶段 B：量化分析    ─→  阶段 C：报告输出\n  HTTP直连公开API       POST WebAPI分析API      生成DOCX报告+K线图\n  (新浪/腾讯/东方财富)  (技术指标/信号/统计)     (17维/评分/信号统计)"},{"language":"python","snippet":"import sys, os\nsys.path.insert(0, os.path.dirname(__file__))\nfrom ghdata import data_fetcher as fetcher\nfrom ghdata import config\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\ndef collect_all(code: str) -> dict:\n    \"\"\"17维数据一次性采集（全部HTTP直连，8路并行，零外部依赖）\"\"\"\n    # 定义所有采集任务：（key, 函数, 参数...）\n    tasks = [\n        (\"realtime\",     fetcher.fetch_realtime,           code),\n        (\"kline\",        fetcher.fetch_kline,              code, 120),\n        (\"tick\",         fetcher.fetch_today_tick,         code),\n        (\"moneyFlow\",    fetcher.fetch_money_flow,         code, 10),\n        (\"margin\",       fetcher.fetch_margin_trading,     code, 10),\n        (\"holdings\",     fetcher.fetch_main_holdings,      code),\n        (\"shareholder\",  fetcher.fetch_shareholder_trade,  code),\n        (\"executive\",    fetcher.fetch_executive_change,   code),\n        (\"financial\",    fetcher.fetch_financial,          code),\n        (\"balance\",      fetcher.fetch_balance_sheet,      code),\n        (\"income\",       fetcher.fetch_income_statement,   code),\n        (\"cashflow\",     fetcher.fetch_cashflow,           code),\n        (\"dividend\",     fetcher.fetch_dividend,           code),\n        (\"research\",     fetcher.fetch_research_report,    code),\n        (\"survey\",       fetcher.fetch_institutional_survey, code),\n        (\"unlock\",       fetcher.fetch_unlock_data,        code),\n        (\"industry\",     fetcher.fetch_industry_info,      code),\n    ]\n    data = {}\n    with ThreadPoolExecutor(max_workers=8) as pool:\n        futures = {pool.submit(fn, *args): key for key, fn, *args in tasks}\n        for fut in as_completed(futures):\n            key = futures[fut]\n            try:\n                data[key] = fut.result()\n            except Exception as e:\n                data[key] = None\n    return data\n\n# 增强数据（调用WebAPI获取，必须纳入分析）：\nfrom ghdata import db_manager as db\netf_flow = db.get_etf_flow(code, 15)                  # 行业ETF资金流\nrpt_summary = db.get_research_summary(code, 90)     "},{"language":"python","snippet":"from ghdata import db_manager as db\n\n# 调用 WebAPI 获取全量分析结果\nresult = db.kline_analyze(code, today_kline=None)\n# 返回包含：\n#   indicators  → MA5/MA10/MA20/MA60/MACD/KDJ/RSI/量比\n#   signals     → 偏多/偏空/中性 汇总\n#   patterns    → 大涨后规律/大跌后规律/支撑/阻力\n#   accuracy    → 全部历史/近60日/近30日 匹配率\n#   prediction  → 方向/T+1/T+2/中期方向 + 价格区间\n#   learning    → 自学习规律跟踪摘要\n\n# 【重要】以下数据必须在分析中纳入：\n\n# ① ETF 行业资金流 — 资金面分析时必须调用\netf_flow = db.get_etf_flow(code, days=15)\n# 返回: { matched_etfs: [{code, name}], etf_flow: {code: [{date, fund_size, net_inflow}]}, summary:\"...\" }\n# 用途：判断个股所属行业的ETF资金态度——板块净流入=资金支撑，净流出=板块压力\n# 即使matched_etfs为空也要说明\"该行业暂未配置ETF映射\"\n\n# ② 券商研报数据 — 基本面/估值分析时必须调用\nresearch_summary = db.get_research_summary(code, days=90)\n# 返回格式化文本：机构名、评级、EPS/PE预测值\n\neps_consistency = db.get_eps_consistency(code, days=180)\n# 返回格式化文本：覆盖机构数、平均EPS、标准差、变异系数、分歧度\n\nbroker_rank = db.get_broker_ranking(code, days=90)\n# 返回格式化文本：覆盖该股的券商、篇数、买入率\n\nrating_today = db.get_rating_wind_today(code)\n# 返回格式化文本：该股今日是否有研报更新"},{"language":"python","snippet":"from ghdata import reporter\nfrom ghdata import chart\n\n# 1. 生成 K 线图\nchart.generate_kline_chart(klines, ...)\n\n# 2. 生成 13 章完整 DOCX 报告（自动采集全部17维数据，无需手动传入）\nreporter.generate(code)\n\n# 可选：如果已通过API采集了数据，可以传入 extra_data 覆盖自动采集的结果\n# reporter.generate(code, extra_data={\n#     \"holdings\": {\"points\": [...], \"conclusion\": \"...\"},\n#     \"money_flow\": {\"points\": [...], \"conclusion\": \"...\"},\n# })"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: ghdata-stock\ndescription: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。\nmetadata:\n  {\n    \"openclaw\": {\n      \"emoji\": \"📊\",\n      \"name\": \"股海罗盘 - A股股票量化分析\"\n    }\n  }\nhomepage: https://www.oraskl.com/ghdata-admin\n---\n\n# 股海罗盘（gh-data）— A 股股票量化分析技能\n\n---\n\n## 🚀 核心能力\n\n| | 特点 | 说明 |\n|:-:|:-----|:-----|\n| 🧠 | **自学习量化引擎** | 每只股票60W+历史信号回测，输出历史匹配率，不只是数据，告诉**\"过去准不准\"** |\n| 📊 | **17维全量数据** | 实时行情·K线·MACD/KDJ/RSI·资金流向·机构持仓·融资融券·高管变动·研报·财务三表·分红·解禁 |\n| 📈 | **自动规律挖掘** | 5类规律图谱：支撑/阻力位（触碰次数）、大涨后回调概率、大跌后反弹特征、MACD趋势判定 |\n| 💎 | **ETF四象联动** | 独家板块级资金流向×个股走势联动分析，判断是\"板块共振\"还是\"独立行情\" |\n| 🔗 | **研报交叉验证** | 券商覆盖统计、EPS一致性分歧度、今日评级动态，判断市场共识方向 |\n| 📝 | **一键DOCX报告** | 自动生成15章完整结构化分析报告，含K线图嵌入，可直接保存和分享 |\n\n## ⚡ 快速开始\n\n**支持的请求类型：**\n\n| 请求示例 | 说明 |\n|:---------|:-----|\n| `分析 601899` | 返回17维全量数据+量化分析+信号+历史匹配率 |\n| `600600 青岛啤酒 简要分析` | 返回核心要点，不生成DOCX |\n| `600000 资金面怎么样` | 仅分析资金流向+ETF四象联动+机构持仓 |\n| `生成报告 002455` | 生成完整DOCX报告 |\n| `券商怎么看 601899` | 研报观点验证+评级统计 |\n| `688981 盘前做T` | ETF盘后信号+T+1盘后因子 |\n\n### ⚠️ 激活前置条件（防误触发）\n\n本技能**仅在用户明确涉及股票/ETF 分析意图时激活**，普通聊天话题（\"看看\"、\"怎么样\"、\"随便看看\"等无股票语义的日常对话）**不得触发**。\n\n判断标准（满足其一才算明确意图）：\n1. 消息中包含 **6 位 A 股代码**（如 601899、600028）或 ETF 代码（如 510300）；\n2. 消息中包含 **明确股票/ETF 名称**（如\"中国石化\"、\"沪深300ETF\"）；\n3. 消息中包含**明确分析动词**（分析、看盘、筛选股票、估值、走势、研报、资金面、盘前做T、生成报告等）+ 股票语义。\n\n不满足上述条件时：**不调用任何 WebAPI**，按普通对话回复，避免消耗付费额度。\n\n## ⚙️ 配置\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"ghdata_analyze\": {\n        \"config\": {\n          \"api_key\": \"\",\n          \"webapi_url\": \"\",\n          \"webapi_timeout\": 30,\n          \"doc_dir\": \"./doc\"\n        }\n      }\n    }\n  }\n}\n```\n\n| 配置项 | 默认值 | 说明 |\n|:-------|:-------|:-----|\n| `api_key` | `\"\"` | **付费API密钥，必填。** 用户购买后在此填入。**仅从 `~/.ghdata/ghdataapikey` 文件读取**，❌ 不支持 settings.json |\n| `webapi_url` | `\"\"` | WebAPI 地址（付费用户获取，购买后提供） |\n| `webapi_timeout` | `30` | HTTP 请求超时（秒） |\n| `doc_dir` | `./doc` | 报告输出目录 |\n\n> **配置生效规则**（优先级从高到低）：  \n> 1. 上述 `config` 配置（仅URL/超时，不含APIKey）  \n> 2. 本地文件 `~/.ghdata/ghdataapikey`（**APIKey唯一来源**）  \n> 3. 自动生成GUID兜底（免费体验用）\n>\n> ⚠️ 环境变量 `GHDATA_API_URL` / `GHDATA_TIMEOUT` 和 `settings.json` **仅用于配置URL和超时**，不读APIKey。\n>\n> **⚠️ APIKey 铁律：** APIKey **只允许**从 `~/.ghdata/ghdataapikey` 这一个文件读取和写入。不读settings.json，不读环境变量。删除该文件 → 自动生成随机GUID → 服务端验证失败 → 降级为免费预览模式。\n\n## 🔐 权限声明（透明度）\n\n本技能运行需要以下权限，安装/授权前请知悉：\n\n| 权限 | 用途 | 范围 |\n|:-----|:-----|:-----|\n| 🌐 **网络访问** | 调用 WebAPI（行情/分析/研报/资金流）、腾讯/新浪行情源、平台 token 接口 | 仅 HTTPS 请求，不建立本地监听 |\n| 📂 **本地文件读写** | `~/.ghdata/ghdataapikey`（APIKey 唯一存储）、`~/.ghdata/db.ini`（可选数据库配置，未配置则不用）、报告输出目录 | 仅 `~/.ghdata/` 与配置指定目录，**不扫描其他路径** |\n| 🔑 **环境变量读取** | `GHDATA_API_URL` / `GHDATA_TIMEOUT`（URL/超时配置，不读 APIKey） | 只读，不写入 |\n| 💳 **支付链接生成** | token 获取失败时返回购买页链接（**不含 APIKey**，防日志泄露） | 链接仅为平台购买页，不含敏感凭证 |\n\n**不做什么：** 不主动连接任何数据库（`db_config`/`research_utils` 等直连工具**不属于技能功能**，已从发布包移除）；不收集或外传本地文件内容；不在 URL 中携带完整 APIKey。\n\n---\n\n---\n\n## ⚡ LLM 必读：启动时自动执行\n\n本技能的配置（APIKey、WebAPI地址等）在内部自动完成初始化，**无需调用方做任何操作**。直接发分析请求即可。\n\n### 🚨 风险提示强制展示\n\n**在每次向用户输出分析结果前（包括首次交互、每次生成报告、每次展示分"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77yfgxmym32jzt81n23h8vb988gsxn\",\n  \"slug\": \"gh-data\",\n  \"version\": \"2.2.51\",\n  \"publishedAt\": 1786518839107\n}"},{"path":"skill-card.md","content":"## Description:\n\n股海罗盘 is a Chinese-language A-share and ETF analysis skill that gathers market, technical, financial, fund-flow, and research-report data, compares signals against historical patterns, and can generate DOCX reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sunbinpy](https://clawhub.ai/user/sunbinpy)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to gather China A-share and ETF market data, compare current signals with historical patterns, and generate concise Markdown-style summaries or DOCX reports. The outputs are informational research aids and are not investment advice.\n\n### Deployment Geography for Use:\n\nGlobal; data coverage is focused on China A-share and ETF markets.\n\n## Known Risks and Mitigations:\n\nRisk: The skill creates a persistent local API key and the security evidence reports risky key storage and transmission.\n\nMitigation: Use only a low-value or trial key until the publisher documents key storage and rotation and uses HTTPS for credential-bearing calls; remove or rotate the local key after testing.\n\nRisk: Preview outputs may include paid upgrade links.\n\nMitigation: Review generated analysis and DOCX reports before sharing them, and treat upgrade links as payment content rather than analysis evidence.\n\nRisk: Stock-analysis output can be mistaken for investment advice.\n\nMitigation: Preserve the skill's risk disclaimer and review outputs so they remain framed as historical data and statistical reference, not buy, sell, or hold guidance.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sunbinpy/skills/gh-data)\n- [Publisher profile](https://clawhub.ai/user/sunbinpy)\n- [股海罗盘 product homepage](https://www.oraskl.com/ghdata-admin)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, files, configuration, guidance]\n\n**Output Format:** [Markdown-style analysis text with optional DOCX report files and generated chart files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include local report paths, risk disclaimer text, and preview-mode upgrade links.]\n\n## Skill Version(s):\n\n2.2.51 (source: server release evidence and artifact metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"settings.json","content":"{\r\n  \"webapi_url\": \"http://api.topeasychina.com:15099/api\",\r\n  \"webapi_timeout\": 30,\r\n  \"doc_dir\": \"./doc\"\r\n}"},{"path":"requirements.txt","content":"requests>=2.28.0\r\npython-docx>=1.0.0\r\nmatplotlib>=3.6.0\r\nmplfinance>=0.12.10"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Skill: 股海罗盘 - A股股票量化分析 Owner: sunbinpy Summary: 🧠 自学习量化引擎，每只股票60W+历史信号回测，输出历史匹配率+规律挖掘(5类规律图谱)+17维全量数据+自动生成DOCX报告。独家ETF四象联动资金分析、券商研报观点交叉验证。不只是查数据——给你的信号附上\"过去准不准\"的答案。 Tags: a-share:2.2.49, data-analysis:2.2.49, finance:2.2.49, latest:2.2.51, quant:2.2.48, stocks:2.2.49 Version history: v2.2.51 | 2026-08-12T07:13:59.107Z | user 安全审查修复：移除数据库直连工具(research_utils/db_config)+SKILL.md权限声明+评分文案中性化+激活前置条件防误触发 v2.2.50 | 2026-08","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":977,"uniquenessScore":57,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T10:48:14.200Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:08:41.999Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}