{"id":"530ec7e0-590d-41a1-ab06-ea92df3b128a","entityType":"agent","slug":"clawhub-gechengling-security-stock-picker","name":"Security Stock Picker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-gechengling-security-stock-picker","canonicalPath":"/agent/clawhub-gechengling-security-stock-picker","generatedAt":"2026-10-11T05:32:27.271Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T03:09:04.897Z","emptyReason":null},"description":"AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat... Skill: Security Stock Picker Owner: gechengling Summary: AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat... Tags: latest:3.0.3, security-stock-picker:3.0.3 Version history: v3.0.3 | 2026-09-30T07:02:58.743Z | user v3.0.3: narrow triggers (SQP-1), add data-minimisation + execution boundary, refresh to 2026-09-","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17ewqc4f2s6gpcbm88hy7fgvn85kg1g:security-stock-picker","sourceUrl":"https://clawhub.ai/gechengling/security-stock-picker","homepage":"https://clawhub.ai/gechengling/skills/security-stock-picker","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/gechengling/security-stock-picker","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/gechengling/skills/security-stock-picker","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:09:04.897Z","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-11T03:09:04.897Z","emptyReason":null},"stars":null,"forks":null,"downloads":1177,"packageName":null,"latestVersion":"3.0.3","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:09:04.882Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T03:09:04.897Z","lastCrawledAt":"2026-10-11T03:09:04.882Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T03:09:04.882Z","lastVerifiedAt":null,"highlights":[{"version":"3.0.3","createdAt":"2026-09-30T07:02:58.743Z","changelog":"v3.0.3: narrow triggers (SQP-1), add data-minimisation + execution boundary, refresh to 2026-09-30, +5 examples, +12 table dimensions","fileCount":3,"zipByteSize":16970},{"version":"3.0.2","createdAt":"2026-09-12T07:17:48.344Z","changelog":"内容增强：因子表新增股息率与研发投入占比并重平衡权重、补因子权重一览与打分手算及有效性检验；主题筛选新增红利低波与高端制造主题、执行清单与口径对比示例；技术信号新增组合矩阵、有效性统计与仓位对应；财报异常新增阈值表与综合判定示例；组合构建新增等权重与风险平价对比、风控阈值与分批建仓示例；监管动态更新至 2026-09-12","fileCount":3,"zipByteSize":13397},{"version":"3.0.1","createdAt":"2026-05-25T03:40:28.094Z","changelog":"- Skill slug changed from `security-stock-picker` to `security-stock-screening` - Version updated to 3.0.1 - Added a section on 2026 China securities regulation trends and major quant fund events - Expanded keyword list in the description and metadata for broader search/discovery - No changes to code functionality or core capabilities documented","fileCount":3,"zipByteSize":7799},{"version":"1.0.0","createdAt":"2026-05-11T08:52:48.650Z","changelog":"AI-Powered Stock Selection Engine 1.0.0 - Initial release of an AI-powered intelligent stock selection engine for the China A-share market. - Features quantitative factor screening, fundamental analysis ranking, technical signal detection, and sector rotation analysis. - Supports thematic stock screening for popular investment concepts (e.g., AI, new energy vehicles, innovative pharmaceuticals). - Provides scoring and filtering based on customizable factor models. - Includes both English and Chinese triggers for flexible stock screening workflows. - Built for retail investors, fund managers, and quantitative analysts.","fileCount":2,"zipByteSize":6402}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17ewqc4f2s6gpcbm88hy7fgvn85kg1g:security-stock-picker","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","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-gechengling-security-stock-picker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/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-11T05:32:27.270Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-gechengling-security-stock-picker/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-11T03:09:04.897Z","emptyReason":null},"readme":"Skill: Security Stock Picker\n\nOwner: gechengling\n\nSummary: AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat...\n\nTags: latest:3.0.3, security-stock-picker:3.0.3\n\nVersion history:\n\nv3.0.3 | 2026-09-30T07:02:58.743Z | user\n\nv3.0.3: narrow triggers (SQP-1), add data-minimisation + execution boundary, refresh to 2026-09-30, +5 examples, +12 table dimensions\n\nv3.0.2 | 2026-09-12T07:17:48.344Z | user\n\n内容增强：因子表新增股息率与研发投入占比并重平衡权重、补因子权重一览与打分手算及有效性检验；主题筛选新增红利低波与高端制造主题、执行清单与口径对比示例；技术信号新增组合矩阵、有效性统计与仓位对应；财报异常新增阈值表与综合判定示例；组合构建新增等权重与风险平价对比、风控阈值与分批建仓示例；监管动态更新至 2026-09-12\n\nv3.0.1 | 2026-05-25T03:40:28.094Z | auto\n\n- Skill slug changed from `security-stock-picker` to `security-stock-screening`\n- Version updated to 3.0.1\n- Added a section on 2026 China securities regulation trends and major quant fund events\n- Expanded keyword list in the description and metadata for broader search/discovery\n- No changes to code functionality or core capabilities documented\n\nv1.0.0 | 2026-05-11T08:52:48.650Z | auto\n\nAI-Powered Stock Selection Engine 1.0.0\n\n- Initial release of an AI-powered intelligent stock selection engine for the China A-share market.\n- Features quantitative factor screening, fundamental analysis ranking, technical signal detection, and sector rotation analysis.\n- Supports thematic stock screening for popular investment concepts (e.g., AI, new energy vehicles, innovative pharmaceuticals).\n- Provides scoring and filtering based on customizable factor models.\n- Includes both English and Chinese triggers for flexible stock screening workflows.\n- Built for retail investors, fund managers, and quantitative analysts.\n\nArchive index:\n\nArchive v3.0.3: 3 files, 16970 bytes\n\nFiles: skill-card.md (2153b), SKILL.md (40710b), _meta.json (140b)\n\nFile v3.0.3:SKILL.md\n\n---\r\nname: AI-Powered Stock Selection Engine\r\nslug: security-stock-screening\r\ndescription: AI-powered intelligent stock selection engine for China A-share market — covers quantitative factor screening, fundamental analysis ranking, technical signal detection, sector rotation analysis, and portfolio construction. Built for retail investors, fund managers, and quantitative analysts. Updated 2026 with latest factor models, short-seller vulnerability detection, and AI-enhanced stock screening. Keywords: stock selection, quantitative screening, factor investing, technical analysis, China A-share, stock picker, AI investing, 选股引擎, 量化选股, 因子投资, 技术分析, A股, 智能选股, 选股策略, 量化策略, AI选股, 股票筛选, 价值投资, 成长股, 短线选股.\r\nversion: \"3.0.3\"\r\n---\r\n\r\n# AI-Powered Stock Selection Engine / 智能选股引擎\r\n\r\n> **English:** AI-powered intelligent stock selection engine for China A-share market — combines quantitative factor screening, fundamental analysis, technical signals, and sector rotation analysis. Solves pain points: information overload, emotional decision-making, and inconsistent stock picking criteria. Built for investors and analysts at all levels.\r\n>\r\n> **中文:** 智能选股引擎——整合量化因子筛选、基本面分析、技术信号检测、行业轮动分析的全流程选股工具。解决痛点：信息过载、情绪化决策、选股标准不统一。适用：各级投资者、基金经理、量化分析师。\r\n\r\n\r\n---\r\n\r\n## 数据最小化声明与执行边界 / Data Minimisation & Execution Boundary\r\n\r\n**数据最小化前置声明：** 使用本技能时，请只提供构建筛选规则所必需的字段——股票代码、因子数值、报告期、已脱敏的持仓与可用资金规模。**不要**粘贴证券账户号、身份证号、银行账号、实际成交明细或他人持仓信息。若需基于个人持仓做再平衡分析，请用“标的+权重”的脱敏形式输入，不提供账户标识。\r\n\r\n**保存与预览确认：** 本技能不执行任何保存动作。若你在自己环境中依据本技能生成候选池、组合方案或回测脚本，请在落盘或提交交易前**先预览结果、确认参数与阈值无误，再保存或执行**。\r\n\r\n**代码块性质与执行边界**\r\n\r\n| 内容 | 性质 | 谁来执行 |\r\n|------|------|---------|\r\n| `StockScreener` 类与因子权重表 | 因子定义、打分与归一化的口径说明 | 由研究员在自己的量化环境中取数并复现；技能不取数、不运行 |\r\n| `THEMATIC_SCREENING` | 主题产业链拆解与筛选标准的结构化字典 | 由研究员按公开资料自行更新标的与标准 |\r\n| `TechnicalSignals` 类 | 均线/支撑压力/量价异常的计算口径示意 | 由研究员在自有行情终端或回测框架中实现 |\r\n| `FraudDetection` 类 | 财报异常指标的判定阈值说明 | 由研究员用公开财报数据计算，结论需人工复核 |\r\n| `PortfolioBuilder` 类 | 等权重与风险平价的权重算法示意 | 由研究员在自有系统中运行；技能不下单、不调仓 |\r\n\r\n本技能未配置任何工具调用权限，不执行代码、不读写文件、不访问行情或财报数据源，也不产生可直接执行的交易指令。文中代码块均为模型与阈值的教学示意，读者可在自己环境中参考实现；选股结果不构成投资建议，实盘前须独立核验数据与合规要求。\r\n\r\n---\r\n\r\n\r\n### 证券监管最新动态 [2026-09-30更新]\r\n\r\n| 动态类型 | 内容摘要 | 影响范围 | 选股侧应对动作 | 责任岗 | 优先级 |\r\n|---------|---------|---------|--------------|-------|-------|\r\n| 证券监管 | 2026年A股量化资金占比30%-40%，选股模型需考虑量化冲击 | 选股引擎需增加量化冲击识别和极端行情风控 | 模型输出附带流动性冲击提示与成交结构说明 | 研究 | 高 |\r\n| 证券监管 | 2026年3月23日量化踩踏案例（单日蒸发4.29万亿），风控需加强 | 选股引擎需增加量化冲击识别和极端行情风控 | 引入集中度与拥挤度指标，作为风控前置条件 | 研究 | 高 |\r\n| 证券监管 | 上证周线级别中枢震荡，2026年核心区间3200-4000点 | 选股引擎需增加量化冲击识别和极端行情风控 | 震荡区间内降低趋势类因子权重 | 研究 | 中 |\r\n| 程序化交易 | 程序化交易报告与异常交易监控要求细化 | 与量化资金相关的流动性与波动分析 | 在流动性评估中单独列示程序化交易影响 | 研究 | 中 |\r\n| 信息披露 | 财务信息披露质量监管持续强化 | 财报异常检测、因子取数 | 因子取数须标注报告期与公告编号 | 研究 | 高 |\r\n| 市值管理 | 上市公司市值管理行为披露要求趋严 | 涉及回购、增减持的个股筛选 | 筛选中单列股东行为事件标签 | 研究 | 中 |\r\n| 业绩预告 | 业绩预告披露质量受关注 | 事件驱动类选股 | 使用预告数据时区分预告口径与实际口径 | 研究 | 高 |\r\n| 投资者保护 | 投顾与荐股类内容传播边界收紧 | 选股结果对外输出 | 输出结果保留风险提示与免责声明 | 合规 | 高 |\r\n| 程序化交易 | 2026年9月下旬：程序化交易报备与异常交易监控的执行细节进一步明确 | 高频与量化相关策略的流动性评估 | 冲击成本估算中单列程序化交易影响假设 | 研究 | 中 |\r\n| 信息披露 | 2026年三季度：财务信息披露质量监管强化，业绩预告与实际数据偏差受关注 | 因子取数、事件驱动选股 | 预告与实际数据分栏并建立偏差跟踪字段 | 研究 | 高 |\r\n\r\n> **数据截止**: 2026-09-30 | 来源：证监会、交易所公开规则、行业公开信息\r\n> **声明**: 以上动态供参考，具体以官方最新发布为准\r\n\r\n**动态解读示例（四类高频场景）**\r\n\r\n- **场景A｜量化冲击识别**：某标的近20日成交额中位数仅0.8亿元，模型给出买入信号 → 命中\"流动性冲击\"风险 → 输出中增加\"预估冲击成本\"，并提示单笔建仓不超过日均成交额的5%。\r\n- **场景B｜拥挤度预警**：某板块因子暴露高度集中、机构持仓占比快速抬升 → 命中\"踩踏风险\" → 在风控前置条件中加入拥挤度阈值，超阈值则降低该板块权重。\r\n- **场景C｜因子取数可追溯**：ROE取数未标注报告期 → 命中\"取数须可追溯\" → 因子表增加\"报告期\"与\"公告编号\"两列，便于回溯与复算。\r\n- **场景D｜预告口径混用**：用业绩预告中值直接作为当年利润因子 → 命中\"预告与实际口径混用\" → 预告期数据单列\"预告口径\"标记，与实际披露数据分栏展示。\r\n\r\n- **场景E｜程序化交易影响未计入**：策略回测收益良好，实盘却因滑点大幅衰减 → 命中“程序化交易影响须单列” → 在冲击成本模型中增加“程序化成交占比”假设参数，并对小市值标的提高滑点设定，回测与实盘差异超过1个百分点时重新校准参数。\r\n- **场景F｜预告偏差未跟踪**：依据预告中值选出的标的，实际披露后大面积不及预期 → 命中“预告与实际偏差受关注” → 因子表新增“预告偏差”字段（实际值−预告中值），连续两期偏差超过10%的公司下调其预告数据可信度权重。\r\n\r\n口径自检三条：因子看报告期、回测看滑点假设、预告看历史偏差。三者缺一，选股结果的可信度无法自证。\r\n\r\n\r\n## Industry Pain Points / 行业痛点\r\n\r\n| Pain Point / 痛点 | Impact / 影响 | Solution / 本Skill解决方案 | 量化基线指标 / Baseline |\r\n|------------------|-------------|------------------------|----------------------|\r\n| **信息过载** | A股5000+股票，无法逐一研究 | 多维度因子筛选，快速缩小范围 | 一次筛选候选池 ≤50只 |\r\n| **情绪化决策** | 追涨杀跌，高买低卖 | 量化标准选股，避免主观干扰 | 交易决策中规则触发占比 ≥80% |\r\n| **选股标准模糊** | 没有系统性方法论 | 完整选股框架+评分模型 | 每条选股逻辑可量化复现 |\r\n| **财报造假风险** | 康美药业、瑞幸等案例警示 | 财报异常信号检测+预警 | 高风险标的排除率 100% |\r\n| **行业轮动难把握** | 踏错节奏，板块轮动踏空 | 宏观+情绪+资金三维轮动模型 | 轮动判断命中率 ≥60% |\r\n| **流动性陷阱** | 小市值标的无法顺利进出 | 流动性门槛+冲击成本估算 | 单笔建仓 ≤日均成交额5% |\r\n| **拥挤度风险** | 机构持仓过度集中引发踩踏 | 拥挤度指标与阈值监控 | 超阈值板块权重自动下调 |\r\n| **样本外失效** | 因子在样本内有效、样本外失效 | 分区间验证与滚动检验 | 样本外IC保持同向 ≥60%窗 |\r\n\r\n---\r\n\r\n## Trigger Keywords / 触发关键词\r\n\r\n**English Triggers:** stock selection, quantitative screening, factor investing, fundamental analysis, technical analysis, China A-share, stock picker, AI investing, momentum stocks, value investing, growth stocks, sector rotation, portfolio construction\r\n\r\n**中文触发词（须落在“构造/检验一个选股规则”任务上才触发）：** 智能选股 / 量化选股 / 因子选股 / 因子有效性检验 / 基本面选股 / 技术面选股 / 行业轮动模型 / 板块轮动模型 / 主题选股 / 财报异常检测 / 组合构建 / 风险平价配置 / 建仓节奏 / 选股策略回测\r\n\r\n**不触发（Scope Exclusions）：** 以下泛化词单独出现时**不**触发本技能——选股、价值投资、成长股、蓝筹股、小盘股、低估值、高成长、破净股、涨停板、龙虎榜、北向资金、资金流向、业绩超预期、AI选股、机器选股。它们只有在明确指向“设定筛选条件、检验因子、构建候选池或组合”时才路由到本技能；仅查询单只股票的行情、基本面或新闻，请改用行情与研报类技能。\r\n\r\n**路由判定三步：** ① 任务是否要产出“一篮子股票”或“一条可复用的筛选规则”？② 是否涉及因子打分、信号检测、财报异常或组合权重？③ 两者同时为“是”才启用。只问“某只股票怎么样”的请求不启用。\r\n\r\n---\r\n\r\n## Core Capabilities / 核心能力\r\n\r\n### 1. Quantitative Factor Screening / 量化因子筛选\r\n\r\n```python\r\nimport pandas as pd\r\nimport numpy as np\r\nfrom typing import List, Dict, Optional\r\n\r\nclass StockScreener:\r\n    \"\"\"智能选股引擎\"\"\"\r\n    \r\n    def __init__(self):\r\n        self.factors = {\r\n            # 估值因子\r\n            \"pe\": {\"name\": \"市盈率\", \"weight\": 0.13, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"pb\": {\"name\": \"市净率\", \"weight\": 0.10, \"direction\": \"low_better\", \"bounds\": (0, 10)},\r\n            \"ps\": {\"name\": \"市销率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 20)},\r\n            \"pcf\": {\"name\": \"市现率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 30)},\r\n            \r\n            # 成长因子\r\n            \"revenue_growth\": {\"name\": \"营收增速\", \"weight\": 0.14, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \"profit_growth\": {\"name\": \"利润增速\", \"weight\": 0.13, \"direction\": \"high_better\", \"bounds\": (-100, 200)},\r\n            \"gross_margin\": {\"name\": \"毛利率\", \"weight\": 0.08, \"direction\": \"high_better\", \"bounds\": (0, 100)},\r\n            \r\n            # 质量因子\r\n            \"roe\": {\"name\": \"ROE\", \"weight\": 0.10, \"direction\": \"high_better\", \"bounds\": (-20, 50)},\r\n            \"debt_ratio\": {\"name\": \"资产负债率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"current_ratio\": {\"name\": \"流动比率\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (0.5, 10)},\r\n            \r\n            # 动量因子\r\n            \"momentum_20d\": {\"name\": \"20日动量\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (-30, 50)},\r\n            \"momentum_60d\": {\"name\": \"60日动量\", \"weight\": 0.01, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \r\n            # 股东回报因子\r\n            \"dividend_yield\": {\"name\": \"股息率\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (0, 8)},\r\n            \r\n            # 科创属性因子\r\n            \"rd_ratio\": {\"name\": \"研发投入占比\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (0, 30)}\r\n        }\r\n    \r\n    def screen(self, stocks: pd.DataFrame, \r\n               criteria: Dict[str, tuple],\r\n               min_score: float = 60) -> pd.DataFrame:\r\n        \"\"\"\r\n        量化筛选主函数\r\n        Args:\r\n            stocks: 股票数据（含各因子列）\r\n            criteria: 筛选条件 {因子名: (最小值, 最大值)}\r\n            min_score: 最低综合评分\r\n        Returns:\r\n            符合条件的股票\r\n        \"\"\"\r\n        result = stocks.copy()\r\n        \r\n        # Step 1: 硬性条件筛选\r\n        for factor, (min_val, max_val) in criteria.items():\r\n            if factor in result.columns:\r\n                result = result[(result[factor] >= min_val) & (result[factor] <= max_val)]\r\n        \r\n        # Step 2: 因子打分\r\n        result = self._factor_scoring(result)\r\n        \r\n        # Step 3: 综合评分排序\r\n        result = result[result[\"综合评分\"] >= min_score].sort_values(\"综合评分\", ascending=False)\r\n        \r\n        return result\r\n    \r\n    def _factor_scoring(self, df: pd.DataFrame) -> pd.DataFrame:\r\n        \"\"\"因子打分（百分制）\"\"\"\r\n        scores = pd.DataFrame(index=df.index)\r\n        \r\n        for factor, config in self.factors.items():\r\n            if factor in df.columns:\r\n                raw = df[factor].copy()\r\n                min_val, max_val = config[\"bounds\"]\r\n                \r\n                # 标准化到0-100\r\n                normalized = (raw - min_val) / (max_val - min_val) * 100\r\n                normalized = normalized.clip(0, 100)\r\n                \r\n                # 方向调整（部分因子越低越好）\r\n                if config[\"direction\"] == \"low_better\":\r\n                    normalized = 100 - normalized\r\n                \r\n                scores[factor] = normalized * config[\"weight\"]\r\n        \r\n        df[\"综合评分\"] = scores.sum(axis=1)\r\n        return df\r\n```\r\n\r\n**因子权重与方向一览（可直接核对权重合计）**\r\n\r\n| 类别 | 因子 | 权重 | 方向 | 区间 | 震荡市调整建议 |\r\n|------|------|------|------|------|---|\r\n| 估值 | 市盈率/市净率/市销率/市现率 | 0.13/0.10/0.05/0.05 | 越低越好 | 见配置 | 维持或上调 |\r\n| 成长 | 营收增速/利润增速/毛利率 | 0.14/0.13/0.08 | 越高越好 | 见配置 | 维持 |\r\n| 质量 | ROE/资产负债率/流动比率 | 0.10/0.05/0.03 | 前三者高好、负债率低好 | 见配置 | 维持 |\r\n| 动量 | 20日/60日动量 | 0.03/0.01 | 越高越好 | 见配置 | 下调至合计0.05 |\r\n| 股东回报 | 股息率 | 0.05 | 越高越好 | 0-8% | 上调 |\r\n| 科创属性 | 研发投入占比 | 0.05 | 越高越好 | 0-30% | 维持 |\r\n| **合计** | — | **1.00** | — | — | — |\r\n\r\n说明：权重合计必须为 1.00，新增因子时须同步下调其他因子权重；震荡市中可临时下调动量类因子权重（合计不超过0.05），以降低追高风险。\r\n\r\n**示例 1｜单只标的打分手算（含低估值因子反向处理）**\r\n\r\n| 因子 | 原始值 | 归一到0-100 | 方向调整后 | 权重 | 加权得分 |\r\n|------|-------|------------|-----------|------|---------|\r\n| 市盈率 | 18 | (18-0)/(100-0)×100=18 | 100-18=82 | 0.13 | 10.66 |\r\n| 营收增速 | 25% | (25+50)/150×100=50 | 50 | 0.14 | 7.00 |\r\n| 利润增速 | 40% | (40+100)/300×100=46.7 | 46.7 | 0.13 | 6.07 |\r\n| ROE | 18% | (18+20)/70×100=54.3 | 54.3 | 0.10 | 5.43 |\r\n| 股息率 | 3.2% | 3.2/8×100=40 | 40 | 0.05 | 2.00 |\r\n| 研发投入占比 | 8% | 8/30×100=26.7 | 26.7 | 0.05 | 1.33 |\r\n| **合计** | — | — | — | — | **（其余因子相加后）** |\r\n\r\n要点：低估值因子必须先归一再用\"100−归一值\"翻转，否则会把高PE标的误判为最优。\r\n\r\n**示例 2｜因子有效性检验（避免\"看着好用\"）**\r\n\r\n| 检验项 | 方法 | 通过标准 | 不通过时处置 | 检验频率 |\r\n|-------|------|---------|------------|---|\r\n| 单因子IC | 因子值与下期收益的秩相关 | 绝对值 ≥0.03 且方向稳定 | 降低权重或剔除 | 每月 |\r\n| 分组单调性 | 分5组看收益排序 | 收益随分组单调 | 检查极值处理方式 | 每季度 |\r\n| 样本外表现 | 分年度滚动验证 | 样本外方向一致 | 缩短回看窗口 | 每半年 |\r\n| 换手成本 | 统计换仓频率与手续费 | 年化换手成本 <3% | 引入换手惩罚 | 每次调仓 |\r\n| 相关性 | 因子间相关系数 | 两两相关 <0.7 | 合并或删减冗余因子 | 每次新增因子 |\r\n\r\n**示例 3｜权重调整与再平衡（新增因子后如何不破坏权重合计）**\r\n\r\n| 操作 | 调整前 | 调整后 | 理由 |\r\n|------|-------|-------|------|\r\n| 新增“ESG评分”因子 | 权重合计1.00 | 新增0.05 | 需占用权重额度 |\r\n| 下调动量类 | 0.03+0.01 | 0.02+0.01 | 震荡市降低追高风险 |\r\n| 下调市销率 | 0.05 | 0.03 | 与市现率信息重叠 |\r\n| 校验合计 | — | 1.00 | 必须回归1.00 |\r\n\r\n再平衡规则：任何新增因子都必须从现有因子中等额扣减，扣减优先选择信息重叠度高或当前市场状态下失效的因子；调整后须重跑历史检验，确认样本外表现未显著恶化。\r\n\r\n\r\n\r\n### 2. Thematic Stock Screening / 主题投资筛选\r\n\r\n```python\r\nTHEMATIC_SCREENING = {\r\n    \"AI人工智能\": {\r\n        \"核心标的\": [\"科大讯飞\", \"海康威视\", \"中科曙光\", \"寒武纪\", \"商汤-W\"],\r\n        \"概念股池\": {\r\n            \"基础层\": [\"芯片\", \"算力\", \"服务器\"],\r\n            \"技术层\": [\"大模型\", \"算法\", \"API\"],\r\n            \"应用层\": [\"办公\", \"医疗\", \"金融\", \"教育\"]\r\n        },\r\n        \"筛选标准\": {\r\n            \"市值\": \">100亿\",\r\n            \"研发投入\": \">10%\",\r\n            \"AI收入占比\": \">30%\"\r\n        },\r\n        \"风险提示\": \"技术迭代快，竞争格局未定，估值波动大\"\r\n    },\r\n    \r\n    \"新能源汽车\": {\r\n        \"核心标的\": [\"比亚迪\", \"宁德时代\", \"理想汽车-W\", \"小鹏汽车-W\"],\r\n        \"筛选维度\": {\r\n            \"整车\": [\"销量增速\", \"毛利率\", \"智能化水平\"],\r\n            \"电池\": [\"能量密度\", \"成本\", \"产能\"],\r\n            \"配件\": [\"单车价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"以旧换新补贴、购置税减免、新能源渗透率目标\"\r\n    },\r\n    \r\n    \"创新药\": {\r\n        \"核心标的\": [\"恒瑞医药\", \"百济神州\", \"信达生物\", \"药明康德\"],\r\n        \"筛选标准\": {\r\n            \"管线丰富度\": \">10个临床管线\",\r\n            \"first-in-class\": \"至少1个\",\r\n            \"BD能力\": \"有海外授权记录\"\r\n        },\r\n        \"风险因素\": \"医保谈判降价、临床失败风险、同靶点竞争\"\r\n    },\r\n    \r\n    \"红利低波\": {\r\n        \"筛选标准\": {\r\n            \"股息率\": \">3%\",\r\n            \"连续分红年数\": \">=3年\",\r\n            \"近1年波动率\": \"低于全市场中位数\",\r\n            \"自由现金流\": \"为正且覆盖分红\"\r\n        },\r\n        \"适用环境\": \"利率下行、市场震荡、追求现金流回报\",\r\n        \"风险提示\": \"股息率因股价下跌被动抬高需剔除；分红不可持续的高股息为陷阱\"\r\n    },\r\n    \r\n    \"高端制造\": {\r\n        \"筛选维度\": {\r\n            \"机床/母机\": [\"订单增速\", \"国产化率\", \"毛利率\"],\r\n            \"自动化\": [\"下游资本开支\", \"在手订单\"],\r\n            \"精密零部件\": [\"单车/单机价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"设备更新改造、国产替代、制造业投资周期\",\r\n        \"风险因素\": \"下游资本开支不及预期、价格竞争、应收账款回收\"\r\n    }\r\n}\r\n```\r\n\r\n**主题筛选执行清单（从主题到候选池）**\r\n\r\n| 步骤 | 动作 | 产出 | 卡点 | 责任岗 |\r\n|------|------|------|------|---|\r\n| 1 | 拆解产业链上下游环节 | 环节清单 | 环节定义须无重叠 | 研究 |\r\n| 2 | 为每个环节设定量化筛选标准 | 标准表 | 标准须可用财报数据验证 | 研究 |\r\n| 3 | 拉取候选池并剔除不达标标的 | 候选清单 | 剔除理由须留档 | 研究+数据 |\r\n| 4 | 补充流动性与拥挤度过滤 | 可交易候选池 | 单笔建仓 ≤日均成交额5% | 风控 |\r\n| 5 | 计算综合评分排序 | 排序表 | 标注数据报告期 | 研究 |\r\n| 6 | 输出并附风险提示 | 主题选股报告 | 保留免责声明 | 合规 |\r\n\r\n**示例｜同一主题的两种筛选口径对比**\r\n\r\n| 口径 | 条件 | 候选数量 | 入选标的特征 | 适用场景 | 风险提示重点 |\r\n|------|------|---------|------------|---------|---|\r\n| 严格口径 | 研发占比>10% + 主题收入占比>30% + 市值>100亿 | 8只 | 纯度高、弹性中等 | 中长期配置 | 纯度高但数量少，注意流动性 |\r\n| 宽松口径 | 主题收入占比>10% 或 有明确订单 | 26只 | 纯度低、弹性大 | 主题轮动早期 | 须注明纯度较低 |\r\n| 事件口径 | 近3个月有订单/中标/产能公告 | 12只 | 催化明确、波动大 | 事件驱动交易 | 催化退坡后回撤大 |\r\n\r\n使用要点：三种口径不可混用；若报告使用宽松口径，必须在结论中注明\"纯度较低、可能与主题关联度不足\"。\r\n\r\n**示例 2｜主题生命周期与筛选口径的选择**\r\n\r\n| 阶段 | 特征 | 推荐口径 | 仓位建议 | 退出信号 |\r\n|------|------|---------|---------|---------|\r\n| 萌芽期 | 政策出台、标的少 | 事件口径 | 轻仓试错 | 政策落地不及预期 |\r\n| 成长期 | 订单落地、业绩兑现 | 严格口径 | 逐步加仓 | 增速连续两季下滑 |\r\n| 扩散期 | 概念股大量增加 | 宽松口径转严格 | 降低纯度低标的 | 龙头见顶 |\r\n| 退潮期 | 业绩证伪、估值回落 | 停止新增 | 逐步退出 | 跌破止损位 |\r\n\r\n要点：同一主题在不同阶段应切换口径，而不是全程用一种口径；从成长期进入扩散期时，应把“宽松口径”切回“严格口径”，避免买入仅有关联度而无实际业务的标的。\r\n\r\n\r\n\r\n### 3. Technical Signal Detection / 技术信号检测\r\n\r\n```python\r\nclass TechnicalSignals:\r\n    \"\"\"技术信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def detect_moving_average_signals(prices: pd.Series, \r\n                                      short_ma: int = 20,\r\n                                      long_ma: int = 60) -> dict:\r\n        \"\"\"均线信号检测\"\"\"\r\n        ma_short = prices.rolling(short_ma).mean()\r\n        ma_long = prices.rolling(long_ma).mean()\r\n        \r\n        # 金叉/死叉判断\r\n        current_ma_diff = ma_short.iloc[-1] - ma_long.iloc[-1]\r\n        prev_ma_diff = ma_short.iloc[-2] - ma_long.iloc[-2]\r\n        \r\n        if current_ma_diff > 0 and prev_ma_diff <= 0:\r\n            signal = \"GOLDEN_CROSS\"  # 金叉\r\n        elif current_ma_diff < 0 and prev_ma_diff >= 0:\r\n            signal = \"DEAD_CROSS\"  # 死叉\r\n        else:\r\n            signal = \"NEUTRAL\"\r\n        \r\n        return {\r\n            \"signal\": signal,\r\n            \"short_ma\": round(ma_short.iloc[-1], 2),\r\n            \"long_ma\": round(ma_long.iloc[-1], 2),\r\n            \"ma_diff_pct\": round((current_ma_diff / ma_long.iloc[-1]) * 100, 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_support_resistance(prices: pd.Series, \r\n                                 lookback: int = 60) -> dict:\r\n        \"\"\"支撑压力位检测\"\"\"\r\n        recent = prices.tail(lookback)\r\n        \r\n        # 计算枢轴点\r\n        pivot = (recent.max() + recent.min() + recent.iloc[-1]) / 3\r\n        \r\n        r1 = 2 * pivot - recent.min()\r\n        s1 = 2 * pivot - recent.max()\r\n        r2 = pivot + (recent.max() - recent.min())\r\n        s2 = pivot - (recent.max() - recent.min())\r\n        \r\n        return {\r\n            \"resistance_1\": round(r1, 2),\r\n            \"resistance_2\": round(r2, 2),\r\n            \"pivot\": round(pivot, 2),\r\n            \"support_1\": round(s1, 2),\r\n            \"support_2\": round(s2, 2),\r\n            \"current_price\": round(prices.iloc[-1], 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_volume_anomaly(prices: pd.Series, \r\n                             volumes: pd.Series,\r\n                             threshold: float = 2.0) -> dict:\r\n        \"\"\"量价异常检测\"\"\"\r\n        avg_volume = volumes.tail(20).mean()\r\n        current_volume = volumes.iloc[-1]\r\n        volume_ratio = current_volume / avg_volume\r\n        \r\n        # 价格与成交量背离\r\n        price_change = (prices.iloc[-1] - prices.iloc[-2]) / prices.iloc[-2]\r\n        \r\n        return {\r\n            \"volume_ratio\": round(volume_ratio, 2),\r\n            \"is_volume_surge\": volume_ratio > threshold,\r\n            \"price_change\": round(price_change * 100, 2),\r\n            \"divergence\": \"量价背离\" if (price_change > 0 and volume_ratio < 0.5) or\r\n                                      (price_change < 0 and volume_ratio > 2) else \"正常\"\r\n        }\r\n```\r\n\r\n**信号组合矩阵（单一信号不决策，组合才决策）**\r\n\r\n| 均线信号 | 量能状态 | 价格位置 | 综合判断 | 建议动作 | 仓位参考 |\r\n|---------|---------|---------|---------|---------|---|\r\n| 金叉 | 放量（>2倍） | 突破压力位 | 强势确认 | 可分批建仓 | 可至八成 |\r\n| 金叉 | 缩量（<0.8倍） | 未突破压力位 | 信号弱，可能反复 | 观察，暂不动 | 不超过四成 |\r\n| 金叉 | 放量 | 已连续大涨后 | 追高风险 | 不追，等回调 | 不加仓 |\r\n| 死叉 | 放量 | 跌破支撑位 | 趋势转弱 | 按纪律减仓 | 降至两成 |\r\n| 死叉 | 缩量 | 支撑位附近 | 可能假跌破 | 观察一日再定 | 维持观察 |\r\n| 中性 | 量价背离 | 高位滞涨 | 分歧加大 | 降低仓位 | 降至四成 |\r\n\r\n**示例｜信号有效性统计（先验证再使用）**\r\n\r\n| 信号 | 样本数 | 5日胜率 | 20日胜率 | 平均20日收益 | 结论 | 适用市场状态 |\r\n|------|-------|--------|---------|------------|------|---|\r\n| 金叉+放量 | 320 | 58% | 61% | +3.2% | 保留，作为主要信号 | 上涨/震荡 |\r\n| 金叉（缩量） | 410 | 49% | 47% | +0.4% | 弱化，需叠加其他条件 | 仅上涨 |\r\n| 死叉+跌破支撑 | 260 | — | — | -2.8% | 保留，作为减仓信号 | 全状态 |\r\n| 量价背离 | 180 | 44% | 41% | -1.1% | 作为预警信号使用 | 高位预警 |\r\n\r\n使用要点：胜率需按市场状态分层统计（上涨/震荡/下跌），单一整体胜率可能掩盖失效区间；若某信号在震荡市胜率低于45%，应暂停使用。\r\n\r\n**示例｜信号与仓位对应（把信号变成纪律）**\r\n\r\n| 综合评分 | 信号状态 | 建议仓位上限 | 单标的上限 | 止损参考 | 检查频率 |\r\n|---------|---------|------------|-----------|---------|---|\r\n| ≥80 | 金叉+放量 | 80% | 15% | −8% | 每日 |\r\n| 70-79 | 金叉（等确认） | 60% | 12% | −8% | 每日 |\r\n| 60-69 | 中性 | 40% | 10% | −10% | 每周 |\r\n| <60 | 死叉或背离 | 20% | 8% | 立即评估 | 每日 |\r\n\r\n**示例 2｜信号失效的排查流程（按状态分层）**\r\n\r\n| 步骤 | 动作 | 判定标准 | 处置 |\r\n|------|------|---------|------|\r\n| 1 | 按市场状态分层统计胜率 | 上涨/震荡/下跌三组分别统计 | 找出失效区间 |\r\n| 2 | 检查样本量是否充足 | 每组样本 ≥100 | 不足则延长回看窗口 |\r\n| 3 | 检查是否含未来函数 | 信号是否用到了当时不可得的数据 | 有则剔除重算 |\r\n| 4 | 检查交易成本假设 | 是否计入滑点与印花税 | 未计入则补算 |\r\n| 5 | 复核结论 | 净收益是否仍为正 | 为正则保留，否则停用 |\r\n\r\n排查原则：信号整体胜率达标但在某状态下失效时，应“按状态停用”而非整体停用；同时必须检查未来函数，这是实盘失效最常见的原因。\r\n\r\n\r\n\r\n### 4. Financial Fraud Detection / 财报异常检测\r\n\r\n```python\r\nclass FraudDetection:\r\n    \"\"\"财报异常信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def check_revenue_quality(stock_code: str, \r\n                             financial_data: dict) -> dict:\r\n        \"\"\"营收质量检测\"\"\"\r\n        indicators = {\r\n            # 应收账款异常\r\n            \"ar_growth_vs_revenue\": financial_data.get(\"ar_growth\", 0) - \r\n                                    financial_data.get(\"revenue_growth\", 0),\r\n            \r\n            # 存货异常\r\n            \"inventory_growth_vs_cost\": financial_data.get(\"inv_growth\", 0) - \r\n                                        financial_data.get(\"cost_growth\", 0),\r\n            \r\n            # 现金流匹配\r\n            \"cash_flow_ratio\": financial_data.get(\"cfo\", 0) / \r\n                              max(financial_data.get(\"net_profit\", 1), 1),\r\n            \r\n            # 毛利率异常\r\n            \"gross_margin_volatility\": financial_data.get(\"gm_std\", 0),\r\n            \r\n            # 关联交易占比\r\n            \"related_party_ratio\": financial_data.get(\"rpt_revenue\", 0) / \r\n                                  max(financial_data.get(\"total_revenue\", 1), 1)\r\n        }\r\n        \r\n        # 预警信号\r\n        warnings = []\r\n        if indicators[\"ar_growth_vs_revenue\"] > 30:\r\n            warnings.append(\"应收账款增速显著高于营收增速，可能存在虚构收入\")\r\n        if indicators[\"cash_flow_ratio\"] < 0.5:\r\n            warnings.append(\"经营现金流显著低于净利润，盈利质量存疑\")\r\n        if indicators[\"related_party_ratio\"] > 0.5:\r\n            warnings.append(\"关联交易占比过高，存在利益输送风险\")\r\n        \r\n        return {\r\n            \"indicators\": indicators,\r\n            \"warnings\": warnings,\r\n            \"overall_risk\": \"高\" if len(warnings) >= 2 else \r\n                           \"中\" if warnings else \"低\"\r\n        }\r\n    \r\n    @staticmethod\r\n    def check_auditor_warnings(audit_reports: list) -> dict:\r\n        \"\"\"审计意见检测\"\"\"\r\n        risk_keywords = [\"保留意见\", \"无法表示意见\", \"非标准无保留\", \r\n                        \"持续经营重大不确定性\", \"强调事项段\"]\r\n        \r\n        findings = []\r\n        for report in audit_reports:\r\n            for keyword in risk_keywords:\r\n                if keyword in report:\r\n                    findings.append({\r\n                        \"keyword\": keyword,\r\n                        \"context\": report\r\n                    })\r\n        \r\n        return {\r\n            \"has_warnings\": len(findings) > 0,\r\n            \"findings\": findings,\r\n            \"risk_level\": \"高\" if findings else \"低\"\r\n        }\r\n```\r\n\r\n**财报异常指标阈值表（触发即预警）**\r\n\r\n| 指标 | 计算口径 | 关注阈值 | 预警阈值 | 说明 | 数据来源 |\r\n|------|---------|---------|---------|------|---|\r\n| 应收增速−营收增速 | 两个同比增速之差 | >15pct | >30pct | 可能虚构收入或放宽信用 | 资产负债表/附注 |\r\n| 存货增速−成本增速 | 同比增速之差 | >15pct | >30pct | 可能存货积压或虚增 | 资产负债表/附注 |\r\n| 经营现金流/净利润 | CFO ÷ 归母净利润 | <0.8 | <0.5 | 盈利质量存疑 | 现金流量表 |\r\n| 毛利率波动率 | 近8期标准差 | >2.5pct | >4pct | 可能人为调节 | 利润表 |\r\n| 关联交易收入占比 | 关联收入 ÷ 营收 | >30% | >50% | 利益输送风险 | 关联交易章节 |\r\n| 商誉/净资产 | 商誉 ÷ 净资产 | >20% | >40% | 减值风险 | 资产负债表 |\r\n| 审计意见类型 | 意见段 | 带强调事项段 | 保留/无法表示意见 | 直接排除 | 审计报告意见段 |\r\n\r\n**示例｜综合风险判定（三项指标联动）**\r\n\r\n| 标的 | 应收−营收 | CFO/净利润 | 关联占比 | 命中预警数 | 风险判定 | 处置 | 复核要求 |\r\n|------|----------|-----------|---------|-----------|---------|------|---|\r\n| 标的A | +8pct | 1.12 | 12% | 0 | 低 | 正常纳入评分 | 常规复核 |\r\n| 标的B | +34pct | 0.62 | 21% | 2 | 高 | 直接排除，不参与评分 | 出具排除说明并留档 |\r\n| 标的C | +18pct | 0.75 | 33% | 2 | 高 | 核查后决定是否排除 | 完成核查前不得纳入 |\r\n| 标的D | +5pct | 0.95 | 8% | 0 | 低 | 正常纳入评分 | 常规复核 |\r\n\r\n使用要点：命中2项及以上预警阈值即判定为高风险，无论综合评分多高均不纳入候选池；单一指标命中需在报告中说明核查进展，不得直接作为结论。\r\n\r\n**示例 2｜造假信号的误报排查（避免错杀）**\r\n\r\n| 预警信号 | 可能的正常解释 | 核查动作 | 结论处理 |\r\n|---------|--------------|---------|---------|\r\n| 应收增速高于营收 | 大客户账期延长、并表新增 | 查客户结构与账期政策 | 有合理解释则降为关注 |\r\n| 存货增速高于成本 | 备货旺季、原材料涨价 | 查存货结构与周转天数 | 周转未恶化则降为关注 |\r\n| CFO低于净利润 | 大额资本开支、票据结算 | 查现金流量表附注 | 经营性应收增加过快才预警 |\r\n| 关联交易占比高 | 集团内统购统销模式 | 查定价依据与公允性说明 | 定价公允则降为关注 |\r\n| 毛利率波动大 | 产品结构变化、会计政策变更 | 查分品类毛利率 | 结构性变化则不预警 |\r\n\r\n排查原则：单一指标命中只触发“核查”，不直接判定造假；须至少两项指标同时异常且无合理解释，方可判定高风险并排除。\r\n\r\n\r\n\r\n### 5. Portfolio Construction / 组合构建\r\n\r\n```python\r\nclass PortfolioBuilder:\r\n    \"\"\"智能组合构建\"\"\"\r\n    \r\n    def __init__(self, target_stocks: List[dict], \r\n                 total_capital: float = 1000000):\r\n        self.stocks = target_stocks\r\n        self.capital = total_capital\r\n    \r\n    def build_equal_weight(self, max_positions: int = 10) -> dict:\r\n        \"\"\"等权重配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        per_stock = self.capital / len(selected)\r\n        \r\n        positions = []\r\n        for stock in selected:\r\n            shares = int(per_stock / stock[\"price\"] / 100) * 100  # 100股整数\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": 1 / len(selected)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"等权重\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions),\r\n            \"cash_remaining\": self.capital - sum(p[\"amount\"] for p in positions),\r\n            \"expected_return\": sum(s.get(\"expected_return\", 0) for s in selected) / len(selected),\r\n            \"estimated_risk\": self._calculate_portfolio_risk(positions)\r\n        }\r\n    \r\n    def build_risk_parity(self, max_positions: int = 10) -> dict:\r\n        \"\"\"风险平价配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        \r\n        # 使用波动率倒数作为权重\r\n        inv_vol = [1 / s.get(\"volatility\", 0.3) for s in selected]\r\n        total_inv_vol = sum(inv_vol)\r\n        weights = [v / total_inv_vol for v in inv_vol]\r\n        \r\n        positions = []\r\n        for stock, weight in zip(selected, weights):\r\n            amount = self.capital * weight\r\n            shares = int(amount / stock[\"price\"] / 100) * 100\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": round(weight * 100, 2)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"风险平价\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions)\r\n        }\r\n    \r\n    def _calculate_portfolio_risk(self, positions: list) -> float:\r\n        \"\"\"简化组合风险估算\"\"\"\r\n        # 假设相关性0.3\r\n        individual_risks = [0.25] * len(positions)  # 默认25%波动率\r\n        correlation = 0.3\r\n        \r\n        portfolio_var = 0\r\n        for i, risk_i in enumerate(individual_risks):\r\n            for j, risk_j in enumerate(individual_risks):\r\n                weight_i = 1 / len(positions)\r\n                weight_j = 1 / len(positions)\r\n                corr = correlation if i != j else 1\r\n                portfolio_var += weight_i * weight_j * risk_i * risk_j * corr\r\n        \r\n        return round(np.sqrt(portfolio_var) * 100, 2)\r\n```\r\n\r\n**示例 1｜等权重 vs 风险平价（同一候选池两种结果）**\r\n\r\n| 标的 | 预期收益 | 波动率 | 等权重 | 风险平价权重 | 差异说明 | 相关性分组 |\r\n|------|---------|-------|-------|------------|---------|---|\r\n| 标的A | 18% | 20% | 10.0% | 12.5% | 低波动，风险平价提升权重 | 防御组 |\r\n| 标的B | 25% | 35% | 10.0% | 7.1% | 高波动，风险平价下调权重 | 周期组 |\r\n| 标的C | 15% | 18% | 10.0% | 13.9% | 最低波动，权重最高 | 防御组 |\r\n| 标的D | 30% | 45% | 10.0% | 5.6% | 最高波动，权重最低 | 周期组 |\r\n\r\n结论：等权重简单透明、易执行；风险平价会在不牺牲过多收益的前提下降低组合波动，适合波动容忍度较低的账户。两种方式都应同时给出，便于对照选择。\r\n\r\n**示例 2｜组合风控阈值表（建仓前先设红线）**\r\n\r\n| 风控项 | 阈值 | 超限动作 | 检查频率 | 责任人 |\r\n|-------|------|---------|---------|---|\r\n| 单标的权重 | ≤15% | 触发即减仓至阈值内 | 每周 | 投研负责人 |\r\n| 单一行业权重 | ≤35% | 新增买入暂停，优先调出 | 每周 | 投研负责人 |\r\n| 前三大标的合计 | ≤40% | 降低集中度 | 每两周 | 风控 |\r\n| 组合预估波动率 | ≤25% | 降仓或增加低波动资产 | 每月 | 风控 |\r\n| 单标的浮亏 | −8%至−10% | 按纪律评估减仓 | 每日 | 交易执行 |\r\n| 组合最大回撤 | −15% | 启动整体降仓预案 | 每日 | 风控 |\r\n\r\n**示例 3｜建仓分批节奏（避免一次性买在高点）**\r\n\r\n| 批次 | 触发条件 | 投入比例 | 备注 | 失败处理 |\r\n|------|---------|---------|------|---|\r\n| 第1批 | 信号确认（金叉+放量） | 40% | 建立底仓 | 信号证伪则停止后续批次 |\r\n| 第2批 | 回踩支撑不破 | 30% | 摊薄成本 | 破位则转为减仓 |\r\n| 第3批 | 突破前高确认 | 30% | 趋势延续加仓 | 未突破则观望 |\r\n| 例外 | 跌破止损位 | 0%（不补） | 按纪律减仓 | 立即执行减仓 |\r\n**示例 4｜组合再平衡的触发条件（避免频繁调仓）**\r\n\r\n| 触发类型 | 条件 | 动作 | 是否立即执行 |\r\n|---------|------|------|------------|\r\n| 阈值触发 | 单标的权重偏离目标 ±5pct | 调回目标权重 | 是 |\r\n| 时间触发 | 每季度末 | 全面复核并再平衡 | 是 |\r\n| 风险触发 | 组合波动率超25% | 降低高波动标的权重 | 是 |\r\n| 事件触发 | 标的命中财报预警 | 剔除并补入候选池下一名 | 是 |\r\n| 噪声波动 | 偏离 <±3pct | 不动作 | 否 |\r\n\r\n再平衡原则：设置“噪声带”（±3pct以内不动）以控制换手成本；再平衡前须先检查是否触发风控阈值，风控优先于再平衡。\r\n\r\n\r\n\r\n\r\n---\r\n\r\n## Usage Examples / 使用示例\r\n\r\n**启动选股：**\r\n```\r\n用以下条件筛选股票：\r\n- 市盈率 < 30\r\n- 营收增速 > 20%\r\n- ROE > 15%\r\n- 综合评分 > 70\r\n```\r\n\r\n**主题选股：**\r\n```\r\n筛选AI人工智能概念中估值最低的10只股票\r\n```\r\n\r\n**技术面选股：**\r\n```\r\n找出所有出现均线金叉且放量突破的股票\r\n```\r\n\r\n**因子有效性检验：**\r\n```\r\n对[因子名称]做有效性检验：输出IC值、分组单调性、\r\n样本外方向一致性、换手成本与因子间相关性，并给出是否保留的结论。\r\n```\r\n\r\n**组合构建与风控：**\r\n```\r\n用以下候选池构建组合，同时输出等权重与风险平价两种方案，\r\n并检查单标的上限（15%）、行业上限（35%）、组合波动率（≤25%）是否超限。\r\n```\r\n\r\n---\r\n\r\n## Disclaimer\r\n\r\nThis skill provides stock screening tools and analysis for educational purposes. Stock selection results are based on quantitative models and historical data, which do not guarantee future performance. All investment decisions should be made based on independent research and professional advice. Past performance does not indicate future results.\n\nFile v3.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn74e704j3ygjcygnpf02rdvd185js13\",\n  \"slug\": \"security-stock-picker\",\n  \"version\": \"3.0.3\",\n  \"publishedAt\": 1790751778743\n}\n\nFile v3.0.3:skill-card.md\n\n## Description:\n\nProvides an educational framework for screening China A-share stocks using quantitative factors, fundamentals, technical signals, sector analysis, and portfolio construction.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[gechengling](https://clawhub.ai/user/gechengling)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nInvestors and analysts use this skill to develop and review educational A-share screening criteria, factor comparisons, risk checks, and illustrative portfolio allocations; it does not provide investment advice or place trades.\n\n### Deployment Geography for Use:\n\nGlobal (focused on China's A-share market)\n\n## Known Risks and Mitigations:\n\nRisk: Outdated or inaccurate market data, regulatory claims, or model outputs could mislead financial decisions.\n\nMitigation: Independently verify data, claims, and screening results before acting; treat outputs as educational, not investment advice.\n\nRisk: Portfolio details could expose sensitive financial information.\n\nMitigation: Share only anonymized holdings weights or factor data; omit account identifiers and transaction records.\n\nRisk: Illustrative code or portfolio suggestions could be mistaken for executable trading instructions.\n\nMitigation: Review parameters and outputs before using any examples in an external environment; do not automate trades from this skill.\n\n## Reference(s):\n\n- [Security Stock Picker on ClawHub](https://clawhub.ai/gechengling/skills/security-stock-picker)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Guidance, Code]\n\n**Output Format:** [Markdown with tables and illustrative code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Educational screening and portfolio examples; no live data access or trade execution.]\n\n## Skill Version(s):\n\n3.0.3 (source: ClawHub release metadata and skill frontmatter)\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\nArchive v3.0.2: 3 files, 13397 bytes\n\nFiles: skill-card.md (2385b), SKILL.md (31544b), _meta.json (140b)\n\nFile v3.0.2:SKILL.md\n\n---\r\nname: AI-Powered Stock Selection Engine\r\nslug: security-stock-screening\r\ndescription: AI-powered intelligent stock selection engine for China A-share market — covers quantitative factor screening, fundamental analysis ranking, technical signal detection, sector rotation analysis, and portfolio construction. Built for retail investors, fund managers, and quantitative analysts. Updated 2026 with latest factor models, short-seller vulnerability detection, and AI-enhanced stock screening. Keywords: stock selection, quantitative screening, factor investing, technical analysis, China A-share, stock picker, AI investing, 选股引擎, 量化选股, 因子投资, 技术分析, A股, 智能选股, 选股策略, 量化策略, AI选股, 股票筛选, 价值投资, 成长股, 短线选股.\r\nversion: \"3.0.2\"\r\n---\r\n\r\n# AI-Powered Stock Selection Engine / 智能选股引擎\r\n\r\n> **English:** AI-powered intelligent stock selection engine for China A-share market — combines quantitative factor screening, fundamental analysis, technical signals, and sector rotation analysis. Solves pain points: information overload, emotional decision-making, and inconsistent stock picking criteria. Built for investors and analysts at all levels.\r\n>\r\n> **中文:** 智能选股引擎——整合量化因子筛选、基本面分析、技术信号检测、行业轮动分析的全流程选股工具。解决痛点：信息过载、情绪化决策、选股标准不统一。适用：各级投资者、基金经理、量化分析师。\r\n\r\n---\r\n\r\n\r\n### 证券监管最新动态 [2026-09-12更新]\r\n\r\n| 动态类型 | 内容摘要 | 影响范围 | 选股侧应对动作 | 责任岗 | 优先级 |\r\n|---------|---------|---------|--------------|-------|-------|\r\n| 证券监管 | 2026年A股量化资金占比30%-40%，选股模型需考虑量化冲击 | 选股引擎需增加量化冲击识别和极端行情风控 | 模型输出附带流动性冲击提示与成交结构说明 | 研究 | 高 |\r\n| 证券监管 | 2026年3月23日量化踩踏案例（单日蒸发4.29万亿），风控需加强 | 选股引擎需增加量化冲击识别和极端行情风控 | 引入集中度与拥挤度指标，作为风控前置条件 | 研究 | 高 |\r\n| 证券监管 | 上证周线级别中枢震荡，2026年核心区间3200-4000点 | 选股引擎需增加量化冲击识别和极端行情风控 | 震荡区间内降低趋势类因子权重 | 研究 | 中 |\r\n| 程序化交易 | 程序化交易报告与异常交易监控要求细化 | 与量化资金相关的流动性与波动分析 | 在流动性评估中单独列示程序化交易影响 | 研究 | 中 |\r\n| 信息披露 | 财务信息披露质量监管持续强化 | 财报异常检测、因子取数 | 因子取数须标注报告期与公告编号 | 研究 | 高 |\r\n| 市值管理 | 上市公司市值管理行为披露要求趋严 | 涉及回购、增减持的个股筛选 | 筛选中单列股东行为事件标签 | 研究 | 中 |\r\n| 业绩预告 | 业绩预告披露质量受关注 | 事件驱动类选股 | 使用预告数据时区分预告口径与实际口径 | 研究 | 高 |\r\n| 投资者保护 | 投顾与荐股类内容传播边界收紧 | 选股结果对外输出 | 输出结果保留风险提示与免责声明 | 合规 | 高 |\r\n\r\n> **数据截止**: 2026-09-12 | 来源：证监会、交易所公开规则、行业公开信息\r\n> **声明**: 以上动态供参考，具体以官方最新发布为准\r\n\r\n**动态解读示例（四类高频场景）**\r\n\r\n- **场景A｜量化冲击识别**：某标的近20日成交额中位数仅0.8亿元，模型给出买入信号 → 命中\"流动性冲击\"风险 → 输出中增加\"预估冲击成本\"，并提示单笔建仓不超过日均成交额的5%。\r\n- **场景B｜拥挤度预警**：某板块因子暴露高度集中、机构持仓占比快速抬升 → 命中\"踩踏风险\" → 在风控前置条件中加入拥挤度阈值，超阈值则降低该板块权重。\r\n- **场景C｜因子取数可追溯**：ROE取数未标注报告期 → 命中\"取数须可追溯\" → 因子表增加\"报告期\"与\"公告编号\"两列，便于回溯与复算。\r\n- **场景D｜预告口径混用**：用业绩预告中值直接作为当年利润因子 → 命中\"预告与实际口径混用\" → 预告期数据单列\"预告口径\"标记，与实际披露数据分栏展示。\r\n\r\n## Industry Pain Points / 行业痛点\r\n\r\n| Pain Point / 痛点 | Impact / 影响 | Solution / 本Skill解决方案 | 量化基线指标 / Baseline |\r\n|------------------|-------------|------------------------|----------------------|\r\n| **信息过载** | A股5000+股票，无法逐一研究 | 多维度因子筛选，快速缩小范围 | 一次筛选候选池 ≤50只 |\r\n| **情绪化决策** | 追涨杀跌，高买低卖 | 量化标准选股，避免主观干扰 | 交易决策中规则触发占比 ≥80% |\r\n| **选股标准模糊** | 没有系统性方法论 | 完整选股框架+评分模型 | 每条选股逻辑可量化复现 |\r\n| **财报造假风险** | 康美药业、瑞幸等案例警示 | 财报异常信号检测+预警 | 高风险标的排除率 100% |\r\n| **行业轮动难把握** | 踏错节奏，板块轮动踏空 | 宏观+情绪+资金三维轮动模型 | 轮动判断命中率 ≥60% |\r\n| **流动性陷阱** | 小市值标的无法顺利进出 | 流动性门槛+冲击成本估算 | 单笔建仓 ≤日均成交额5% |\r\n| **拥挤度风险** | 机构持仓过度集中引发踩踏 | 拥挤度指标与阈值监控 | 超阈值板块权重自动下调 |\r\n| **样本外失效** | 因子在样本内有效、样本外失效 | 分区间验证与滚动检验 | 样本外IC保持同向 ≥60%窗 |\r\n\r\n---\r\n\r\n## Trigger Keywords / 触发关键词\r\n\r\n**English Triggers:** stock selection, quantitative screening, factor investing, fundamental analysis, technical analysis, China A-share, stock picker, AI investing, momentum stocks, value investing, growth stocks, sector rotation, portfolio construction\r\n\r\n**中文触发词（优先）：** 选股 / 智能选股 / 量化选股 / 因子选股 / 基本面选股 / 技术面选股 / 价值投资 / 成长股 / 蓝筹股 / 小盘股 / 行业轮动 / 板块轮动 / 资金流向 / 北向资金 / 龙虎榜 / 涨停板 / 破净股 / 低估值 / 高成长 / 业绩超预期 / 财报选股 / 研报筛选 / AI选股 / 机器选股 / 组合构建 / 仓位管理 / 止损策略\r\n\r\n---\r\n\r\n## Core Capabilities / 核心能力\r\n\r\n### 1. Quantitative Factor Screening / 量化因子筛选\r\n\r\n```python\r\nimport pandas as pd\r\nimport numpy as np\r\nfrom typing import List, Dict, Optional\r\n\r\nclass StockScreener:\r\n    \"\"\"智能选股引擎\"\"\"\r\n    \r\n    def __init__(self):\r\n        self.factors = {\r\n            # 估值因子\r\n            \"pe\": {\"name\": \"市盈率\", \"weight\": 0.13, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"pb\": {\"name\": \"市净率\", \"weight\": 0.10, \"direction\": \"low_better\", \"bounds\": (0, 10)},\r\n            \"ps\": {\"name\": \"市销率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 20)},\r\n            \"pcf\": {\"name\": \"市现率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 30)},\r\n            \r\n            # 成长因子\r\n            \"revenue_growth\": {\"name\": \"营收增速\", \"weight\": 0.14, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \"profit_growth\": {\"name\": \"利润增速\", \"weight\": 0.13, \"direction\": \"high_better\", \"bounds\": (-100, 200)},\r\n            \"gross_margin\": {\"name\": \"毛利率\", \"weight\": 0.08, \"direction\": \"high_better\", \"bounds\": (0, 100)},\r\n            \r\n            # 质量因子\r\n            \"roe\": {\"name\": \"ROE\", \"weight\": 0.10, \"direction\": \"high_better\", \"bounds\": (-20, 50)},\r\n            \"debt_ratio\": {\"name\": \"资产负债率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"current_ratio\": {\"name\": \"流动比率\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (0.5, 10)},\r\n            \r\n            # 动量因子\r\n            \"momentum_20d\": {\"name\": \"20日动量\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (-30, 50)},\r\n            \"momentum_60d\": {\"name\": \"60日动量\", \"weight\": 0.01, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \r\n            # 股东回报因子\r\n            \"dividend_yield\": {\"name\": \"股息率\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (0, 8)},\r\n            \r\n            # 科创属性因子\r\n            \"rd_ratio\": {\"name\": \"研发投入占比\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (0, 30)}\r\n        }\r\n    \r\n    def screen(self, stocks: pd.DataFrame, \r\n               criteria: Dict[str, tuple],\r\n               min_score: float = 60) -> pd.DataFrame:\r\n        \"\"\"\r\n        量化筛选主函数\r\n        Args:\r\n            stocks: 股票数据（含各因子列）\r\n            criteria: 筛选条件 {因子名: (最小值, 最大值)}\r\n            min_score: 最低综合评分\r\n        Returns:\r\n            符合条件的股票\r\n        \"\"\"\r\n        result = stocks.copy()\r\n        \r\n        # Step 1: 硬性条件筛选\r\n        for factor, (min_val, max_val) in criteria.items():\r\n            if factor in result.columns:\r\n                result = result[(result[factor] >= min_val) & (result[factor] <= max_val)]\r\n        \r\n        # Step 2: 因子打分\r\n        result = self._factor_scoring(result)\r\n        \r\n        # Step 3: 综合评分排序\r\n        result = result[result[\"综合评分\"] >= min_score].sort_values(\"综合评分\", ascending=False)\r\n        \r\n        return result\r\n    \r\n    def _factor_scoring(self, df: pd.DataFrame) -> pd.DataFrame:\r\n        \"\"\"因子打分（百分制）\"\"\"\r\n        scores = pd.DataFrame(index=df.index)\r\n        \r\n        for factor, config in self.factors.items():\r\n            if factor in df.columns:\r\n                raw = df[factor].copy()\r\n                min_val, max_val = config[\"bounds\"]\r\n                \r\n                # 标准化到0-100\r\n                normalized = (raw - min_val) / (max_val - min_val) * 100\r\n                normalized = normalized.clip(0, 100)\r\n                \r\n                # 方向调整（部分因子越低越好）\r\n                if config[\"direction\"] == \"low_better\":\r\n                    normalized = 100 - normalized\r\n                \r\n                scores[factor] = normalized * config[\"weight\"]\r\n        \r\n        df[\"综合评分\"] = scores.sum(axis=1)\r\n        return df\r\n```\r\n\r\n**因子权重与方向一览（可直接核对权重合计）**\r\n\r\n| 类别 | 因子 | 权重 | 方向 | 区间 |\r\n|------|------|------|------|------|\r\n| 估值 | 市盈率/市净率/市销率/市现率 | 0.13/0.10/0.05/0.05 | 越低越好 | 见配置 |\r\n| 成长 | 营收增速/利润增速/毛利率 | 0.14/0.13/0.08 | 越高越好 | 见配置 |\r\n| 质量 | ROE/资产负债率/流动比率 | 0.10/0.05/0.03 | 前三者高好、负债率低好 | 见配置 |\r\n| 动量 | 20日/60日动量 | 0.03/0.01 | 越高越好 | 见配置 |\r\n| 股东回报 | 股息率 | 0.05 | 越高越好 | 0-8% |\r\n| 科创属性 | 研发投入占比 | 0.05 | 越高越好 | 0-30% |\r\n| **合计** | — | **1.00** | — | — |\r\n\r\n说明：权重合计必须为 1.00，新增因子时须同步下调其他因子权重；震荡市中可临时下调动量类因子权重（合计不超过0.05），以降低追高风险。\r\n\r\n**示例 1｜单只标的打分手算（含低估值因子反向处理）**\r\n\r\n| 因子 | 原始值 | 归一到0-100 | 方向调整后 | 权重 | 加权得分 |\r\n|------|-------|------------|-----------|------|---------|\r\n| 市盈率 | 18 | (18-0)/(100-0)×100=18 | 100-18=82 | 0.13 | 10.66 |\r\n| 营收增速 | 25% | (25+50)/150×100=50 | 50 | 0.14 | 7.00 |\r\n| 利润增速 | 40% | (40+100)/300×100=46.7 | 46.7 | 0.13 | 6.07 |\r\n| ROE | 18% | (18+20)/70×100=54.3 | 54.3 | 0.10 | 5.43 |\r\n| 股息率 | 3.2% | 3.2/8×100=40 | 40 | 0.05 | 2.00 |\r\n| 研发投入占比 | 8% | 8/30×100=26.7 | 26.7 | 0.05 | 1.33 |\r\n| **合计** | — | — | — | — | **（其余因子相加后）** |\r\n\r\n要点：低估值因子必须先归一再用\"100−归一值\"翻转，否则会把高PE标的误判为最优。\r\n\r\n**示例 2｜因子有效性检验（避免\"看着好用\"）**\r\n\r\n| 检验项 | 方法 | 通过标准 | 不通过时处置 |\r\n|-------|------|---------|------------|\r\n| 单因子IC | 因子值与下期收益的秩相关 | 绝对值 ≥0.03 且方向稳定 | 降低权重或剔除 |\r\n| 分组单调性 | 分5组看收益排序 | 收益随分组单调 | 检查极值处理方式 |\r\n| 样本外表现 | 分年度滚动验证 | 样本外方向一致 | 缩短回看窗口 |\r\n| 换手成本 | 统计换仓频率与手续费 | 年化换手成本 <3% | 引入换手惩罚 |\r\n| 相关性 | 因子间相关系数 | 两两相关 <0.7 | 合并或删减冗余因子 |\r\n\r\n### 2. Thematic Stock Screening / 主题投资筛选\r\n\r\n```python\r\nTHEMATIC_SCREENING = {\r\n    \"AI人工智能\": {\r\n        \"核心标的\": [\"科大讯飞\", \"海康威视\", \"中科曙光\", \"寒武纪\", \"商汤-W\"],\r\n        \"概念股池\": {\r\n            \"基础层\": [\"芯片\", \"算力\", \"服务器\"],\r\n            \"技术层\": [\"大模型\", \"算法\", \"API\"],\r\n            \"应用层\": [\"办公\", \"医疗\", \"金融\", \"教育\"]\r\n        },\r\n        \"筛选标准\": {\r\n            \"市值\": \">100亿\",\r\n            \"研发投入\": \">10%\",\r\n            \"AI收入占比\": \">30%\"\r\n        },\r\n        \"风险提示\": \"技术迭代快，竞争格局未定，估值波动大\"\r\n    },\r\n    \r\n    \"新能源汽车\": {\r\n        \"核心标的\": [\"比亚迪\", \"宁德时代\", \"理想汽车-W\", \"小鹏汽车-W\"],\r\n        \"筛选维度\": {\r\n            \"整车\": [\"销量增速\", \"毛利率\", \"智能化水平\"],\r\n            \"电池\": [\"能量密度\", \"成本\", \"产能\"],\r\n            \"配件\": [\"单车价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"以旧换新补贴、购置税减免、新能源渗透率目标\"\r\n    },\r\n    \r\n    \"创新药\": {\r\n        \"核心标的\": [\"恒瑞医药\", \"百济神州\", \"信达生物\", \"药明康德\"],\r\n        \"筛选标准\": {\r\n            \"管线丰富度\": \">10个临床管线\",\r\n            \"first-in-class\": \"至少1个\",\r\n            \"BD能力\": \"有海外授权记录\"\r\n        },\r\n        \"风险因素\": \"医保谈判降价、临床失败风险、同靶点竞争\"\r\n    },\r\n    \r\n    \"红利低波\": {\r\n        \"筛选标准\": {\r\n            \"股息率\": \">3%\",\r\n            \"连续分红年数\": \">=3年\",\r\n            \"近1年波动率\": \"低于全市场中位数\",\r\n            \"自由现金流\": \"为正且覆盖分红\"\r\n        },\r\n        \"适用环境\": \"利率下行、市场震荡、追求现金流回报\",\r\n        \"风险提示\": \"股息率因股价下跌被动抬高需剔除；分红不可持续的高股息为陷阱\"\r\n    },\r\n    \r\n    \"高端制造\": {\r\n        \"筛选维度\": {\r\n            \"机床/母机\": [\"订单增速\", \"国产化率\", \"毛利率\"],\r\n            \"自动化\": [\"下游资本开支\", \"在手订单\"],\r\n            \"精密零部件\": [\"单车/单机价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"设备更新改造、国产替代、制造业投资周期\",\r\n        \"风险因素\": \"下游资本开支不及预期、价格竞争、应收账款回收\"\r\n    }\r\n}\r\n```\r\n\r\n**主题筛选执行清单（从主题到候选池）**\r\n\r\n| 步骤 | 动作 | 产出 | 卡点 |\r\n|------|------|------|------|\r\n| 1 | 拆解产业链上下游环节 | 环节清单 | 环节定义须无重叠 |\r\n| 2 | 为每个环节设定量化筛选标准 | 标准表 | 标准须可用财报数据验证 |\r\n| 3 | 拉取候选池并剔除不达标标的 | 候选清单 | 剔除理由须留档 |\r\n| 4 | 补充流动性与拥挤度过滤 | 可交易候选池 | 单笔建仓 ≤日均成交额5% |\r\n| 5 | 计算综合评分排序 | 排序表 | 标注数据报告期 |\r\n| 6 | 输出并附风险提示 | 主题选股报告 | 保留免责声明 |\r\n\r\n**示例｜同一主题的两种筛选口径对比**\r\n\r\n| 口径 | 条件 | 候选数量 | 入选标的特征 | 适用场景 |\r\n|------|------|---------|------------|---------|\r\n| 严格口径 | 研发占比>10% + 主题收入占比>30% + 市值>100亿 | 8只 | 纯度高、弹性中等 | 中长期配置 |\r\n| 宽松口径 | 主题收入占比>10% 或 有明确订单 | 26只 | 纯度低、弹性大 | 主题轮动早期 |\r\n| 事件口径 | 近3个月有订单/中标/产能公告 | 12只 | 催化明确、波动大 | 事件驱动交易 |\r\n\r\n使用要点：三种口径不可混用；若报告使用宽松口径，必须在结论中注明\"纯度较低、可能与主题关联度不足\"。\r\n\r\n### 3. Technical Signal Detection / 技术信号检测\r\n\r\n```python\r\nclass TechnicalSignals:\r\n    \"\"\"技术信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def detect_moving_average_signals(prices: pd.Series, \r\n                                      short_ma: int = 20,\r\n                                      long_ma: int = 60) -> dict:\r\n        \"\"\"均线信号检测\"\"\"\r\n        ma_short = prices.rolling(short_ma).mean()\r\n        ma_long = prices.rolling(long_ma).mean()\r\n        \r\n        # 金叉/死叉判断\r\n        current_ma_diff = ma_short.iloc[-1] - ma_long.iloc[-1]\r\n        prev_ma_diff = ma_short.iloc[-2] - ma_long.iloc[-2]\r\n        \r\n        if current_ma_diff > 0 and prev_ma_diff <= 0:\r\n            signal = \"GOLDEN_CROSS\"  # 金叉\r\n        elif current_ma_diff < 0 and prev_ma_diff >= 0:\r\n            signal = \"DEAD_CROSS\"  # 死叉\r\n        else:\r\n            signal = \"NEUTRAL\"\r\n        \r\n        return {\r\n            \"signal\": signal,\r\n            \"short_ma\": round(ma_short.iloc[-1], 2),\r\n            \"long_ma\": round(ma_long.iloc[-1], 2),\r\n            \"ma_diff_pct\": round((current_ma_diff / ma_long.iloc[-1]) * 100, 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_support_resistance(prices: pd.Series, \r\n                                 lookback: int = 60) -> dict:\r\n        \"\"\"支撑压力位检测\"\"\"\r\n        recent = prices.tail(lookback)\r\n        \r\n        # 计算枢轴点\r\n        pivot = (recent.max() + recent.min() + recent.iloc[-1]) / 3\r\n        \r\n        r1 = 2 * pivot - recent.min()\r\n        s1 = 2 * pivot - recent.max()\r\n        r2 = pivot + (recent.max() - recent.min())\r\n        s2 = pivot - (recent.max() - recent.min())\r\n        \r\n        return {\r\n            \"resistance_1\": round(r1, 2),\r\n            \"resistance_2\": round(r2, 2),\r\n            \"pivot\": round(pivot, 2),\r\n            \"support_1\": round(s1, 2),\r\n            \"support_2\": round(s2, 2),\r\n            \"current_price\": round(prices.iloc[-1], 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_volume_anomaly(prices: pd.Series, \r\n                             volumes: pd.Series,\r\n                             threshold: float = 2.0) -> dict:\r\n        \"\"\"量价异常检测\"\"\"\r\n        avg_volume = volumes.tail(20).mean()\r\n        current_volume = volumes.iloc[-1]\r\n        volume_ratio = current_volume / avg_volume\r\n        \r\n        # 价格与成交量背离\r\n        price_change = (prices.iloc[-1] - prices.iloc[-2]) / prices.iloc[-2]\r\n        \r\n        return {\r\n            \"volume_ratio\": round(volume_ratio, 2),\r\n            \"is_volume_surge\": volume_ratio > threshold,\r\n            \"price_change\": round(price_change * 100, 2),\r\n            \"divergence\": \"量价背离\" if (price_change > 0 and volume_ratio < 0.5) or\r\n                                      (price_change < 0 and volume_ratio > 2) else \"正常\"\r\n        }\r\n```\r\n\r\n**信号组合矩阵（单一信号不决策，组合才决策）**\r\n\r\n| 均线信号 | 量能状态 | 价格位置 | 综合判断 | 建议动作 |\r\n|---------|---------|---------|---------|---------|\r\n| 金叉 | 放量（>2倍） | 突破压力位 | 强势确认 | 可分批建仓 |\r\n| 金叉 | 缩量（<0.8倍） | 未突破压力位 | 信号弱，可能反复 | 观察，暂不动 |\r\n| 金叉 | 放量 | 已连续大涨后 | 追高风险 | 不追，等回调 |\r\n| 死叉 | 放量 | 跌破支撑位 | 趋势转弱 | 按纪律减仓 |\r\n| 死叉 | 缩量 | 支撑位附近 | 可能假跌破 | 观察一日再定 |\r\n| 中性 | 量价背离 | 高位滞涨 | 分歧加大 | 降低仓位 |\r\n\r\n**示例｜信号有效性统计（先验证再使用）**\r\n\r\n| 信号 | 样本数 | 5日胜率 | 20日胜率 | 平均20日收益 | 结论 |\r\n|------|-------|--------|---------|------------|------|\r\n| 金叉+放量 | 320 | 58% | 61% | +3.2% | 保留，作为主要信号 |\r\n| 金叉（缩量） | 410 | 49% | 47% | +0.4% | 弱化，需叠加其他条件 |\r\n| 死叉+跌破支撑 | 260 | — | — | -2.8% | 保留，作为减仓信号 |\r\n| 量价背离 | 180 | 44% | 41% | -1.1% | 作为预警信号使用 |\r\n\r\n使用要点：胜率需按市场状态分层统计（上涨/震荡/下跌），单一整体胜率可能掩盖失效区间；若某信号在震荡市胜率低于45%，应暂停使用。\r\n\r\n**示例｜信号与仓位对应（把信号变成纪律）**\r\n\r\n| 综合评分 | 信号状态 | 建议仓位上限 | 单标的上限 | 止损参考 |\r\n|---------|---------|------------|-----------|---------|\r\n| ≥80 | 金叉+放量 | 80% | 15% | −8% |\r\n| 70-79 | 金叉（等确认） | 60% | 12% | −8% |\r\n| 60-69 | 中性 | 40% | 10% | −10% |\r\n| <60 | 死叉或背离 | 20% | 8% | 立即评估 |\r\n\r\n### 4. Financial Fraud Detection / 财报异常检测\r\n\r\n```python\r\nclass FraudDetection:\r\n    \"\"\"财报异常信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def check_revenue_quality(stock_code: str, \r\n                             financial_data: dict) -> dict:\r\n        \"\"\"营收质量检测\"\"\"\r\n        indicators = {\r\n            # 应收账款异常\r\n            \"ar_growth_vs_revenue\": financial_data.get(\"ar_growth\", 0) - \r\n                                    financial_data.get(\"revenue_growth\", 0),\r\n            \r\n            # 存货异常\r\n            \"inventory_growth_vs_cost\": financial_data.get(\"inv_growth\", 0) - \r\n                                        financial_data.get(\"cost_growth\", 0),\r\n            \r\n            # 现金流匹配\r\n            \"cash_flow_ratio\": financial_data.get(\"cfo\", 0) / \r\n                              max(financial_data.get(\"net_profit\", 1), 1),\r\n            \r\n            # 毛利率异常\r\n            \"gross_margin_volatility\": financial_data.get(\"gm_std\", 0),\r\n            \r\n            # 关联交易占比\r\n            \"related_party_ratio\": financial_data.get(\"rpt_revenue\", 0) / \r\n                                  max(financial_data.get(\"total_revenue\", 1), 1)\r\n        }\r\n        \r\n        # 预警信号\r\n        warnings = []\r\n        if indicators[\"ar_growth_vs_revenue\"] > 30:\r\n            warnings.append(\"应收账款增速显著高于营收增速，可能存在虚构收入\")\r\n        if indicators[\"cash_flow_ratio\"] < 0.5:\r\n            warnings.append(\"经营现金流显著低于净利润，盈利质量存疑\")\r\n        if indicators[\"related_party_ratio\"] > 0.5:\r\n            warnings.append(\"关联交易占比过高，存在利益输送风险\")\r\n        \r\n        return {\r\n            \"indicators\": indicators,\r\n            \"warnings\": warnings,\r\n            \"overall_risk\": \"高\" if len(warnings) >= 2 else \r\n                           \"中\" if warnings else \"低\"\r\n        }\r\n    \r\n    @staticmethod\r\n    def check_auditor_warnings(audit_reports: list) -> dict:\r\n        \"\"\"审计意见检测\"\"\"\r\n        risk_keywords = [\"保留意见\", \"无法表示意见\", \"非标准无保留\", \r\n                        \"持续经营重大不确定性\", \"强调事项段\"]\r\n        \r\n        findings = []\r\n        for report in audit_reports:\r\n            for keyword in risk_keywords:\r\n                if keyword in report:\r\n                    findings.append({\r\n                        \"keyword\": keyword,\r\n                        \"context\": report\r\n                    })\r\n        \r\n        return {\r\n            \"has_warnings\": len(findings) > 0,\r\n            \"findings\": findings,\r\n            \"risk_level\": \"高\" if findings else \"低\"\r\n        }\r\n```\r\n\r\n**财报异常指标阈值表（触发即预警）**\r\n\r\n| 指标 | 计算口径 | 关注阈值 | 预警阈值 | 说明 |\r\n|------|---------|---------|---------|------|\r\n| 应收增速−营收增速 | 两个同比增速之差 | >15pct | >30pct | 可能虚构收入或放宽信用 |\r\n| 存货增速−成本增速 | 同比增速之差 | >15pct | >30pct | 可能存货积压或虚增 |\r\n| 经营现金流/净利润 | CFO ÷ 归母净利润 | <0.8 | <0.5 | 盈利质量存疑 |\r\n| 毛利率波动率 | 近8期标准差 | >2.5pct | >4pct | 可能人为调节 |\r\n| 关联交易收入占比 | 关联收入 ÷ 营收 | >30% | >50% | 利益输送风险 |\r\n| 商誉/净资产 | 商誉 ÷ 净资产 | >20% | >40% | 减值风险 |\r\n| 审计意见类型 | 意见段 | 带强调事项段 | 保留/无法表示意见 | 直接排除 |\r\n\r\n**示例｜综合风险判定（三项指标联动）**\r\n\r\n| 标的 | 应收−营收 | CFO/净利润 | 关联占比 | 命中预警数 | 风险判定 | 处置 |\r\n|------|----------|-----------|---------|-----------|---------|------|\r\n| 标的A | +8pct | 1.12 | 12% | 0 | 低 | 正常纳入评分 |\r\n| 标的B | +34pct | 0.62 | 21% | 2 | 高 | 直接排除，不参与评分 |\r\n| 标的C | +18pct | 0.75 | 33% | 2 | 高 | 核查后决定是否排除 |\r\n| 标的D | +5pct | 0.95 | 8% | 0 | 低 | 正常纳入评分 |\r\n\r\n使用要点：命中2项及以上预警阈值即判定为高风险，无论综合评分多高均不纳入候选池；单一指标命中需在报告中说明核查进展，不得直接作为结论。\r\n\r\n### 5. Portfolio Construction / 组合构建\r\n\r\n```python\r\nclass PortfolioBuilder:\r\n    \"\"\"智能组合构建\"\"\"\r\n    \r\n    def __init__(self, target_stocks: List[dict], \r\n                 total_capital: float = 1000000):\r\n        self.stocks = target_stocks\r\n        self.capital = total_capital\r\n    \r\n    def build_equal_weight(self, max_positions: int = 10) -> dict:\r\n        \"\"\"等权重配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        per_stock = self.capital / len(selected)\r\n        \r\n        positions = []\r\n        for stock in selected:\r\n            shares = int(per_stock / stock[\"price\"] / 100) * 100  # 100股整数\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": 1 / len(selected)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"等权重\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions),\r\n            \"cash_remaining\": self.capital - sum(p[\"amount\"] for p in positions),\r\n            \"expected_return\": sum(s.get(\"expected_return\", 0) for s in selected) / len(selected),\r\n            \"estimated_risk\": self._calculate_portfolio_risk(positions)\r\n        }\r\n    \r\n    def build_risk_parity(self, max_positions: int = 10) -> dict:\r\n        \"\"\"风险平价配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        \r\n        # 使用波动率倒数作为权重\r\n        inv_vol = [1 / s.get(\"volatility\", 0.3) for s in selected]\r\n        total_inv_vol = sum(inv_vol)\r\n        weights = [v / total_inv_vol for v in inv_vol]\r\n        \r\n        positions = []\r\n        for stock, weight in zip(selected, weights):\r\n            amount = self.capital * weight\r\n            shares = int(amount / stock[\"price\"] / 100) * 100\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": round(weight * 100, 2)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"风险平价\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions)\r\n        }\r\n    \r\n    def _calculate_portfolio_risk(self, positions: list) -> float:\r\n        \"\"\"简化组合风险估算\"\"\"\r\n        # 假设相关性0.3\r\n        individual_risks = [0.25] * len(positions)  # 默认25%波动率\r\n        correlation = 0.3\r\n        \r\n        portfolio_var = 0\r\n        for i, risk_i in enumerate(individual_risks):\r\n            for j, risk_j in enumerate(individual_risks):\r\n                weight_i = 1 / len(positions)\r\n                weight_j = 1 / len(positions)\r\n                corr = correlation if i != j else 1\r\n                portfolio_var += weight_i * weight_j * risk_i * risk_j * corr\r\n        \r\n        return round(np.sqrt(portfolio_var) * 100, 2)\r\n```\r\n\r\n**示例 1｜等权重 vs 风险平价（同一候选池两种结果）**\r\n\r\n| 标的 | 预期收益 | 波动率 | 等权重 | 风险平价权重 | 差异说明 |\r\n|------|---------|-------|-------|------------|---------|\r\n| 标的A | 18% | 20% | 10.0% | 12.5% | 低波动，风险平价提升权重 |\r\n| 标的B | 25% | 35% | 10.0% | 7.1% | 高波动，风险平价下调权重 |\r\n| 标的C | 15% | 18% | 10.0% | 13.9% | 最低波动，权重最高 |\r\n| 标的D | 30% | 45% | 10.0% | 5.6% | 最高波动，权重最低 |\r\n\r\n结论：等权重简单透明、易执行；风险平价会在不牺牲过多收益的前提下降低组合波动，适合波动容忍度较低的账户。两种方式都应同时给出，便于对照选择。\r\n\r\n**示例 2｜组合风控阈值表（建仓前先设红线）**\r\n\r\n| 风控项 | 阈值 | 超限动作 | 检查频率 |\r\n|-------|------|---------|---------|\r\n| 单标的权重 | ≤15% | 触发即减仓至阈值内 | 每周 |\r\n| 单一行业权重 | ≤35% | 新增买入暂停，优先调出 | 每周 |\r\n| 前三大标的合计 | ≤40% | 降低集中度 | 每两周 |\r\n| 组合预估波动率 | ≤25% | 降仓或增加低波动资产 | 每月 |\r\n| 单标的浮亏 | −8%至−10% | 按纪律评估减仓 | 每日 |\r\n| 组合最大回撤 | −15% | 启动整体降仓预案 | 每日 |\r\n\r\n**示例 3｜建仓分批节奏（避免一次性买在高点）**\r\n\r\n| 批次 | 触发条件 | 投入比例 | 备注 |\r\n|------|---------|---------|------|\r\n| 第1批 | 信号确认（金叉+放量） | 40% | 建立底仓 |\r\n| 第2批 | 回踩支撑不破 | 30% | 摊薄成本 |\r\n| 第3批 | 突破前高确认 | 30% | 趋势延续加仓 |\r\n| 例外 | 跌破止损位 | 0%（不补） | 按纪律减仓 |\r\n\r\n---\r\n\r\n## Usage Examples / 使用示例\r\n\r\n**启动选股：**\r\n```\r\n用以下条件筛选股票：\r\n- 市盈率 < 30\r\n- 营收增速 > 20%\r\n- ROE > 15%\r\n- 综合评分 > 70\r\n```\r\n\r\n**主题选股：**\r\n```\r\n筛选AI人工智能概念中估值最低的10只股票\r\n```\r\n\r\n**技术面选股：**\r\n```\r\n找出所有出现均线金叉且放量突破的股票\r\n```\r\n\r\n**因子有效性检验：**\r\n```\r\n对[因子名称]做有效性检验：输出IC值、分组单调性、\r\n样本外方向一致性、换手成本与因子间相关性，并给出是否保留的结论。\r\n```\r\n\r\n**组合构建与风控：**\r\n```\r\n用以下候选池构建组合，同时输出等权重与风险平价两种方案，\r\n并检查单标的上限（15%）、行业上限（35%）、组合波动率（≤25%）是否超限。\r\n```\r\n\r\n---\r\n\r\n## Disclaimer\r\n\r\nThis skill provides stock screening tools and analysis for educational purposes. Stock selection results are based on quantitative models and historical data, which do not guarantee future performance. All investment decisions should be made based on independent research and professional advice. Past performance does not indicate future results.\n\nFile v3.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn74e704j3ygjcygnpf02rdvd185js13\",\n  \"slug\": \"security-stock-picker\",\n  \"version\": \"3.0.2\",\n  \"publishedAt\": 1789197468344\n}\n\nFile v3.0.2:skill-card.md\n\n## Description:\n\nSecurity Stock Picker helps agents screen China A-share stocks using quantitative factors, fundamental analysis, technical signals, sector rotation, fraud-risk checks, and portfolio construction guidance.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[gechengling](https://clawhub.ai/user/gechengling)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal investors, fund managers, and quantitative analysts use this skill to structure educational China A-share screening workflows, compare candidates, review risk signals, and draft portfolio construction guidance. Outputs should support independent research rather than replace professional financial advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Stock-screening outputs may be mistaken for professional financial advice.\n\nMitigation: Present outputs as educational screening support and require users to make investment decisions based on independent research and professional advice.\n\nRisk: Model-generated stock or portfolio suggestions may rely on stale, incomplete, or incorrect market data.\n\nMitigation: Verify market data, filings, liquidity, and portfolio assumptions independently before acting on any recommendation.\n\nRisk: Broad finance triggers may activate the skill in stock-market conversations where the user did not request detailed screening.\n\nMitigation: Confirm the user's intent and scope before generating candidate lists, portfolio weights, or action-oriented trading guidance.\n\n## Reference(s):\n\n- [Security Stock Picker ClawHub page](https://clawhub.ai/gechengling/skills/security-stock-picker)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, guidance]\n\n**Output Format:** [Markdown guidance with tables, prompts, and code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Educational stock-screening support; security evidence reports no hidden execution, persistence, credential use, or data exfiltration behavior.]\n\n## Skill Version(s):\n\n3.0.2 (source: server release evidence and skill frontmatter)\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\nArchive v3.0.1: 3 files, 7799 bytes\n\nFiles: skill-card.md (1722b), SKILL.md (18359b), _meta.json (140b)\n\nFile v3.0.1:SKILL.md\n\n---\r\nname: AI-Powered Stock Selection Engine\r\nslug: security-stock-screening\r\ndescription: AI-powered intelligent stock selection engine for China A-share market — covers quantitative factor screening, fundamental analysis ranking, technical signal detection, sector rotation analysis, and portfolio construction. Built for retail investors, fund managers, and quantitative analysts. Updated 2026 with latest factor models, short-seller vulnerability detection, and AI-enhanced stock screening. Keywords: stock selection, quantitative screening, factor investing, technical analysis, China A-share, stock picker, AI investing, 选股引擎, 量化选股, 因子投资, 技术分析, A股, 智能选股, 选股策略, 量化策略, AI选股, 股票筛选, 价值投资, 成长股, 短线选股.\r\nversion: \"3.0.1\"\r\n---\r\n\r\n# AI-Powered Stock Selection Engine / 智能选股引擎\r\n\r\n> **English:** AI-powered intelligent stock selection engine for China A-share market — combines quantitative factor screening, fundamental analysis, technical signals, and sector rotation analysis. Solves pain points: information overload, emotional decision-making, and inconsistent stock picking criteria. Built for investors and analysts at all levels.\r\n>\r\n> **中文:** 智能选股引擎——整合量化因子筛选、基本面分析、技术信号检测、行业轮动分析的全流程选股工具。解决痛点：信息过载、情绪化决策、选股标准不统一。适用：各级投资者、基金经理、量化分析师。\r\n\r\n---\r\n\r\n\r\n### 证券监管最新动态 [2026-05-25更新]\r\n\r\n| 动态类型 | 内容摘要 | 影响范围 |\r\n|---------|---------|---------|\r\n| 证券监管 | 2026年A股量化资金占比30%-40%，选股模型需考虑量化冲击 | 选股引擎需增加量化冲击识别和极端行情风控 |\r\n| 证券监管 | 2026年3月23日量化踩踏案例（单日蒸发4.29万亿），风控需加强 | 选股引擎需增加量化冲击识别和极端行情风控 |\r\n| 证券监管 | 上证周线级别中枢震荡，2026年核心区间3200-4000点 | 选股引擎需增加量化冲击识别和极端行情风控 |\r\n\r\n> **数据截止**: 2026-05-25 | 来源：证监会、NFRA、中证协、安永Q1分析\r\n> **声明**: 以上动态供参考，具体以官方最新发布为准\r\n\r\n## Industry Pain Points / 行业痛点\r\n\r\n| Pain Point / 痛点 | Impact / 影响 | Solution / 本Skill解决方案 |\r\n|------------------|-------------|------------------------|\r\n| **信息过载** | A股5000+股票，无法逐一研究 | 多维度因子筛选，快速缩小范围 |\r\n| **情绪化决策** | 追涨杀跌，高买低卖 | 量化标准选股，避免主观干扰 |\r\n| **选股标准模糊** | 没有系统性方法论 | 完整选股框架+评分模型 |\r\n| **财报造假风险** | 康美药业、瑞幸等案例警示 | 财报异常信号检测+预警 |\r\n| **行业轮动难把握** | 踏错节奏，板块轮动踏空 | 宏观+情绪+资金三维轮动模型 |\r\n\r\n---\r\n\r\n## Trigger Keywords / 触发关键词\r\n\r\n**English Triggers:** stock selection, quantitative screening, factor investing, fundamental analysis, technical analysis, China A-share, stock picker, AI investing, momentum stocks, value investing, growth stocks, sector rotation, portfolio construction\r\n\r\n**中文触发词（优先）：** 选股 / 智能选股 / 量化选股 / 因子选股 / 基本面选股 / 技术面选股 / 价值投资 / 成长股 / 蓝筹股 / 小盘股 / 行业轮动 / 板块轮动 / 资金流向 / 北向资金 / 龙虎榜 / 涨停板 / 破净股 / 低估值 / 高成长 / 业绩超预期 / 财报选股 / 研报筛选 / AI选股 / 机器选股 / 组合构建 / 仓位管理 / 止损策略\r\n\r\n---\r\n\r\n## Core Capabilities / 核心能力\r\n\r\n### 1. Quantitative Factor Screening / 量化因子筛选\r\n\r\n```python\r\nimport pandas as pd\r\nimport numpy as np\r\nfrom typing import List, Dict, Optional\r\n\r\nclass StockScreener:\r\n    \"\"\"智能选股引擎\"\"\"\r\n    \r\n    def __init__(self):\r\n        self.factors = {\r\n            # 估值因子\r\n            \"pe\": {\"name\": \"市盈率\", \"weight\": 0.15, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"pb\": {\"name\": \"市净率\", \"weight\": 0.10, \"direction\": \"low_better\", \"bounds\": (0, 10)},\r\n            \"ps\": {\"name\": \"市销率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 20)},\r\n            \"pcf\": {\"name\": \"市现率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 30)},\r\n            \r\n            # 成长因子\r\n            \"revenue_growth\": {\"name\": \"营收增速\", \"weight\": 0.15, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \"profit_growth\": {\"name\": \"利润增速\", \"weight\": 0.15, \"direction\": \"high_better\", \"bounds\": (-100, 200)},\r\n            \"gross_margin\": {\"name\": \"毛利率\", \"weight\": 0.08, \"direction\": \"high_better\", \"bounds\": (0, 100)},\r\n            \r\n            # 质量因子\r\n            \"roe\": {\"name\": \"ROE\", \"weight\": 0.12, \"direction\": \"high_better\", \"bounds\": (-20, 50)},\r\n            \"debt_ratio\": {\"name\": \"资产负债率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"current_ratio\": {\"name\": \"流动比率\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (0.5, 10)},\r\n            \r\n            # 动量因子\r\n            \"momentum_20d\": {\"name\": \"20日动量\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (-30, 50)},\r\n            \"momentum_60d\": {\"name\": \"60日动量\", \"weight\": 0.02, \"direction\": \"high_better\", \"bounds\": (-50, 100)}\r\n        }\r\n    \r\n    def screen(self, stocks: pd.DataFrame, \r\n               criteria: Dict[str, tuple],\r\n               min_score: float = 60) -> pd.DataFrame:\r\n        \"\"\"\r\n        量化筛选主函数\r\n        Args:\r\n            stocks: 股票数据（含各因子列）\r\n            criteria: 筛选条件 {因子名: (最小值, 最大值)}\r\n            min_score: 最低综合评分\r\n        Returns:\r\n            符合条件的股票\r\n        \"\"\"\r\n        result = stocks.copy()\r\n        \r\n        # Step 1: 硬性条件筛选\r\n        for factor, (min_val, max_val) in criteria.items():\r\n            if factor in result.columns:\r\n                result = result[(result[factor] >= min_val) & (result[factor] <= max_val)]\r\n        \r\n        # Step 2: 因子打分\r\n        result = self._factor_scoring(result)\r\n        \r\n        # Step 3: 综合评分排序\r\n        result = result[result[\"综合评分\"] >= min_score].sort_values(\"综合评分\", ascending=False)\r\n        \r\n        return result\r\n    \r\n    def _factor_scoring(self, df: pd.DataFrame) -> pd.DataFrame:\r\n        \"\"\"因子打分（百分制）\"\"\"\r\n        scores = pd.DataFrame(index=df.index)\r\n        \r\n        for factor, config in self.factors.items():\r\n            if factor in df.columns:\r\n                raw = df[factor].copy()\r\n                min_val, max_val = config[\"bounds\"]\r\n                \r\n                # 标准化到0-100\r\n                normalized = (raw - min_val) / (max_val - min_val) * 100\r\n                normalized = normalized.clip(0, 100)\r\n                \r\n                # 方向调整（部分因子越低越好）\r\n                if config[\"direction\"] == \"low_better\":\r\n                    normalized = 100 - normalized\r\n                \r\n                scores[factor] = normalized * config[\"weight\"]\r\n        \r\n        df[\"综合评分\"] = scores.sum(axis=1)\r\n        return df\r\n```\r\n\r\n### 2. Thematic Stock Screening / 主题投资筛选\r\n\r\n```python\r\nTHEMATIC_SCREENING = {\r\n    \"AI人工智能\": {\r\n        \"核心标的\": [\"科大讯飞\", \"海康威视\", \"中科曙光\", \"寒武纪\", \"商汤-W\"],\r\n        \"概念股池\": {\r\n            \"基础层\": [\"芯片\", \"算力\", \"服务器\"],\r\n            \"技术层\": [\"大模型\", \"算法\", \"API\"],\r\n            \"应用层\": [\"办公\", \"医疗\", \"金融\", \"教育\"]\r\n        },\r\n        \"筛选标准\": {\r\n            \"市值\": \">100亿\",\r\n            \"研发投入\": \">10%\",\r\n            \"AI收入占比\": \">30%\"\r\n        },\r\n        \"风险提示\": \"技术迭代快，竞争格局未定，估值波动大\"\r\n    },\r\n    \r\n    \"新能源汽车\": {\r\n        \"核心标的\": [\"比亚迪\", \"宁德时代\", \"理想汽车-W\", \"小鹏汽车-W\"],\r\n        \"筛选维度\": {\r\n            \"整车\": [\"销量增速\", \"毛利率\", \"智能化水平\"],\r\n            \"电池\": [\"能量密度\", \"成本\", \"产能\"],\r\n            \"配件\": [\"单车价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"以旧换新补贴、购置税减免、新能源渗透率目标\"\r\n    },\r\n    \r\n    \"创新药\": {\r\n        \"核心标的\": [\"恒瑞医药\", \"百济神州\", \"信达生物\", \"药明康德\"],\r\n        \"筛选标准\": {\r\n            \"管线丰富度\": \">10个临床管线\",\r\n            \"first-in-class\": \"至少1个\",\r\n            \"BD能力\": \"有海外授权记录\"\r\n        },\r\n        \"风险因素\": \"医保谈判降价、临床失败风险、同靶点竞争\"\r\n    }\r\n}\r\n```\r\n\r\n### 3. Technical Signal Detection / 技术信号检测\r\n\r\n```python\r\nclass TechnicalSignals:\r\n    \"\"\"技术信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def detect_moving_average_signals(prices: pd.Series, \r\n                                      short_ma: int = 20,\r\n                                      long_ma: int = 60) -> dict:\r\n        \"\"\"均线信号检测\"\"\"\r\n        ma_short = prices.rolling(short_ma).mean()\r\n        ma_long = prices.rolling(long_ma).mean()\r\n        \r\n        # 金叉/死叉判断\r\n        current_ma_diff = ma_short.iloc[-1] - ma_long.iloc[-1]\r\n        prev_ma_diff = ma_short.iloc[-2] - ma_long.iloc[-2]\r\n        \r\n        if current_ma_diff > 0 and prev_ma_diff <= 0:\r\n            signal = \"GOLDEN_CROSS\"  # 金叉\r\n        elif current_ma_diff < 0 and prev_ma_diff >= 0:\r\n            signal = \"DEAD_CROSS\"  # 死叉\r\n        else:\r\n            signal = \"NEUTRAL\"\r\n        \r\n        return {\r\n            \"signal\": signal,\r\n            \"short_ma\": round(ma_short.iloc[-1], 2),\r\n            \"long_ma\": round(ma_long.iloc[-1], 2),\r\n            \"ma_diff_pct\": round((current_ma_diff / ma_long.iloc[-1]) * 100, 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_support_resistance(prices: pd.Series, \r\n                                 lookback: int = 60) -> dict:\r\n        \"\"\"支撑压力位检测\"\"\"\r\n        recent = prices.tail(lookback)\r\n        \r\n        # 计算枢轴点\r\n        pivot = (recent.max() + recent.min() + recent.iloc[-1]) / 3\r\n        \r\n        r1 = 2 * pivot - recent.min()\r\n        s1 = 2 * pivot - recent.max()\r\n        r2 = pivot + (recent.max() - recent.min())\r\n        s2 = pivot - (recent.max() - recent.min())\r\n        \r\n        return {\r\n            \"resistance_1\": round(r1, 2),\r\n            \"resistance_2\": round(r2, 2),\r\n            \"pivot\": round(pivot, 2),\r\n            \"support_1\": round(s1, 2),\r\n            \"support_2\": round(s2, 2),\r\n            \"current_price\": round(prices.iloc[-1], 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_volume_anomaly(prices: pd.Series, \r\n                             volumes: pd.Series,\r\n                             threshold: float = 2.0) -> dict:\r\n        \"\"\"量价异常检测\"\"\"\r\n        avg_volume = volumes.tail(20).mean()\r\n        current_volume = volumes.iloc[-1]\r\n        volume_ratio = current_volume / avg_volume\r\n        \r\n        # 价格与成交量背离\r\n        price_change = (prices.iloc[-1] - prices.iloc[-2]) / prices.iloc[-2]\r\n        \r\n        return {\r\n            \"volume_ratio\": round(volume_ratio, 2),\r\n            \"is_volume_surge\": volume_ratio > threshold,\r\n            \"price_change\": round(price_change * 100, 2),\r\n            \"divergence\": \"量价背离\" if (price_change > 0 and volume_ratio < 0.5) or\r\n                                      (price_change < 0 and volume_ratio > 2) else \"正常\"\r\n        }\r\n```\r\n\r\n### 4. Financial Fraud Detection / 财报异常检测\r\n\r\n```python\r\nclass FraudDetection:\r\n    \"\"\"财报异常信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def check_revenue_quality(stock_code: str, \r\n                             financial_data: dict) -> dict:\r\n        \"\"\"营收质量检测\"\"\"\r\n        indicators = {\r\n            # 应收账款异常\r\n            \"ar_growth_vs_revenue\": financial_data.get(\"ar_growth\", 0) - \r\n                                    financial_data.get(\"revenue_growth\", 0),\r\n            \r\n            # 存货异常\r\n            \"inventory_growth_vs_cost\": financial_data.get(\"inv_growth\", 0) - \r\n                                        financial_data.get(\"cost_growth\", 0),\r\n            \r\n            # 现金流匹配\r\n            \"cash_flow_ratio\": financial_data.get(\"cfo\", 0) / \r\n                              max(financial_data.get(\"net_profit\", 1), 1),\r\n            \r\n            # 毛利率异常\r\n            \"gross_margin_volatility\": financial_data.get(\"gm_std\", 0),\r\n            \r\n            # 关联交易占比\r\n            \"related_party_ratio\": financial_data.get(\"rpt_revenue\", 0) / \r\n                                  max(financial_data.get(\"total_revenue\", 1), 1)\r\n        }\r\n        \r\n        # 预警信号\r\n        warnings = []\r\n        if indicators[\"ar_growth_vs_revenue\"] > 30:\r\n            warnings.append(\"应收账款增速显著高于营收增速，可能存在虚构收入\")\r\n        if indicators[\"cash_flow_ratio\"] < 0.5:\r\n            warnings.append(\"经营现金流显著低于净利润，盈利质量存疑\")\r\n        if indicators[\"related_party_ratio\"] > 0.5:\r\n            warnings.append(\"关联交易占比过高，存在利益输送风险\")\r\n        \r\n        return {\r\n            \"indicators\": indicators,\r\n            \"warnings\": warnings,\r\n            \"overall_risk\": \"高\" if len(warnings) >= 2 else \r\n                           \"中\" if warnings else \"低\"\r\n        }\r\n    \r\n    @staticmethod\r\n    def check_auditor_warnings(audit_reports: list) -> dict:\r\n        \"\"\"审计意见检测\"\"\"\r\n        risk_keywords = [\"保留意见\", \"无法表示意见\", \"非标准无保留\", \r\n                        \"持续经营重大不确定性\", \"强调事项段\"]\r\n        \r\n        findings = []\r\n        for report in audit_reports:\r\n            for keyword in risk_keywords:\r\n                if keyword in report:\r\n                    findings.append({\r\n                        \"keyword\": keyword,\r\n                        \"context\": report\r\n                    })\r\n        \r\n        return {\r\n            \"has_warnings\": len(findings) > 0,\r\n            \"findings\": findings,\r\n            \"risk_level\": \"高\" if findings else \"低\"\r\n        }\r\n```\r\n\r\n### 5. Portfolio Construction / 组合构建\r\n\r\n```python\r\nclass PortfolioBuilder:\r\n    \"\"\"智能组合构建\"\"\"\r\n    \r\n    def __init__(self, target_stocks: List[dict], \r\n                 total_capital: float = 1000000):\r\n        self.stocks = target_stocks\r\n        self.capital = total_capital\r\n    \r\n    def build_equal_weight(self, max_positions: int = 10) -> dict:\r\n        \"\"\"等权重配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        per_stock = self.capital / len(selected)\r\n        \r\n        positions = []\r\n        for stock in selected:\r\n            shares = int(per_stock / stock[\"price\"] / 100) * 100  # 100股整数\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": 1 / len(selected)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"等权重\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions),\r\n            \"cash_remaining\": self.capital - sum(p[\"amount\"] for p in positions),\r\n            \"expected_return\": sum(s.get(\"expected_return\", 0) for s in selected) / len(selected),\r\n            \"estimated_risk\": self._calculate_portfolio_risk(positions)\r\n        }\r\n    \r\n    def build_risk_parity(self, max_positions: int = 10) -> dict:\r\n        \"\"\"风险平价配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        \r\n        # 使用波动率倒数作为权重\r\n        inv_vol = [1 / s.get(\"volatility\", 0.3) for s in selected]\r\n        total_inv_vol = sum(inv_vol)\r\n        weights = [v / total_inv_vol for v in inv_vol]\r\n        \r\n        positions = []\r\n        for stock, weight in zip(selected, weights):\r\n            amount = self.capital * weight\r\n            shares = int(amount / stock[\"price\"] / 100) * 100\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": round(weight * 100, 2)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"风险平价\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions)\r\n        }\r\n    \r\n    def _calculate_portfolio_risk(self, positions: list) -> float:\r\n        \"\"\"简化组合风险估算\"\"\"\r\n        # 假设相关性0.3\r\n        individual_risks = [0.25] * len(positions)  # 默认25%波动率\r\n        correlation = 0.3\r\n        \r\n        portfolio_var = 0\r\n        for i, risk_i in enumerate(individual_risks):\r\n            for j, risk_j in enumerate(individual_risks):\r\n                weight_i = 1 / len(positions)\r\n                weight_j = 1 / len(positions)\r\n                corr = correlation if i != j else 1\r\n                portfolio_var += weight_i * weight_j * risk_i * risk_j * corr\r\n        \r\n        return round(np.sqrt(portfolio_var) * 100, 2)\r\n```\r\n\r\n---\r\n\r\n## Usage Examples / 使用示例\r\n\r\n**启动选股：**\r\n```\r\n用以下条件筛选股票：\r\n- 市盈率 < 30\r\n- 营收增速 > 20%\r\n- ROE > 15%\r\n- 综合评分 > 70\r\n```\r\n\r\n**主题选股：**\r\n```\r\n筛选AI人工智能概念中估值最低的10只股票\r\n```\r\n\r\n**技术面选股：**\r\n```\r\n找出所有出现均线金叉且放量突破的股票\r\n```\r\n\r\n---\r\n\r\n## Disclaimer\r\n\r\nThis skill provides stock screening tools and analysis for educational purposes. Stock selection results are based on quantitative models and historical data, which do not guarantee future performance. All investment decisions should be made based on independent research and professional advice. Past performance does not indicate future results.\n\nFile v3.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn74e704j3ygjcygnpf02rdvd185js13\",\n  \"slug\": \"security-stock-picker\",\n  \"version\": \"3.0.1\",\n  \"publishedAt\": 1779680428094\n}\n\nFile v3.0.1:skill-card.md\n\n## Description: <br>\nAI-powered stock screening assistant for China A-share market analysis, combining quantitative factors, fundamental ranking, technical signals, sector rotation, and portfolio construction guidance. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[gechengling](https://clawhub.ai/user/gechengling) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nRetail investors, fund managers, and quantitative analysts use this skill to screen China A-share candidates, compare factor scores, evaluate financial and technical risk signals, and draft portfolio construction guidance. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Financial screening results or portfolio allocations may be inaccurate, stale, or unsuitable for a user's risk tolerance and time horizon. <br>\nMitigation: Verify outputs against current market data and qualified financial advice before making investment decisions. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, guidance] <br>\n**Output Format:** [Markdown with explanatory text and illustrative Python code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [No executable install behavior or trading authority is documented.] <br>\n\n## Skill Version(s): <br>\n3.0.1 (source: release evidence and frontmatter) <br>\n\n## Ethical Considerations: <br>\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. <br>\n\nArchive v1.0.0: 2 files, 6402 bytes\n\nFiles: SKILL.md (17495b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\r\nname: AI-Powered Stock Selection Engine\r\nslug: security-stock-picker\r\ndescription: AI-powered intelligent stock selection engine for China A-share market — covers quantitative factor screening, fundamental analysis ranking, technical signal detection, sector rotation analysis, and portfolio construction. Built for retail investors, fund managers, and quantitative analysts. Updated 2026 with latest factor models, short-seller vulnerability detection, and AI-enhanced stock screening. Keywords: stock selection, quantitative screening, factor investing, technical analysis, China A-share, stock picker, AI investing, 选股引擎, 量化选股, 因子投资, 技术分析, A股, 智能选股.\r\nversion: 1.0.0\r\n---\r\n\r\n# AI-Powered Stock Selection Engine / 智能选股引擎\r\n\r\n> **English:** AI-powered intelligent stock selection engine for China A-share market — combines quantitative factor screening, fundamental analysis, technical signals, and sector rotation analysis. Solves pain points: information overload, emotional decision-making, and inconsistent stock picking criteria. Built for investors and analysts at all levels.\r\n>\r\n> **中文:** 智能选股引擎——整合量化因子筛选、基本面分析、技术信号检测、行业轮动分析的全流程选股工具。解决痛点：信息过载、情绪化决策、选股标准不统一。适用：各级投资者、基金经理、量化分析师。\r\n\r\n---\r\n\r\n## Industry Pain Points / 行业痛点\r\n\r\n| Pain Point / 痛点 | Impact / 影响 | Solution / 本Skill解决方案 |\r\n|------------------|-------------|------------------------|\r\n| **信息过载** | A股5000+股票，无法逐一研究 | 多维度因子筛选，快速缩小范围 |\r\n| **情绪化决策** | 追涨杀跌，高买低卖 | 量化标准选股，避免主观干扰 |\r\n| **选股标准模糊** | 没有系统性方法论 | 完整选股框架+评分模型 |\r\n| **财报造假风险** | 康美药业、瑞幸等案例警示 | 财报异常信号检测+预警 |\r\n| **行业轮动难把握** | 踏错节奏，板块轮动踏空 | 宏观+情绪+资金三维轮动模型 |\r\n\r\n---\r\n\r\n## Trigger Keywords / 触发关键词\r\n\r\n**English Triggers:** stock selection, quantitative screening, factor investing, fundamental analysis, technical analysis, China A-share, stock picker, AI investing, momentum stocks, value investing, growth stocks, sector rotation, portfolio construction\r\n\r\n**中文触发词（优先）：** 选股 / 智能选股 / 量化选股 / 因子选股 / 基本面选股 / 技术面选股 / 价值投资 / 成长股 / 蓝筹股 / 小盘股 / 行业轮动 / 板块轮动 / 资金流向 / 北向资金 / 龙虎榜 / 涨停板 / 破净股 / 低估值 / 高成长 / 业绩超预期 / 财报选股 / 研报筛选 / AI选股 / 机器选股 / 组合构建 / 仓位管理 / 止损策略\r\n\r\n---\r\n\r\n## Core Capabilities / 核心能力\r\n\r\n### 1. Quantitative Factor Screening / 量化因子筛选\r\n\r\n```python\r\nimport pandas as pd\r\nimport numpy as np\r\nfrom typing import List, Dict, Optional\r\n\r\nclass StockScreener:\r\n    \"\"\"智能选股引擎\"\"\"\r\n    \r\n    def __init__(self):\r\n        self.factors = {\r\n            # 估值因子\r\n            \"pe\": {\"name\": \"市盈率\", \"weight\": 0.15, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"pb\": {\"name\": \"市净率\", \"weight\": 0.10, \"direction\": \"low_better\", \"bounds\": (0, 10)},\r\n            \"ps\": {\"name\": \"市销率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 20)},\r\n            \"pcf\": {\"name\": \"市现率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 30)},\r\n            \r\n            # 成长因子\r\n            \"revenue_growth\": {\"name\": \"营收增速\", \"weight\": 0.15, \"direction\": \"high_better\", \"bounds\": (-50, 100)},\r\n            \"profit_growth\": {\"name\": \"利润增速\", \"weight\": 0.15, \"direction\": \"high_better\", \"bounds\": (-100, 200)},\r\n            \"gross_margin\": {\"name\": \"毛利率\", \"weight\": 0.08, \"direction\": \"high_better\", \"bounds\": (0, 100)},\r\n            \r\n            # 质量因子\r\n            \"roe\": {\"name\": \"ROE\", \"weight\": 0.12, \"direction\": \"high_better\", \"bounds\": (-20, 50)},\r\n            \"debt_ratio\": {\"name\": \"资产负债率\", \"weight\": 0.05, \"direction\": \"low_better\", \"bounds\": (0, 100)},\r\n            \"current_ratio\": {\"name\": \"流动比率\", \"weight\": 0.03, \"direction\": \"high_better\", \"bounds\": (0.5, 10)},\r\n            \r\n            # 动量因子\r\n            \"momentum_20d\": {\"name\": \"20日动量\", \"weight\": 0.05, \"direction\": \"high_better\", \"bounds\": (-30, 50)},\r\n            \"momentum_60d\": {\"name\": \"60日动量\", \"weight\": 0.02, \"direction\": \"high_better\", \"bounds\": (-50, 100)}\r\n        }\r\n    \r\n    def screen(self, stocks: pd.DataFrame, \r\n               criteria: Dict[str, tuple],\r\n               min_score: float = 60) -> pd.DataFrame:\r\n        \"\"\"\r\n        量化筛选主函数\r\n        Args:\r\n            stocks: 股票数据（含各因子列）\r\n            criteria: 筛选条件 {因子名: (最小值, 最大值)}\r\n            min_score: 最低综合评分\r\n        Returns:\r\n            符合条件的股票\r\n        \"\"\"\r\n        result = stocks.copy()\r\n        \r\n        # Step 1: 硬性条件筛选\r\n        for factor, (min_val, max_val) in criteria.items():\r\n            if factor in result.columns:\r\n                result = result[(result[factor] >= min_val) & (result[factor] <= max_val)]\r\n        \r\n        # Step 2: 因子打分\r\n        result = self._factor_scoring(result)\r\n        \r\n        # Step 3: 综合评分排序\r\n        result = result[result[\"综合评分\"] >= min_score].sort_values(\"综合评分\", ascending=False)\r\n        \r\n        return result\r\n    \r\n    def _factor_scoring(self, df: pd.DataFrame) -> pd.DataFrame:\r\n        \"\"\"因子打分（百分制）\"\"\"\r\n        scores = pd.DataFrame(index=df.index)\r\n        \r\n        for factor, config in self.factors.items():\r\n            if factor in df.columns:\r\n                raw = df[factor].copy()\r\n                min_val, max_val = config[\"bounds\"]\r\n                \r\n                # 标准化到0-100\r\n                normalized = (raw - min_val) / (max_val - min_val) * 100\r\n                normalized = normalized.clip(0, 100)\r\n                \r\n                # 方向调整（部分因子越低越好）\r\n                if config[\"direction\"] == \"low_better\":\r\n                    normalized = 100 - normalized\r\n                \r\n                scores[factor] = normalized * config[\"weight\"]\r\n        \r\n        df[\"综合评分\"] = scores.sum(axis=1)\r\n        return df\r\n```\r\n\r\n### 2. Thematic Stock Screening / 主题投资筛选\r\n\r\n```python\r\nTHEMATIC_SCREENING = {\r\n    \"AI人工智能\": {\r\n        \"核心标的\": [\"科大讯飞\", \"海康威视\", \"中科曙光\", \"寒武纪\", \"商汤-W\"],\r\n        \"概念股池\": {\r\n            \"基础层\": [\"芯片\", \"算力\", \"服务器\"],\r\n            \"技术层\": [\"大模型\", \"算法\", \"API\"],\r\n            \"应用层\": [\"办公\", \"医疗\", \"金融\", \"教育\"]\r\n        },\r\n        \"筛选标准\": {\r\n            \"市值\": \">100亿\",\r\n            \"研发投入\": \">10%\",\r\n            \"AI收入占比\": \">30%\"\r\n        },\r\n        \"风险提示\": \"技术迭代快，竞争格局未定，估值波动大\"\r\n    },\r\n    \r\n    \"新能源汽车\": {\r\n        \"核心标的\": [\"比亚迪\", \"宁德时代\", \"理想汽车-W\", \"小鹏汽车-W\"],\r\n        \"筛选维度\": {\r\n            \"整车\": [\"销量增速\", \"毛利率\", \"智能化水平\"],\r\n            \"电池\": [\"能量密度\", \"成本\", \"产能\"],\r\n            \"配件\": [\"单车价值量\", \"客户集中度\"]\r\n        },\r\n        \"政策催化\": \"以旧换新补贴、购置税减免、新能源渗透率目标\"\r\n    },\r\n    \r\n    \"创新药\": {\r\n        \"核心标的\": [\"恒瑞医药\", \"百济神州\", \"信达生物\", \"药明康德\"],\r\n        \"筛选标准\": {\r\n            \"管线丰富度\": \">10个临床管线\",\r\n            \"first-in-class\": \"至少1个\",\r\n            \"BD能力\": \"有海外授权记录\"\r\n        },\r\n        \"风险因素\": \"医保谈判降价、临床失败风险、同靶点竞争\"\r\n    }\r\n}\r\n```\r\n\r\n### 3. Technical Signal Detection / 技术信号检测\r\n\r\n```python\r\nclass TechnicalSignals:\r\n    \"\"\"技术信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def detect_moving_average_signals(prices: pd.Series, \r\n                                      short_ma: int = 20,\r\n                                      long_ma: int = 60) -> dict:\r\n        \"\"\"均线信号检测\"\"\"\r\n        ma_short = prices.rolling(short_ma).mean()\r\n        ma_long = prices.rolling(long_ma).mean()\r\n        \r\n        # 金叉/死叉判断\r\n        current_ma_diff = ma_short.iloc[-1] - ma_long.iloc[-1]\r\n        prev_ma_diff = ma_short.iloc[-2] - ma_long.iloc[-2]\r\n        \r\n        if current_ma_diff > 0 and prev_ma_diff <= 0:\r\n            signal = \"GOLDEN_CROSS\"  # 金叉\r\n        elif current_ma_diff < 0 and prev_ma_diff >= 0:\r\n            signal = \"DEAD_CROSS\"  # 死叉\r\n        else:\r\n            signal = \"NEUTRAL\"\r\n        \r\n        return {\r\n            \"signal\": signal,\r\n            \"short_ma\": round(ma_short.iloc[-1], 2),\r\n            \"long_ma\": round(ma_long.iloc[-1], 2),\r\n            \"ma_diff_pct\": round((current_ma_diff / ma_long.iloc[-1]) * 100, 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_support_resistance(prices: pd.Series, \r\n                                 lookback: int = 60) -> dict:\r\n        \"\"\"支撑压力位检测\"\"\"\r\n        recent = prices.tail(lookback)\r\n        \r\n        # 计算枢轴点\r\n        pivot = (recent.max() + recent.min() + recent.iloc[-1]) / 3\r\n        \r\n        r1 = 2 * pivot - recent.min()\r\n        s1 = 2 * pivot - recent.max()\r\n        r2 = pivot + (recent.max() - recent.min())\r\n        s2 = pivot - (recent.max() - recent.min())\r\n        \r\n        return {\r\n            \"resistance_1\": round(r1, 2),\r\n            \"resistance_2\": round(r2, 2),\r\n            \"pivot\": round(pivot, 2),\r\n            \"support_1\": round(s1, 2),\r\n            \"support_2\": round(s2, 2),\r\n            \"current_price\": round(prices.iloc[-1], 2)\r\n        }\r\n    \r\n    @staticmethod\r\n    def detect_volume_anomaly(prices: pd.Series, \r\n                             volumes: pd.Series,\r\n                             threshold: float = 2.0) -> dict:\r\n        \"\"\"量价异常检测\"\"\"\r\n        avg_volume = volumes.tail(20).mean()\r\n        current_volume = volumes.iloc[-1]\r\n        volume_ratio = current_volume / avg_volume\r\n        \r\n        # 价格与成交量背离\r\n        price_change = (prices.iloc[-1] - prices.iloc[-2]) / prices.iloc[-2]\r\n        \r\n        return {\r\n            \"volume_ratio\": round(volume_ratio, 2),\r\n            \"is_volume_surge\": volume_ratio > threshold,\r\n            \"price_change\": round(price_change * 100, 2),\r\n            \"divergence\": \"量价背离\" if (price_change > 0 and volume_ratio < 0.5) or\r\n                                      (price_change < 0 and volume_ratio > 2) else \"正常\"\r\n        }\r\n```\r\n\r\n### 4. Financial Fraud Detection / 财报异常检测\r\n\r\n```python\r\nclass FraudDetection:\r\n    \"\"\"财报异常信号检测\"\"\"\r\n    \r\n    @staticmethod\r\n    def check_revenue_quality(stock_code: str, \r\n                             financial_data: dict) -> dict:\r\n        \"\"\"营收质量检测\"\"\"\r\n        indicators = {\r\n            # 应收账款异常\r\n            \"ar_growth_vs_revenue\": financial_data.get(\"ar_growth\", 0) - \r\n                                    financial_data.get(\"revenue_growth\", 0),\r\n            \r\n            # 存货异常\r\n            \"inventory_growth_vs_cost\": financial_data.get(\"inv_growth\", 0) - \r\n                                        financial_data.get(\"cost_growth\", 0),\r\n            \r\n            # 现金流匹配\r\n            \"cash_flow_ratio\": financial_data.get(\"cfo\", 0) / \r\n                              max(financial_data.get(\"net_profit\", 1), 1),\r\n            \r\n            # 毛利率异常\r\n            \"gross_margin_volatility\": financial_data.get(\"gm_std\", 0),\r\n            \r\n            # 关联交易占比\r\n            \"related_party_ratio\": financial_data.get(\"rpt_revenue\", 0) / \r\n                                  max(financial_data.get(\"total_revenue\", 1), 1)\r\n        }\r\n        \r\n        # 预警信号\r\n        warnings = []\r\n        if indicators[\"ar_growth_vs_revenue\"] > 30:\r\n            warnings.append(\"应收账款增速显著高于营收增速，可能存在虚构收入\")\r\n        if indicators[\"cash_flow_ratio\"] < 0.5:\r\n            warnings.append(\"经营现金流显著低于净利润，盈利质量存疑\")\r\n        if indicators[\"related_party_ratio\"] > 0.5:\r\n            warnings.append(\"关联交易占比过高，存在利益输送风险\")\r\n        \r\n        return {\r\n            \"indicators\": indicators,\r\n            \"warnings\": warnings,\r\n            \"overall_risk\": \"高\" if len(warnings) >= 2 else \r\n                           \"中\" if warnings else \"低\"\r\n        }\r\n    \r\n    @staticmethod\r\n    def check_auditor_warnings(audit_reports: list) -> dict:\r\n        \"\"\"审计意见检测\"\"\"\r\n        risk_keywords = [\"保留意见\", \"无法表示意见\", \"非标准无保留\", \r\n                        \"持续经营重大不确定性\", \"强调事项段\"]\r\n        \r\n        findings = []\r\n        for report in audit_reports:\r\n            for keyword in risk_keywords:\r\n                if keyword in report:\r\n                    findings.append({\r\n                        \"keyword\": keyword,\r\n                        \"context\": report\r\n                    })\r\n        \r\n        return {\r\n            \"has_warnings\": len(findings) > 0,\r\n            \"findings\": findings,\r\n            \"risk_level\": \"高\" if findings else \"低\"\r\n        }\r\n```\r\n\r\n### 5. Portfolio Construction / 组合构建\r\n\r\n```python\r\nclass PortfolioBuilder:\r\n    \"\"\"智能组合构建\"\"\"\r\n    \r\n    def __init__(self, target_stocks: List[dict], \r\n                 total_capital: float = 1000000):\r\n        self.stocks = target_stocks\r\n        self.capital = total_capital\r\n    \r\n    def build_equal_weight(self, max_positions: int = 10) -> dict:\r\n        \"\"\"等权重配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        per_stock = self.capital / len(selected)\r\n        \r\n        positions = []\r\n        for stock in selected:\r\n            shares = int(per_stock / stock[\"price\"] / 100) * 100  # 100股整数\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": 1 / len(selected)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"等权重\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions),\r\n            \"cash_remaining\": self.capital - sum(p[\"amount\"] for p in positions),\r\n            \"expected_return\": sum(s.get(\"expected_return\", 0) for s in selected) / len(selected),\r\n            \"estimated_risk\": self._calculate_portfolio_risk(positions)\r\n        }\r\n    \r\n    def build_risk_parity(self, max_positions: int = 10) -> dict:\r\n        \"\"\"风险平价配置\"\"\"\r\n        selected = self.stocks[:max_positions]\r\n        \r\n        # 使用波动率倒数作为权重\r\n        inv_vol = [1 / s.get(\"volatility\", 0.3) for s in selected]\r\n        total_inv_vol = sum(inv_vol)\r\n        weights = [v / total_inv_vol for v in inv_vol]\r\n        \r\n        positions = []\r\n        for stock, weight in zip(selected, weights):\r\n            amount = self.capital * weight\r\n            shares = int(amount / stock[\"price\"] / 100) * 100\r\n            positions.append({\r\n                \"code\": stock[\"code\"],\r\n                \"name\": stock[\"name\"],\r\n                \"shares\": shares,\r\n                \"amount\": shares * stock[\"price\"],\r\n                \"weight\": round(weight * 100, 2)\r\n            })\r\n        \r\n        return {\r\n            \"strategy\": \"风险平价\",\r\n            \"positions\": positions,\r\n            \"total_invested\": sum(p[\"amount\"] for p in positions)\r\n        }\r\n    \r\n    def _calculate_portfolio_risk(self, positions: list) -> float:\r\n        \"\"\"简化组合风险估算\"\"\"\r\n        # 假设相关性0.3\r\n        individual_risks = [0.25] * len(positions)  # 默认25%波动率\r\n        correlation = 0.3\r\n        \r\n        portfolio_var = 0\r\n        for i, risk_i in enumerate(individual_risks):\r\n            for j, risk_j in enumerate(individual_risks):\r\n                weight_i = 1 / len(positions)\r\n                weight_j = 1 / len(positions)\r\n                corr = correlation if i != j else 1\r\n                portfolio_var += weight_i * weight_j * risk_i * risk_j * corr\r\n        \r\n        return round(np.sqrt(portfolio_var) * 100, 2)\r\n```\r\n\r\n---\r\n\r\n## Usage Examples / 使用示例\r\n\r\n**启动选股：**\r\n```\r\n用以下条件筛选股票：\r\n- 市盈率 < 30\r\n- 营收增速 > 20%\r\n- ROE > 15%\r\n- 综合评分 > 70\r\n```\r\n\r\n**主题选股：**\r\n```\r\n筛选AI人工智能概念中估值最低的10只股票\r\n```\r\n\r\n**技术面选股：**\r\n```\r\n找出所有出现均线金叉且放量突破的股票\r\n```\r\n\r\n---\r\n\r\n## Disclaimer\r\n\r\nThis skill provides stock screening tools and analysis for educational purposes. Stock selection results are based on quantitative models and historical data, which do not guarantee future performance. All investment decisions should be made based on independent research and professional advice. Past performance does not indicate future results.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn74e704j3ygjcygnpf02rdvd185js13\",\n  \"slug\": \"security-stock-picker\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778489568650\n}","readmeExcerpt":"Skill: Security Stock Picker Owner: gechengling Summary: AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat... Tags: latest:3.0.3, security-stock-picker:3.0.3 Version history: v3.0.3 | 2026-09-30T07:02:58.743Z | user v3.0.3: narrow triggers (SQP-1), add data-minimisation + execution boundary, refresh to 2026-09-","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: AI-Powered Stock Selection Engine\r\nslug: security-stock-screening\r\ndescription: AI-powered intelligent stock selection engine for China A-share market — covers quantitative factor screening, fundamental analysis ranking, technical signal detection, sector rotation analysis, and portfolio construction. Built for retail investors, fund managers, and quantitative analysts. Updated 2026 with latest factor models, short-seller vulnerability detection, and AI-enhanced stock screening. Keywords: stock selection, quantitative screening, factor investing, technical analysis, China A-share, stock picker, AI investing, 选股引擎, 量化选股, 因子投资, 技术分析, A股, 智能选股, 选股策略, 量化策略, AI选股, 股票筛选, 价值投资, 成长股, 短线选股.\r\nversion: \"3.0.3\"\r\n---\r\n\r\n# AI-Powered Stock Selection Engine / 智能选股引擎\r\n\r\n> **English:** AI-powered intelligent stock selection engine for China A-share market — combines quantitative factor screening, fundamental analysis, technical signals, and sector rotation analysis. Solves pain points: information overload, emotional decision-making, and inconsistent stock picking criteria. Built for investors and analysts at all levels.\r\n>\r\n> **中文:** 智能选股引擎——整合量化因子筛选、基本面分析、技术信号检测、行业轮动分析的全流程选股工具。解决痛点：信息过载、情绪化决策、选股标准不统一。适用：各级投资者、基金经理、量化分析师。\r\n\r\n\r\n---\r\n\r\n## 数据最小化声明与执行边界 / Data Minimisation & Execution Boundary\r\n\r\n**数据最小化前置声明：** 使用本技能时，请只提供构建筛选规则所必需的字段——股票代码、因子数值、报告期、已脱敏的持仓与可用资金规模。**不要**粘贴证券账户号、身份证号、银行账号、实际成交明细或他人持仓信息。若需基于个人持仓做再平衡分析，请用“标的+权重”的脱敏形式输入，不提供账户标识。\r\n\r\n**保存与预览确认：** 本技能不执行任何保存动作。若你在自己环境中依据本技能生成候选池、组合方案或回测脚本，请在落盘或提交交易前**先预览结果、确认参数与阈值无误，再保存或执行**。\r\n\r\n**代码块性质与执行边界**\r\n\r\n| 内容 | 性质 | 谁来执行 |\r\n|------|------|---------|\r\n| `StockScreener` 类与因子权重表 | 因子定义、打分与归一化的口径说明 | 由研究员在自己的量化环境中取数并复现；技能不取数、不运行 |\r\n| `THEMATIC_SCREENING` | 主题产业链拆解与筛选标准的结构化字典 | 由研究员按公开资料自行更新标的与标准 |\r\n| `TechnicalSignals` 类 | 均线/支撑压力/量价异常的计算口径示意 | 由研究员在自有行情终端或回测框架中实现 |\r\n| `FraudDetection` 类 | 财报异常指标的判定阈值说明 | 由研究员用公开财报数据计算，结论需人工复核 |\r\n| `PortfolioBuilder` 类 | 等权重与风险平价的权重算法示意 | 由研究员在自有系统中运行；技能不下单、不调仓 |\r\n\r\n本技能未配置任何工具调用权限，不执行代码、不读写文件、不访问行情或财报数据源，也不产生可直接执行的交易指令。文中代码块均为模型与阈值的教学示意，读者可在自己环境中参考实现；选股结果不构成投资建议，实盘前须独立核验数据与合规要求。\r\n\r\n---\r\n\r\n\r\n### 证券监管最新动态 [2026-09-30更新]\r\n\r\n| 动态类型 | 内容摘要 | 影响范围 | 选股侧应对动作 | 责任岗 | 优先级 |\r\n|---------|---------|---------|--------------|-------|-------|\r\n| 证券监管 | 2026年A股量化资金占比30%-40%，选股模型需考虑量化冲击 | 选股引擎需增加量化冲击识别和极端行情风控 | 模型输出附带流动性冲击提示与成交结构说明 | 研究 | 高 |\r\n| 证券监管 | 2026年3月23日量化踩踏案例（单日蒸发4.29万亿），风控需加强 | 选股引擎需增加量化冲击识别和极端行情风控 | 引入集中度与拥挤度指标，作为风控前置条件 | 研究 | 高 |\r\n| 证券监管 | 上证周线级别中枢震荡，2026年核心区间3200-4000点 | 选股引擎需增加量化冲击识别和极端行情风控 | 震荡区间内降低趋势类因子权重 | 研究 | 中 |\r\n| 程序化交易 | 程序化交易报告与异常交易监控要求细化 | 与量化资金相关的流动性与波动分析 | 在流动性评估中单独列示程序化交易影响 | 研究 | 中 |\r\n| 信息披露 | 财务信息披露质量监管持续强化 | 财报异常检测、因子取数 | 因子取数须标注报告期与公告编号 | 研究 | 高 |\r\n| 市值管理 | 上市公司市值管理行为披露要求趋严 | 涉及回购、增减持的个股筛选 | 筛选中单列股东行为事件标签 | 研究 | 中 |\r\n| 业绩预告 | 业绩预告披露质量受关注 | 事件驱动类选股 | 使用预告数据时区分预告口径与实际口径 | 研究 | 高 |\r\n| 投资者保护 | 投顾与荐股类内容传播边界收紧 | 选股结果对外输出 | 输出结果保留风险提示与免责声明 | 合规 | 高 |\r\n| 程序化交易 | 2026年9月下旬：程序化交易报备与异常交易监控的执行细节进一步明确 | 高频与量化相关策略的流动性评估 | 冲击成本估算中单列程序化交易影响假设 | 研究 | 中 |\r\n| 信息披露 | 2026年三季度：财务信"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74e704j3ygjcygnpf02rdvd185js13\",\n  \"slug\": \"security-stock-picker\",\n  \"version\": \"3.0.3\",\n  \"publishedAt\": 1790751778743\n}"},{"path":"skill-card.md","content":"## Description:\n\nProvides an educational framework for screening China A-share stocks using quantitative factors, fundamentals, technical signals, sector analysis, and portfolio construction.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[gechengling](https://clawhub.ai/user/gechengling)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nInvestors and analysts use this skill to develop and review educational A-share screening criteria, factor comparisons, risk checks, and illustrative portfolio allocations; it does not provide investment advice or place trades.\n\n### Deployment Geography for Use:\n\nGlobal (focused on China's A-share market)\n\n## Known Risks and Mitigations:\n\nRisk: Outdated or inaccurate market data, regulatory claims, or model outputs could mislead financial decisions.\n\nMitigation: Independently verify data, claims, and screening results before acting; treat outputs as educational, not investment advice.\n\nRisk: Portfolio details could expose sensitive financial information.\n\nMitigation: Share only anonymized holdings weights or factor data; omit account identifiers and transaction records.\n\nRisk: Illustrative code or portfolio suggestions could be mistaken for executable trading instructions.\n\nMitigation: Review parameters and outputs before using any examples in an external environment; do not automate trades from this skill.\n\n## Reference(s):\n\n- [Security Stock Picker on ClawHub](https://clawhub.ai/gechengling/skills/security-stock-picker)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Guidance, Code]\n\n**Output Format:** [Markdown with tables and illustrative code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Educational screening and portfolio examples; no live data access or trade execution.]\n\n## Skill Version(s):\n\n3.0.3 (source: ClawHub release metadata and skill frontmatter)\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."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat... Skill: Security Stock Picker Owner: gechengling Summary: AI-powered stock selection engine for China A-share market combining quantitative factor screening, fundamental analysis, technical signals, and sector rotat... Tags: latest:3.0.3, security-stock-picker:3.0.3 Version history: v3.0.3 | 2026-09-30T07:02:58.743Z | user v3.0.3: narrow triggers (SQP-1), add data-minimisation + execution boundary, refresh to 2026-09-","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":953,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T03:09:04.897Z","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-11T03:09:04.897Z","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-11T05:32:27.271Z","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"}]}}}