{"id":"c30b1986-7987-4427-b21d-f802d6642768","entityType":"agent","slug":"clawhub-ygbeyond-libu-premarket","name":"Libu Premarket","canonicalUrl":"https://www.xpersona.co/agent/clawhub-ygbeyond-libu-premarket","canonicalPath":"/agent/clawhub-ygbeyond-libu-premarket","generatedAt":"2026-10-10T02:02:15.013Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T19:26:55.487Z","emptyReason":null},"description":"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Skill: Libu Premarket Owner: ygbeyond Summary: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Tags: latest:14.0.11 Version history: v14.0.11 | 2026-07-18T01:39:40.877Z | auto - Removed documentation file: skill-card.md - No functional or data updates in this version v14.0.10 | 2026-07-17T18:09:18.535Z | auto libu-premarket v14.0.10 — 每周数据焕新版 - 更新 basic 数据至 2026-06-26（latest trading day） - 更新 finance 数据至 2026Q1 - 同步最新 pre_ma","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.1K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s174awnjb5aqnh0s6qzask59wh852q8z:libu-premarket","sourceUrl":"https://clawhub.ai/ygbeyond/libu-premarket","homepage":"https://clawhub.ai/ygbeyond/skills/libu-premarket","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/ygbeyond/libu-premarket","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/ygbeyond/skills/libu-premarket","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Skill: Libu Premarket Owner: ygbeyond Summary: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Tags: latest:14.0.11 Version hist"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:26:55.487Z","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-09T19:26:55.487Z","emptyReason":null},"stars":null,"forks":null,"downloads":2078,"packageName":null,"latestVersion":"14.0.11","tractionLabel":"2.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:26:55.453Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T19:26:55.487Z","lastCrawledAt":"2026-10-09T19:26:55.453Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T19:26:55.453Z","lastVerifiedAt":null,"highlights":[{"version":"14.0.11","createdAt":"2026-07-18T01:39:40.877Z","changelog":"- Removed documentation file: skill-card.md - No functional or data updates in this version","fileCount":9,"zipByteSize":26206},{"version":"14.0.10","createdAt":"2026-07-17T18:09:18.535Z","changelog":"libu-premarket v14.0.10 — 每周数据焕新版 - 更新 basic 数据至 2026-06-26（latest trading day） - 更新 finance 数据至 2026Q1 - 同步最新 pre_market.py 代码与 config.json - 重新打包 initial_data.zip - 移除 skill-card.md 文件","fileCount":9,"zipByteSize":26530},{"version":"14.0.8","createdAt":"2026-07-03T18:08:11.068Z","changelog":"v14.0.8 (2026-07-04) — 每周数据焕新版 - 更新 basic 数据至 2026-06-26 - 更新 finance 数据至 2026Q1 - 同步最新 pre_market.py 代码与 config.json","fileCount":9,"zipByteSize":26404},{"version":"14.0.7","createdAt":"2026-06-26T18:07:27.716Z","changelog":"libu-premarket v14.0.7 — 每周数据更新版 - 更新 basic 数据至 2026-06-26（最新交易日） - 更新 finance 数据（2026Q1 + 2025年报），保持最新 - 同步最新 pre_market.py 代码及 config.json 配置 - initial_data.zip 重新打包为 4.1MB - 移除 skill-card.md 文件","fileCount":8,"zipByteSize":24945},{"version":"14.0.6","createdAt":"2026-06-19T18:08:11.060Z","changelog":"- 每周数据焕新版。 - 更新 basic 数据至 2026-06-18（latest trading day）。 - 更新 finance 数据保持最新。 - 同步最新 pre_market.py 代码与 config.json。 - 移除 skill-card.md 文件。","fileCount":9,"zipByteSize":26223},{"version":"14.0.4","createdAt":"2026-06-05T18:11:43.764Z","changelog":"libu-premarket v14.0.4 — 每周数据焕新版 - 更新 basic 数据至 2026-06-05（最新交易日） - 更新 closing 数据至 2026-06-05 - 同步最新 pre_market.py 代码与 config.json - 移除 skill-card.md 文件","fileCount":9,"zipByteSize":26092},{"version":"14.0.3","createdAt":"2026-05-29T18:08:45.469Z","changelog":"libu-premarket v14.0.3 – 每周数据焕新版 - 更新 basic 数据至 2026-05-29（latest trading day） - finance 数据保持最新 - 同步最新 pre_market.py 代码与 config.json - 移除文档 skill-card.md","fileCount":9,"zipByteSize":26180},{"version":"14.0.2","createdAt":"2026-05-22T18:08:37.077Z","changelog":"数据焕新","fileCount":9,"zipByteSize":26266}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s174awnjb5aqnh0s6qzask59wh852q8z:libu-premarket","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/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-10T02:02:15.011Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ygbeyond-libu-premarket/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-09T19:26:55.487Z","emptyReason":null},"readme":"Skill: Libu Premarket\n\nOwner: ygbeyond\n\nSummary: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\n\nTags: latest:14.0.11\n\nVersion history:\n\nv14.0.11 | 2026-07-18T01:39:40.877Z | auto\n\n- Removed documentation file: skill-card.md\n- No functional or data updates in this version\n\nv14.0.10 | 2026-07-17T18:09:18.535Z | auto\n\nlibu-premarket v14.0.10 — 每周数据焕新版\n\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n- 重新打包 initial_data.zip\n- 移除 skill-card.md 文件\n\nv14.0.8 | 2026-07-03T18:08:11.068Z | auto\n\nv14.0.8 (2026-07-04) — 每周数据焕新版\n\n- 更新 basic 数据至 2026-06-26\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\nv14.0.7 | 2026-06-26T18:07:27.716Z | auto\n\nlibu-premarket v14.0.7 — 每周数据更新版\n\n- 更新 basic 数据至 2026-06-26（最新交易日）\n- 更新 finance 数据（2026Q1 + 2025年报），保持最新\n- 同步最新 pre_market.py 代码及 config.json 配置\n- initial_data.zip 重新打包为 4.1MB\n- 移除 skill-card.md 文件\n\nv14.0.6 | 2026-06-19T18:08:11.060Z | auto\n\n- 每周数据焕新版。\n- 更新 basic 数据至 2026-06-18（latest trading day）。\n- 更新 finance 数据保持最新。\n- 同步最新 pre_market.py 代码与 config.json。\n- 移除 skill-card.md 文件。\n\nv14.0.4 | 2026-06-05T18:11:43.764Z | auto\n\nlibu-premarket v14.0.4 — 每周数据焕新版\n\n- 更新 basic 数据至 2026-06-05（最新交易日）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n- 移除 skill-card.md 文件\n\nv14.0.3 | 2026-05-29T18:08:45.469Z | auto\n\nlibu-premarket v14.0.3 – 每周数据焕新版\n\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n- 移除文档 skill-card.md\n\nv14.0.2 | 2026-05-22T18:08:37.077Z | user\n\n数据焕新\n\nv14.0.1 | 2026-05-15T18:07:45.572Z | user\n\n数据更新至 2026-05-14\n\nv14.0.0 | 2026-05-08T18:10:34.230Z | user\n\n每周数据焕新：更新至2026-05-08行情数据，同步最新代码与配置\n\nv1.4.0 | 2026-05-01T18:09:34.349Z | auto\n\nlibu-premarket v1.4.0\n\n- 更新部分文档和元数据，完善 CHANGELOG.md 与 SKILL.md 内容\n- 优化配置文件 config.json 和 manifest.json，保持与最新脚本同步\n- pre_market.py 实现细节同步内部开发版，修复和优化体验\n- 无引入破坏性变更，保持向下兼容\n\nv1.3.45 | 2026-04-24T18:08:44.067Z | auto\n\nv1.3.45 — 数据焕新\n\n- 日线数据更新至 2026-04-24，收盘数据同步\n- pre_market.py 与 config.json 同步自内部开发版本\n- 文档增加自动化 Cron 部署与数据验证说明\n- 其他细节优化与维护\n\nv1.3.44 | 2026-04-22T08:55:04.635Z | auto\n\n### v1.3.44\n\n- Updated `payment_utils.py` (details not specified).\n- No changes to documentation or user-facing features.\n\nv1.3.43 | 2026-04-22T08:52:59.179Z | auto\n\nlibu-premarket v1.3.43\n\n- Updated version metadata and documentation.\n- Improved clarity in SKILL.md for version numbering and environment variable instructions.\n- Minor fixes and wording adjustments across manifest and documentation files.\n- No functional changes to code logic.\n\nv1.3.42 | 2026-04-22T08:48:17.539Z | auto\n\nNo file changes detected in this version.  \nThere are no updates or modifications from the previous release.\n\nv0.13.42 | 2026-04-22T08:47:45.829Z | auto\n\nv0.13.42\n\n- 新增 manifest.json 的 optional_env_vars 字段，明确声明 CLAWTIP_SM4_KEY 和 TUSHARE_TOKEN\n- 优化 SKILL.md，补充环境变量配置说明，修正「零配置」表述，使文档与实际行为一致\n- 数据更新流程调整，去除 initial_data.zip，统一为联网获取和本地缓存机制\n- 细节更新与安全兼容性修复\n\nv13.4.1 | 2026-04-21T01:50:05.834Z | auto\n\nlibu-premarket v13.4.1\n\n- License updated from MIT to MIT-0.\n- Documentation (SKILL.md) fully revised: simpler, clearer quickstart; improved report examples; features and usage now more concise.\n- Payment and Lite Mode instructions clarified for easier onboarding.\n- Metadata file (_meta.json) added.\n- Minor manifest and code adjustments.\n\nv13.4.0 | 2026-04-20T10:04:37.329Z | auto\n\nv13.4.0 introduces Lite模式免费体验及核心支付安全重构。\n\n- 新增“Lite模式”，用户无需配置密钥即可免费运行获取全球市场与复盘数据\n- 完全重构支付与验证流程，采用京东SM4密钥环境变量，大幅提升安全性\n- 优化首次运行体验与指引，未解锁完整版时用户体验更友好\n- 文档细节完善与快速开始流程更新\n\nv13.3.3 | 2026-04-20T08:46:46.053Z | auto\n\nlibu-premarket v13.3.3\n\n- Updated manifest.json and payment_utils.py.\n- Maintenance update; no user-facing features or breaking changes documented.\n- SKILL.md and core product description remain unchanged.\n\nv13.3.2 | 2026-04-20T08:39:36.035Z | auto\n\nlibu-premarket v13.3.2\n\n- Updated dependencies and metadata in manifest.json.\n- Made adjustments in payment_utils.py for payment utility improvements.\n- No user-facing feature changes described.\n\nv13.3.1 | 2026-04-20T08:29:46.077Z | auto\n\nlibu-premarket v13.3.1\n\n- Updated manifest.json and payment_utils.py for compatibility and payment improvements.\n- No changes to user-facing documentation or main feature set.\n- Minor internal fixes and optimizations.\n\nv13.3.0 | 2026-04-20T07:29:27.932Z | auto\n\nlibu-premarket v13.3.0 — 零配置 + Lite 模式  \n- 移除复杂的环境变量配置，实现开箱即用，安装即可运行  \n- 新增“Lite 模式”，未支付用户可免费体验全球市场概览与昨日复盘  \n- 运行结束自动提示如何解锁完整版，操作更简单  \n- 修复潜在环境变量绕过漏洞  \n- 清理和优化部分旧文件结构\n\nv13.2.3 | 2026-04-19T10:02:08.723Z | user\n\n移除动态代码加载逻辑(sys.path.insert+import api_client)，消除安全扫描suspicious误判\n\nv13.2.2 | 2026-04-19T09:23:15.704Z | user\n\n修复SM4密钥配置指引：将密钥配置从运行后提前到运行前，补充安装依赖步骤\n\nv13.2.1 | 2026-04-19T09:12:43.455Z | user\n\n优化 SKILL.md 安装指引，从 6 步简化为 4 步，降低用户上手门槛\n\nv13.2.0 | 2026-04-19T08:59:20.743Z | user\n\n安全加固+体验修复: Eastmoney空值修复、ST股票过滤增强、周末价格数据fallback、新增CHANGELOG/LICENSE/.gitignore、API重试机制、RSI改用Wilder EMA、订单号三重防护\n\nv13.1.0 | 2026-04-19T05:39:02.125Z | user\n\n安全加固：移除SM4密钥硬编码默认值，payTo改为base64编码存储\n\nv13.0.0 | 2026-04-19T03:14:48.218Z | auto\n\nlibu-premarket v13.0.0 — 支付流程体验大幅升级\n\n- 全面优化京东 ClawTip 支付流程，实现首次微信扫码授权后自动解锁功能\n- 安装和运行流程不变，首次运行自动生成订单并引导支付\n- SKILL.md 细化支付与授权引导，新增首次使用授权步骤说明\n- 支付凭证写入与本地校验更可靠，未支付功能自动锁定\n- 仍支持单次体验与月度订阅两种付费模式\n\nv12.9.0 | 2026-04-19T02:11:10.352Z | auto\n\n- Bumped version to 12.9.0\n- Updated internal code in payment_utils.py and pre_market.py\n- No major user-facing changes documented\n- SKILL.md and manifest.json refreshed for new version\n\nv12.8.0 | 2026-04-19T02:02:12.811Z | auto\n\nNo file or documentation changes detected in this release.\n\n- Version number updated from 12.7.0 to 12.8.0.\n- No new features, fixes, or content edits were introduced.\n\nv12.7.0 | 2026-04-19T02:00:58.879Z | auto\n\nlibu-premarket 12.7.0 支付架构修复版\n\n- 修复并更新了 ClawTip 支付流程，现在需用 AI Agent 调用 ClawTip 并传入订单号与 indicator。\n- 支付完成后，支付凭证自动写入订单文件，下次运行时即可解锁全部功能。\n- 优化支付指引文档，提升用户体验。\n- 版本号升级，维持所有实战级选股和数据解包功能不变。\n\nv12.6.0 | 2026-04-19T01:39:08.343Z | auto\n\nlibu-premarket v12.6.0 （安全加固版）\n\n- 增加多份财务与日基本面缓存数据，进一步充实数据包内容并覆盖最新季度。\n- 安全性与健壮性优化，“安全加固版”正式上线，运行更稳定。\n- 文档（SKILL.md）更新，明确当前版本特性与保障说明。\n- 其他若干底层代码调整，提升数据缓存和支付流程支持。\n\nv12.5.1 | 2026-04-18T13:13:27.690Z | auto\n\n- 完善 Skill 文档，详细介绍核心选股方法、数据结构及快速启动流程，提升易用性。\n- 明确付费方案与支付流程，支持单次与包月付费模式。\n- 增加本地缓存和内置初始数据包，实现零配置开箱即用。\n- 指南新增 Tushare Token 配置，满足用户高阶数据需求。\n- 优化安装与运行说明，便于新手快速上手。\n\nArchive index:\n\nArchive v14.0.11: 9 files, 26206 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3438b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2111b), SKILL.md (7489b), _meta.json (135b)\n\nFile v14.0.11:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.10\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.8 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.7 (2026-06-27) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据保持最新（2026Q1 + 2025年报）\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包（4.1MB）\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.10 (2026-07-18) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包\n\nFile v14.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.11\",\n  \"publishedAt\": 1784338780877\n}\n\nFile v14.0.11:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.11:skill-card.md\n\n## Description:\n\nLibu Premarket generates an A-share premarket map that combines capital-flow signals, financial filters, and technical indicators to identify sectors and stocks for review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[ygbeyond](https://clawhub.ai/user/ygbeyond)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill before A-share market open to prepare a data-backed watchlist and premarket report. It is intended for market research and decision support, not as investment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requests broad file, network, and environment-variable access and may load code from another local skill directory.\n\nMitigation: Install only after reviewing the publisher, run in an environment where those permissions are acceptable, and avoid keeping an untrusted Tushare integration under ~/.openclaw/skills/tushare-finance/scripts/api_client.py.\n\nRisk: Payment and licensing checks are weak security boundaries.\n\nMitigation: Treat payment validation as a convenience control, not a protection mechanism for sensitive data or trusted execution.\n\nRisk: Dependencies are not fully pinned.\n\nMitigation: Review and pin dependency versions before use in managed or production environments.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/skills/libu-premarket)\n- [Tushare Pro](https://tushare.pro)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Files, Guidance]\n\n**Output Format:** [Markdown report with a JSON data file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Writes pre_market_data.json and prints a premarket report; results depend on cached or live market data.]\n\n## Skill Version(s):\n\n14.0.11 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v14.0.11:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.11:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.10\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.10 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.11:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.10: 9 files, 26530 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3438b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2776b), SKILL.md (7489b), _meta.json (135b)\n\nFile v14.0.10:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.10\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.8 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.7 (2026-06-27) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据保持最新（2026Q1 + 2025年报）\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包（4.1MB）\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.10 (2026-07-18) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包\n\nFile v14.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.10\",\n  \"publishedAt\": 1784311758535\n}\n\nFile v14.0.10:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.10:skill-card.md\n\n## Description: <br>\n礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this paid skill before market open to generate an A-share pre-market stock-analysis report from capital-flow, financial, technical, and macro market signals. The output is for data reference and does not constitute investment advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill is a paid stock-analysis workflow that reads payment and market-data environment variables, contacts external financial data services, and writes local report, cache, and payment order files. <br>\nMitigation: Install only after reviewing the payment flow and permissions; confirm the displayed SKU and amount before authorizing payment, and provide only the environment variables needed for the intended run. <br>\nRisk: Market-data outputs and stock rankings may be incomplete, stale, or misleading if external data calls fail, cached data is old, or optional data tokens are unavailable. <br>\nMitigation: Treat generated reports as reference material, check cache freshness warnings, refresh data when possible, and avoid relying on the output as investment advice. <br>\nRisk: Dependency hygiene risk is present because some Python dependencies are broad rather than fully pinned. <br>\nMitigation: Review and pin dependencies in the deployment environment, and prefer releases with updated dependency constraints. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/skills/libu-premarket) <br>\n- [Publisher profile](https://clawhub.ai/user/ygbeyond) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, JSON, Files, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown report with a generated JSON data file and inline shell/configuration examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes pre_market_data.json and local cache/order files; may require CLAWTIP_SM4_KEY for paid access and optional TUSHARE_TOKEN for live financial data.] <br>\n\n## Skill Version(s): <br>\n14.0.10 (source: server release metadata, artifact frontmatter, and manifest) <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\nFile v14.0.10:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.10:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.10\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.10 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.10:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.8: 9 files, 26404 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2739b), SKILL.md (7258b), _meta.json (134b)\n\nFile v14.0.8:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.8\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.8 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.7 (2026-06-27) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据保持最新（2026Q1 + 2025年报）\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包（4.1MB）\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.8 (2026-07-04) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26\n- 更新 finance 数据至 2026Q1\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.8\",\n  \"publishedAt\": 1783102091068\n}\n\nFile v14.0.8:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.8:skill-card.md\n\n## Description: <br>\nLibu Premarket generates a pre-market A-share trading map using capital-flow signals, financial filters, and technical indicators. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal investors and agent operators use this skill before the A-share market opens to generate a data-backed watchlist and market-readiness report. It supports paid access, optional Tushare data refreshes, local caching, and generation of a JSON dataset for an agent to summarize. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles paid ClawTip orders and reads payment credentials from the local OpenClaw order directory. <br>\nMitigation: Review the ClawTip amount and SKU before authorizing payment, and keep payment credential files in a user-controlled environment. <br>\nRisk: The skill requires environment-variable access for CLAWTIP_SM4_KEY and may use TUSHARE_TOKEN for data refreshes. <br>\nMitigation: Provide only the documented variables, rotate exposed credentials, and avoid running the skill in shells that contain unrelated secrets. <br>\nRisk: The scanner notes broad local file access and an under-disclosed ability to load code from ~/.openclaw/skills/tushare-finance/scripts. <br>\nMitigation: Run in an isolated workspace and avoid installing or retaining untrusted code at that local Tushare skill path. <br>\nRisk: The skill produces stock-picking analysis that could be mistaken for investment advice. <br>\nMitigation: Treat outputs as informational market research and independently review trading decisions, data freshness, and risk tolerance. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/skills/libu-premarket) <br>\n- [Publisher profile](https://clawhub.ai/user/ygbeyond) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [json, markdown, guidance] <br>\n**Output Format:** [JSON data file and Markdown-style market analysis report] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces pre_market_data.json for agent consumption and includes finance, sector, market-context, and watchlist fields.] <br>\n\n## Skill Version(s): <br>\n14.0.8 (source: server release evidence, artifact frontmatter, manifest) <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\nFile v14.0.8:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.8:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.8\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.8 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.8:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.7: 8 files, 24945 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), SKILL.md (6888b), _meta.json (134b)\n\nFile v14.0.7:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.4\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.4 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.7 (2026-06-27) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-26（latest trading day）\n- 更新 finance 数据保持最新（2026Q1 + 2025年报）\n- 同步最新 pre_market.py 代码与 config.json\n- initial_data.zip 重新打包（4.1MB）\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.7\",\n  \"publishedAt\": 1782497247716\n}\n\nFile v14.0.7:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.7:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.7:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.7\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.7 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.7:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.6: 9 files, 26223 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2569b), SKILL.md (6621b), _meta.json (134b)\n\nFile v14.0.6:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.4\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.4 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.6\",\n  \"publishedAt\": 1781892491060\n}\n\nFile v14.0.6:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.6:skill-card.md\n\n## Description: <br>\nLibu Premarket generates an A-share pre-market stock screening map using capital-flow signals, financial filters, and technical indicators. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to prepare a pre-market A-share market report, including global market context, sector flow analysis, selected stock candidates, and trading guidance for human review. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requests broad local file and environment access and reads payment and market-data credentials from environment variables. <br>\nMitigation: Install only from a trusted publisher, run in an environment where those credentials may be read by the skill, and avoid exposing unrelated secrets. <br>\nRisk: The skill may load Python code from a separate local tushare-finance skill directory if that path exists. <br>\nMitigation: Review any local tushare-finance files before running this skill, or run it in a clean environment without that local skill path. <br>\nRisk: The output includes stock-screening and trading guidance that may be incomplete, stale, or unsuitable for a user's risk profile. <br>\nMitigation: Treat generated reports as data references only, verify market data independently, and require human investment review before acting. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/libu-premarket) <br>\n- [Publisher profile](https://clawhub.ai/user/ygbeyond) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, configuration, guidance] <br>\n**Output Format:** [Console text plus pre_market_data.json for agent-readable market report data; documentation also describes Markdown report content.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires local Python dependencies and payment credential setup; optionally uses TUSHARE_TOKEN for fresher market data.] <br>\n\n## Skill Version(s): <br>\n14.0.6 (source: server release, manifest.json, and changelog) <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\nFile v14.0.6:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.6:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.6\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.6 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.6:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.4: 9 files, 26092 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2302b), SKILL.md (6422b), _meta.json (134b)\n\nFile v14.0.4:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.4\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.4 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.4 (2026-06-06) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-05（latest trading day）\n- 更新 closing 数据至 2026-06-05\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.4\",\n  \"publishedAt\": 1780683103764\n}\n\nFile v14.0.4:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.4:skill-card.md\n\n## Description: <br>\nLibu Premarket generates a pre-market A-share stock report using market flow, financial filters, technical indicators, and configurable local cache data. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill before market open to assemble a data-driven A-share watchlist and report from market-flow signals, financial screening, technical indicators, and cached or live market data. The generated report is for reference and should not be treated as investment advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal; market coverage focuses on China A-share equities. <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can load and execute code from ~/.openclaw/skills/tushare-finance/scripts when that local path exists. <br>\nMitigation: Inspect or remove that local Tushare client directory before running unless you intentionally rely on it. <br>\nRisk: The skill uses outbound market-data access and writes local cache, report, and ClawTip payment files. <br>\nMitigation: Run it only in an environment where those network requests and local file writes are acceptable, and review the generated files before relying on them. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/libu-premarket) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, configuration, shell commands] <br>\n**Output Format:** [Markdown report guidance with generated JSON data and command-line setup steps] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes pre_market_data.json and uses local cache, environment variables, outbound market-data requests, and ClawTip payment files when run.] <br>\n\n## Skill Version(s): <br>\n14.0.4 (source: server release metadata, manifest.json, and SKILL.md 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\nFile v14.0.4:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.4:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.4\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.3 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.4:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.3: 9 files, 26180 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2496b), SKILL.md (6221b), _meta.json (134b)\n\nFile v14.0.3:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.3\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.3 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.3 (2026-05-30) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-29（latest trading day）\n- 更新 finance 数据保持最新\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.3\",\n  \"publishedAt\": 1780078125469\n}\n\nFile v14.0.3:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.3:skill-card.md\n\n## Description: <br>\nLibu Premarket generates an A-share pre-market map using capital-flow, financial, and technical filters to help an agent prepare a market report. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and AI agents use this skill before market open to assemble A-share market context, sector momentum, and filtered stock candidates for a pre-market report. The generated content is informational and should not be treated as investment advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: ClawHub security review marked this release suspicious because it can dynamically load code from a neighboring local skill and persists payment or order state under hidden OpenClaw directories. <br>\nMitigation: Review installed companion skills and local OpenClaw payment/order files before running; use an isolated environment for first execution. <br>\nRisk: The skill reads payment and Tushare environment variables and contacts external market-data services. <br>\nMitigation: Provide only scoped credentials, verify outbound network access is acceptable, and avoid running with unrelated sensitive environment variables. <br>\nRisk: The generated market report may be incomplete, stale, or unsuitable for trading decisions. <br>\nMitigation: Treat the output as informational research, confirm data freshness and sources, and apply independent review before acting on any financial conclusion. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/libu-premarket) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, configuration] <br>\n**Output Format:** [JSON data file plus Markdown/text report and setup commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes pre_market_data.json and local cache, report, and payment order files.] <br>\n\n## Skill Version(s): <br>\n14.0.3 (source: server release metadata, SKILL.md frontmatter, manifest.json) <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\nFile v14.0.3:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.3:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.3\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.3 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.3:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.2: 9 files, 26266 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), skill-card.md (2577b), SKILL.md (6022b), _meta.json (134b)\n\nFile v14.0.2:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.2\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.2 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.2 (2026-05-23) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-22（latest trading day）\n- 更新 finance 数据至 2026Q1 + 2025年报\n- 更新 closing 数据至 2026-05-22\n- 同步最新 pre_market.py 代码与 config.json\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.2\",\n  \"publishedAt\": 1779473317077\n}\n\nFile v14.0.2:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.2:skill-card.md\n\n## Description: <br>\n礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[ygbeyond](https://clawhub.ai/user/ygbeyond) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal investors and trading-focused agents use this skill before the A-share market opens to generate a pre-market map from sector money flow, financial filters, technical indicators, and cached or live market data. It is for data reference and does not provide investment advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The security review marks the skill suspicious because it is a paid stock-analysis skill that reads payment and Tushare environment variables and writes local cache, report, and order files. <br>\nMitigation: Install only after reviewing the payment flow, run with only the required environment variables, and keep generated cache, report, and order files in a trusted local workspace. <br>\nRisk: Generated ClawTip orders could cause unintended payment if the amount or recipient is not checked. <br>\nMitigation: Before paying, verify the ClawTip amount and recipient in the generated order, then pay only the intended SKU. <br>\nRisk: The security guidance warns about internal-mode or external local Tushare client behavior triggered by paths or environments. <br>\nMitigation: Run from a trusted installed skill directory and avoid untrusted paths or environments that could trigger alternate local-client behavior. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/libu-premarket) <br>\n- [Publisher profile](https://clawhub.ai/user/ygbeyond) <br>\n- [Tushare Pro](https://tushare.pro) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, JSON, Files, Guidance] <br>\n**Output Format:** [Markdown report plus pre_market_data.json] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes local cache, report, and order files; requires CLAWTIP_SM4_KEY for paid access and can use TUSHARE_TOKEN for live data.] <br>\n\n## Skill Version(s): <br>\n14.0.2 (source: server release metadata, SKILL.md frontmatter, manifest.json) <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\nFile v14.0.2:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.2:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.2\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.2 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.2:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.1: 8 files, 24798 bytes\n\nFiles: CHANGELOG.md (3394b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), SKILL.md (5774b), _meta.json (134b)\n\nFile v14.0.1:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.1\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.1 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.1 (2026-05-16) — 每周数据焕新版\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\nFile v14.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.1\",\n  \"publishedAt\": 1778868465572\n}\n\nFile v14.0.1:CHANGELOG.md\n\n## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.1:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.1:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.1\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.1 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.1:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0\n\nArchive v14.0.0: 8 files, 24648 bytes\n\nFiles: CHANGELOG.md (3164b), config.json (655b), manifest.json (3436b), payment_utils.py (15124b), pre_market.py (36223b), requirements.txt (74b), SKILL.md (5544b), _meta.json (134b)\n\nFile v14.0.0:SKILL.md\n\n---\nname: libu-premarket\nversion: 14.0.0\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.0 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\nFile v14.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.0\",\n  \"publishedAt\": 1778263834230\n}\n\nFile v14.0.0:CHANGELOG.md\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查\n\nFile v14.0.0:config.json\n\n{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}\n\nFile v14.0.0:manifest.json\n\n{\n  \"name\": \"libu-premarket\",\n  \"version\": \"14.0.0\",\n  \"author\": \"ygbeyond\",\n  \"description\": \"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。【v14.0.0 每周数据焕新版】\",\n  \"entry\": \"pre_market.py\",\n  \"dependencies\": {\n    \"python\": \">=3.8\",\n    \"pip\": [\n      \"pandas\",\n      \"requests\",\n      \"numpy\",\n      \"tushare>=1.2.89\",\n      \"gmssl\"\n    ]\n  },\n  \"permissions\": [\n    \"network:outbound\",\n    \"file:read_write\",\n    \"env:read\"\n  ],\n  \"config_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"filter_basic\": {\n        \"type\": \"object\",\n        \"description\": \"基础筛选条件\",\n        \"properties\": {\n          \"min_days_listed\": {\n            \"type\": \"integer\",\n            \"default\": 250,\n            \"description\": \"最小上市天数\"\n          },\n          \"min_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 300000,\n            \"description\": \"最小总市值(万元)\"\n          },\n          \"max_total_mv_wan\": {\n            \"type\": \"integer\",\n            \"default\": 25000000,\n            \"description\": \"最大总市值(万元)\"\n          }\n        }\n      },\n      \"filter_financial\": {\n        \"type\": \"object\",\n        \"description\": \"财务筛选条件\",\n        \"properties\": {\n          \"min_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.3,\n            \"description\": \"最小净利润同比增长率(小数, 0.30=30%)\"\n          },\n          \"min_or_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小营收同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_dt_netprofit_yoy\": {\n            \"type\": \"number\",\n            \"default\": 0.2,\n            \"description\": \"最小扣非净利润同比增长率(小数, 0.20=20%)\"\n          },\n          \"min_roe\": {\n            \"type\": \"number\",\n            \"default\": 8,\n            \"description\": \"最小 ROE(%)\"\n          }\n        }\n      },\n      \"scoring\": {\n        \"type\": \"object\",\n        \"description\": \"评分权重配置\",\n        \"properties\": {\n          \"weights\": {\n            \"type\": \"object\"\n          },\n          \"growth_weights\": {\n            \"type\": \"object\"\n          },\n          \"technical_bonuses\": {\n            \"type\": \"object\"\n          }\n        }\n      },\n      \"cache\": {\n        \"type\": \"object\",\n        \"default\": {\n          \"root_dir\": \"./cache_data\"\n        },\n        \"description\": \"本地缓存配置\"\n      },\n      \"paths\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"closing_data_dir\": {\n            \"type\": \"string\",\n            \"default\": \"\",\n            \"description\": \"收盘数据目录路径\"\n          }\n        }\n      }\n    }\n  },\n  \"payment\": {\n    \"enabled\": true,\n    \"mode\": \"clawtip_local\",\n    \"skus\": [\n      {\n        \"id\": \"sku_once\",\n        \"name\": \"单次体验\",\n        \"price\": 0.8,\n        \"currency\": \"CNY\",\n        \"type\": \"pay_per_use\"\n      },\n      {\n        \"id\": \"sku_monthly\",\n        \"name\": \"月度订阅\",\n        \"price\": 9.9,\n        \"currency\": \"CNY\",\n        \"type\": \"subscription\",\n        \"period\": \"month\"\n      }\n    ],\n    \"default_sku\": \"sku_monthly\"\n  },\n  \"support\": {\n    \"wechat\": \"ygbeyond\",\n    \"description\": \"添加微信获取技术支持与数据更新提醒\",\n    \"issue_tracker\": \"wechat:ygbeyond\"\n  },\n  \"required_env_vars\": [\n    \"CLAWTIP_SM4_KEY\"\n  ]\n}\n\nFile v14.0.0:requirements.txt\n\npandas>=1.5.0\nrequests>=2.28.0\nnumpy>=1.23.0\ntushare>=1.2.89\ngmssl>=3.2.0","readmeExcerpt":"Skill: Libu Premarket Owner: ygbeyond Summary: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Tags: latest:14.0.11 Version history: v14.0.11 | 2026-07-18T01:39:40.877Z | auto - Removed documentation file: skill-card.md - No functional or data updates in this version v14.0.10 | 2026-07-17T18:09:18.535Z | auto libu-premarket v14.0.10 — 每周数据焕新版 - 更新 basic 数据至 2026-06-26（latest trading day） - 更新 finance 数据至 2026Q1 - 同步最新 pre_ma","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket"},{"language":"json","snippet":"{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}"},{"language":"bash","snippet":"pip3 install gmssl"},{"language":"bash","snippet":"export CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\""},{"language":"bash","snippet":"export TUSHARE_TOKEN=\"***\""},{"language":"bash","snippet":"python3 pre_market.py"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: libu-premarket\nversion: 14.0.10\ndescription: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。\nauthor: ygbeyond\nlicense: MIT\n---\n\n# 📈 礼部侍郎 - 盘前作战地图 (v14.0.8 每周数据焕新版)\n\n> **一句话介绍**：每天早上开盘前，为你提供基于\"主力资金流向\"与\"机构财务排雷\"的 A 股核心作战地图。\n\n## 💡 核心功能\n告别无脑看涨停，我们要看的是\"真金白银\"的流向！\n1.  **🌍 全维外围风向**：自动聚合 A50、美股、港股、黄金、原油隔夜表现，精准预判开盘情绪。\n2.  **🔥 资金主线研判**：基于昨日收盘数据，深度分析**主力净流入 Top 5 板块**，识别\"量价齐升\"的真热点与\"诱多\"的假突破。\n3.  **🎯 核心标的精选**：从全市场 4500+ 只股票中，通过**财务增速 + 资金共振 + 技术面**三重过滤，输出 Top 10 潜力标的。\n4.  **📦 开箱即用**：内置近期核心数据缓存 + **免费本地技术指标计算**。首次运行即可体验基础功能，无需 Tushare 积分！配置 Tushare Token 可获取实时技术面指标 (MACD/RSI)。\n\n## 💰 付费方案\n本 Skill 采用京东 ClawTip 微支付架构，支持双 SKU 自由选择：\n| 方案 | 价格 | 说明 |\n| :--- | :--- | :--- |\n| **单次体验** | ¥0.8/次 | 适合偶尔查看的投资者，按需付费 |\n| **月度订阅** | ¥9.9/月 | **主推**，适合高频交易者，每天开盘前自动刷新 |\n\n## 🚀 快速开始\n\n### 第一步：安装 Skill\n```bash\n# 通过 ClawHub 安装\nnpx clawhub@latest install libu-premarket\n```\n\n### 第二步：配置参数 (可选)\nSkill 安装后，会在你的技能目录生成 `config.json`。你可以根据自己的风险偏好调整选股标准：\n```json\n{\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 0.30,\n    \"min_roe\": 8\n  },\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  }\n}\n```\n> 注意：财务同比增速使用**小数格式**，`0.30` 表示 30%，`0.20` 表示 20%。ROE 使用百分比数值，`8` 表示 8%。\n\n### 第三步：安装支付依赖\n首次运行前，请确保已安装 `gmssl` 库（用于支付凭证验证）：\n```bash\npip3 install gmssl\n```\n如果安装失败，可以尝试：`pip3 install --no-cache-dir gmssl`\n\n### 第四步：配置支付环境变量（付费用户）\n完成支付后，需要配置 SM4 密钥环境变量以验证支付凭证：\n```bash\nexport CLAWTIP_SM4_KEY=\"京东邮件提供的Base64密钥\"\n```\n或者在 ClawTip 环境变量配置中添加 `CLAWTIP_SM4_KEY`。未配置此变量时，脚本将提示并拒绝运行。\n\n### 第五步：配置 Tushare Token (可选，推荐)\n**Skill 内置数据包可保证基础运行**，但要获取**实时财务数据**，建议配置 Tushare Token：\n1.  前往 [Tushare Pro](https://tushare.pro) 注册并获取 Token。\n2.  在终端执行：\n    ```bash\n    export TUSHARE_TOKEN=\"***\"\n    ```\n    *或者在 ClawTip 环境变量配置中添加 `TUSHARE_TOKEN`。*\n\n### 第六步：运行\n```bash\npython3 pre_market.py\n```\n运行后，脚本将生成 `pre_market_data.json` 供你的 AI Agent 读取，并输出精美的 Markdown 报告。\n\n## 📊 报告结构\nAI Agent 将基于生成的数据为你撰写如下结构的报告：\n*   **🌍 外围风向**：宏观市场情绪暗示。\n*   **🔥 今日主线研判**：资金净流入 Top 5 板块深度解析。\n*   **🎯 重点关注 (Top 5)**：结合板块热度的核心个股逻辑（严禁虚高评分，只讲真逻辑）。\n*   **⚔️ 操盘建议**：基于资金博弈的实战建议。\n\n## 🔄 数据更新说明\n*   **首次运行**：自动解压内置的 `initial_data.zip`（包含近期财务/收盘/股票列表数据），实现快速启动。\n*   **数据更新**：开发者会定期（每周/月）发布新版 Skill 以刷新内置数据。你只需重新 `install` 即可获取最新数据包。\n*   **本地缓存**：运行过程中产生的新数据会保存到 `./cache_data/`，下次运行优先读取，秒级出报告。\n\n## 💳 支付说明\n\n首次运行脚本时，会自动创建支付订单。请按以下步骤完成支付：\n\n1. **创建订单**：运行 `python3 pre_market.py`，脚本会输出订单号和 indicator\n2. **完成支付**：让你的 AI Agent 调用 ClawTip 技能：\n   ```\n   clawtip order_no=<订单号> indicator=400faf113c6f265b64c639c67fc91b12\n   ```\n3. **首次授权**（仅需一次）：如果是首次使用 ClawTip 支付，系统会返回一个授权链接。请在浏览器中打开该链接，用京东 App 扫码完成钱包授权。授权后重新发起支付即可。\n4. **验证通过**：支付成功后，ClawTip 会自动将支付凭证写入订单文件。下次运行脚本时自动解锁全部功能。\n\n> 💡 **提示**：月度订阅（¥9.9）比单次体验（¥0.8）更划算，适合每天使用。\n\n## ⚠️ 注意事项\n*   本工具仅供数据参考，不构成任何投资建议。股市有风险，入市需谨慎。\n*   请确保你的运行环境已安装 `pandas`, `requests`, `numpy` (脚本会自动检查)。\n\n## 🆘 售后与支持\n我们提供全天候技术支持，使用中遇到任何问题，随时联系我们：\n*   **微信反馈**：添加开发者微信 `ygbeyond`，拉您进专属交流群。\n*   **数据更新**：关注朋友圈或群公告，我们会定期推送最新数据包的 Skill 版本。\n*   **Bug 修复**：承诺 24 小时内响应并修复，确保您的交易决策不受影响。\n\n---\n\n## 📋 更新日志\n\n### v14.0.6 (2026-06-20) — 每周数据焕新版\n- 更新 basic 数据至 2026-06-18（latest"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7eqn9cys4bw2rthm29skfam9825w58\",\n  \"slug\": \"libu-premarket\",\n  \"version\": \"14.0.11\",\n  \"publishedAt\": 1784338780877\n}"},{"path":"CHANGELOG.md","content":"## v14.0.1 (2026-05-16) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-14（latest trading day）\n- 更新 finance / closing 数据同步\n- 同步最新 pre_market.py 代码与 config.json\n\n---\n\n## v14.0.0 (2026-05-09) — 每周数据焕新版\n\n### 📊 数据更新\n- 更新 basic 数据至 2026-05-08（latest trading day）\n- 更新 closing 数据至 2026-05-08\n- 同步最新 pre_market.py 代码（v12.5.1 内部版）\n- 同步 config.json 配置\n\n---\n\n## v13.2.0 (2026-04-19) — 安全加固+体验修复版\n\n### 🐛 Bug 修复\n- Eastmoney API 空值修复: resp.get('data') or {} 避免 NoneType.get() 报错\n- *ST 股票过滤: 从 Tushare 补充 name 列 + 全局 _NAME_MAP，不再漏网\n- 价格数据 null 修复: 周末/节假日 fallback 到最近 daily_basic 缓存\n- 价格兜底查找: 市值筛选后的 price_map 找不到时，从原始缓存二次查找\n\n### 📦 交付优化\n- 新增 CHANGELOG.md: 详细记录每次更新内容\n- 新增 LICENSE (MIT): 符合开源规范\n- 新增 .gitignore: 排除 __pycache__/cache_data 等非交付文件\n- 清理交付物: 移除数据质量审查报告.md、__pycache__、cache_data/\n\n### 🔧 架构改进\n- 订单号三重防护: 时间戳 + 微秒 + UUID\n- find_latest_order 按文件名排序，不再误读旧订单\n- 订阅过期优先使用 finishTime 计算\n- API 重试机制: 3 次重试 + 指数退避 + 超时增至 5s\n- RSI 改用 Wilder's EMA 标准算法\n\n# CHANGELOG\n\n## v13.1.0 (2026-04-19) — 安全加固版\n\n### 🔐 安全修复\n- 移除 CLAWTIP_SM4_KEY 硬编码默认值，强制要求环境变量配置\n- payTo 收款地址改为 Base64 编码存储，防肉眼提取\n- 移除 `LIBU_MOCK_PAYMENT` / `LIBU_ENV` 开发模式后门\n- 移除沙箱 TEST_SUCCESS 凭证在生产环境的放行逻辑\n- 移除 `status=\"paid\"` 无凭证的兼容模式绕过漏洞\n- 添加凭证交叉验证：orderNo/payTo/amount 三重校验，防止凭证复用\n- 添加月度订阅 30 天过期检查，优先使用 finishTime 计算\n\n### 🛡️ 支付流程加固\n- 订单号生成加入微秒级时间戳，防止并发冲突\n- `_find_latest_order()` 改为按文件名（订单号）排序，避免误读旧订单\n- 订阅过期 fallback 逻辑增强：finishTime → created_at → 放行\n\n### 📈 算法优化\n- RSI 指标改用 Wilder's EMA 标准算法（原为简单移动平均 SMA）\n- 财务评分归一化：原始增速百分比 cap=100，防止 finance 权重碾压 technical\n- API 请求增加自动重试机制（3 次，指数退避），超时从 3s 增至 5s\n\n### 📦 体验改进\n- config.json 财务阈值改为小数格式（0.30=30%），与 Tushare 返回值一致\n- manifest.json config_schema 填充字段定义和默认值说明\n- SKILL.md 文档修正\"0 配置\"宣传，明确标注必需环境变量\n- 新增 .gitignore、LICENSE（MIT）、CHANGELOG.md\n- 清理 `__pycache__/`、内部审查报告等非交付文件\n\n---\n\n## v13.0.0 (2026-04-18) — 支付集成版\n- 集成 ClawTip 微支付（单次 ¥0.8 / 包月 ¥9.9）\n- encrypted_data 采用 SM4-ECB + PKCS7 加密\n- 支持双 SKU 选择\n\n## v12.9.0 (2026-04-17)\n- 沙箱支付全流程验证通过\n- 修复订单路径 indicator 计算错误\n\n## v12.5.1 (2026-04-16)\n- 增加环境依赖检查与全局异常捕获\n- 新增本地免费技术指标计算（MACD/RSI）\n- 增加数据保质期检查"},{"path":"skill-card.md","content":"## Description:\n\nLibu Premarket generates an A-share premarket map that combines capital-flow signals, financial filters, and technical indicators to identify sectors and stocks for review.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[ygbeyond](https://clawhub.ai/user/ygbeyond)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill before A-share market open to prepare a data-backed watchlist and premarket report. It is intended for market research and decision support, not as investment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requests broad file, network, and environment-variable access and may load code from another local skill directory.\n\nMitigation: Install only after reviewing the publisher, run in an environment where those permissions are acceptable, and avoid keeping an untrusted Tushare integration under ~/.openclaw/skills/tushare-finance/scripts/api_client.py.\n\nRisk: Payment and licensing checks are weak security boundaries.\n\nMitigation: Treat payment validation as a convenience control, not a protection mechanism for sensitive data or trusted execution.\n\nRisk: Dependencies are not fully pinned.\n\nMitigation: Review and pin dependency versions before use in managed or production environments.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/ygbeyond/skills/libu-premarket)\n- [Tushare Pro](https://tushare.pro)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Files, Guidance]\n\n**Output Format:** [Markdown report with a JSON data file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Writes pre_market_data.json and prints a premarket report; results depend on cached or live market data.]\n\n## Skill Version(s):\n\n14.0.11 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"config.json","content":"{\n  \"filter_basic\": {\n    \"min_days_listed\": 250,\n    \"min_total_mv_wan\": 300000,\n    \"max_total_mv_wan\": 25000000\n  },\n  \"filter_financial\": {\n    \"min_netprofit_yoy\": 30,\n    \"min_or_yoy\": 20,\n    \"min_dt_netprofit_yoy\": 20,\n    \"min_roe\": 8\n  },\n  \"scoring\": {\n    \"weights\": {\"finance\": 0.5, \"technical\": 0.5},\n    \"growth_weights\": {\"dt_netprofit_yoy\": 0.4, \"netprofit_yoy\": 0.3, \"or_yoy\": 0.3},\n    \"technical_bonuses\": {\"rsi_range\": [40, 70], \"rsi_bonus\": 10, \"macd_golden_bonus\": 15, \"macd_red_bonus\": 10}\n  },\n  \"blacklist_prefixes\": [\"8\", \"4\", \"9\"],\n  \"cache\": {\n    \"root_dir\": \"./cache_data\"\n  },\n  \"paths\": {\n    \"closing_data_dir\": \"\"\n  }\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Skill: Libu Premarket Owner: ygbeyond Summary: 礼部侍郎 - A 股盘前作战地图。基于资金共振与严苛财务筛选的实战级选股工具。 Tags: latest:14.0.11 Version history: v14.0.11 | 2026-07-18T01:39:40.877Z | auto - Removed documentation file: skill-card.md - No functional or data updates in this version v14.0.10 | 2026-07-17T18:09:18.535Z | auto libu-premarket v14.0.10 — 每周数据焕新版 - 更新 basic 数据至 2026-06-26（latest trading day） - 更新 finance 数据至 2026Q1 - 同步最新 pre_ma","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1130,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T19:26:55.487Z","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-09T19:26:55.487Z","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-10T02:02:15.013Z","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"}]}}}