{"id":"0a40ab15-f2fb-4415-9eb2-1fabe5b03886","entityType":"agent","slug":"clawhub-haoge10241024-trading-agents-for-futures","name":"Trading_Agents_for_Futures","canonicalUrl":"https://www.xpersona.co/agent/clawhub-haoge10241024-trading-agents-for-futures","canonicalPath":"/agent/clawhub-haoge10241024-trading-agents-for-futures","generatedAt":"2026-10-10T06:54:12.727Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T00:51:36.651Z","emptyReason":null},"description":"期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多... Skill: Trading_Agents_for_Futures Owner: haoge10241024 Summary: 期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多... Tags: latest:2.0.19 Version history: v2.0.19 | 2026-05-22T09:02:56.522Z | user No code or documentation changes detected in this version. - No updates or modifications found in any files. - SKILL","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17bnzy7mnzycecdrznmm1ptnh86sage:trading-agents-for-futures","sourceUrl":"https://clawhub.ai/haoge10241024/trading-agents-for-futures","homepage":"https://clawhub.ai/haoge10241024/skills/trading-agents-for-futures","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/haoge10241024/trading-agents-for-futures","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/haoge10241024/skills/trading-agents-for-futures","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:51:36.651Z","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-10T00:51:36.651Z","emptyReason":null},"stars":null,"forks":null,"downloads":1824,"packageName":null,"latestVersion":"2.0.19","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:51:36.616Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T00:51:36.651Z","lastCrawledAt":"2026-10-10T00:51:36.616Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T00:51:36.616Z","lastVerifiedAt":null,"highlights":[{"version":"2.0.19","createdAt":"2026-05-22T09:02:56.522Z","changelog":"No code or documentation changes detected in this version. - No updates or modifications found in any files. - SKILL.md content remains unchanged from the previous version.","fileCount":21,"zipByteSize":81904},{"version":"2.0.18","createdAt":"2026-05-22T06:17:34.846Z","changelog":"**Major update: Adds a data gap reporting workflow for transparency and agent/AIOps support.** - Introduces `data_gap_report` to output explicit data gaps and AI search instructions when API fields are missing. - Adds `search_actions` and `ai_fill` slots, guiding AI Agents on how and what to backfill, with per-field fillability and scoring impact. - Output separation: API-backed \"硬指标\" are never fabricated; missing required data is marked with status or reported as unfilled. - Data mode (`-s`) now outputs both structured indicators and a data gap report. - Decision mode (`--decision`) enhances results with source tracing and gap transparency in addition to prior human-friendly reports. - Plain language: \"诚实比完整更重要\"—if data cannot be sourced or filled, it is left unfilled and weighted accordingly.","fileCount":20,"zipByteSize":80467},{"version":"2.0.17","createdAt":"2026-05-18T03:39:37.596Z","changelog":"No changes detected for this version. - No file changes between previous and current version. - No updates to features, usage, or documentation. - Functionality and instructions remain the same.","fileCount":20,"zipByteSize":72433},{"version":"2.0.16","createdAt":"2026-05-17T13:39:32.765Z","changelog":"trading-agents-for-futures v2.0.16 - No code or documentation changes detected in this release. - Functionality and usage remain unchanged.","fileCount":20,"zipByteSize":70559},{"version":"2.0.15","createdAt":"2026-05-17T12:49:26.740Z","changelog":"No code or content changes detected in this version. - Version number updated to 2.0.15 with no modifications to source files or documentation.","fileCount":20,"zipByteSize":69592},{"version":"2.0.14","createdAt":"2026-05-17T12:01:28.045Z","changelog":"No file changes detected for version 2.0.14. No user-visible changes in this update.","fileCount":20,"zipByteSize":68856},{"version":"2.0.13","createdAt":"2026-05-17T10:25:18.967Z","changelog":"No file changes detected in this version. - No updates or modifications were introduced in version 2.0.13. - Skill functionality, output, and documentation remain unchanged.","fileCount":20,"zipByteSize":66550},{"version":"2.0.12","createdAt":"2026-05-17T04:35:32.994Z","changelog":"No file changes detected in this version. - No code or documentation changes present between this and the previous version. - Functionality, usage, and behavior remain unchanged.","fileCount":20,"zipByteSize":65655}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bnzy7mnzycecdrznmm1ptnh86sage:trading-agents-for-futures","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-haoge10241024-trading-agents-for-futures/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/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-10T06:54:12.723Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-haoge10241024-trading-agents-for-futures/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-10T00:51:36.651Z","emptyReason":null},"readme":"Skill: Trading_Agents_for_Futures\n\nOwner: haoge10241024\n\nSummary: 期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多...\n\nTags: latest:2.0.19\n\nVersion history:\n\nv2.0.19 | 2026-05-22T09:02:56.522Z | user\n\nNo code or documentation changes detected in this version.\n\n- No updates or modifications found in any files.\n- SKILL.md content remains unchanged from the previous version.\n\nv2.0.18 | 2026-05-22T06:17:34.846Z | user\n\n**Major update: Adds a data gap reporting workflow for transparency and agent/AIOps support.**\n\n- Introduces `data_gap_report` to output explicit data gaps and AI search instructions when API fields are missing.\n- Adds `search_actions` and `ai_fill` slots, guiding AI Agents on how and what to backfill, with per-field fillability and scoring impact.\n- Output separation: API-backed \"硬指标\" are never fabricated; missing required data is marked with status or reported as unfilled.\n- Data mode (`-s`) now outputs both structured indicators and a data gap report.\n- Decision mode (`--decision`) enhances results with source tracing and gap transparency in addition to prior human-friendly reports.\n- Plain language: \"诚实比完整更重要\"—if data cannot be sourced or filled, it is left unfilled and weighted accordingly.\n\nv2.0.17 | 2026-05-18T03:39:37.596Z | user\n\nNo changes detected for this version.\n\n- No file changes between previous and current version.\n- No updates to features, usage, or documentation.\n- Functionality and instructions remain the same.\n\nv2.0.16 | 2026-05-17T13:39:32.765Z | user\n\ntrading-agents-for-futures v2.0.16\n\n- No code or documentation changes detected in this release.\n- Functionality and usage remain unchanged.\n\nv2.0.15 | 2026-05-17T12:49:26.740Z | user\n\nNo code or content changes detected in this version.  \n- Version number updated to 2.0.15 with no modifications to source files or documentation.\n\nv2.0.14 | 2026-05-17T12:01:28.045Z | user\n\nNo file changes detected for version 2.0.14. No user-visible changes in this update.\n\nv2.0.13 | 2026-05-17T10:25:18.967Z | user\n\nNo file changes detected in this version.\n\n- No updates or modifications were introduced in version 2.0.13.\n- Skill functionality, output, and documentation remain unchanged.\n\nv2.0.12 | 2026-05-17T04:35:32.994Z | user\n\nNo file changes detected in this version.\n\n- No code or documentation changes present between this and the previous version.\n- Functionality, usage, and behavior remain unchanged.\n\nv2.0.11 | 2026-05-16T11:37:14.172Z | user\n\nNo file changes detected for v2.0.11 — maintenance release.\n\n- No code or documentation files changed in this version.\n- No new features, fixes, or updates included.\n\nv2.0.10 | 2026-05-16T09:50:20.726Z | user\n\nNo changes detected in this version.\n\n- No file changes were found between this version and the previous one.\n- Documentation, features, and usage remain unchanged.\n\nv2.0.9 | 2026-05-16T09:30:03.482Z | user\n\nNo changes detected. No changelog necessary for version 2.0.9.\n\nv2.0.8 | 2026-05-16T07:33:48.765Z | user\n\nNo file or description changes detected for this version.\n\n- No updates or modifications were made in version 2.0.8.\n- All documentation and functionality remain unchanged from the previous version.\n\nv2.0.7 | 2026-05-16T05:50:35.433Z | user\n\nNo file changes detected in this version.\n\n- Version bump to 2.0.7 with no code or documentation changes.\n- No new features, bug fixes, or content updates included in this release.\n\nv2.0.6 | 2026-05-16T03:38:14.846Z | user\n\nNo changes detected between this version and the previous one.\n\nv2.0.5 | 2026-05-16T03:11:01.927Z | user\n\nVersion 2.0.5 — Core principle update: “No missing data” and AI search fallback if API data is insufficient.\n\n- Introduces the rule: if API data is missing or insufficient, AI search is triggered for that data dimension; only outputs \"N/A\" if both fail.\n- Clarifies separation of “hard” (API-only) vs. “soft” (AI-searchable) data categories, forbidding fabrication of hard data.\n- Expands AI搜索执行指南 with clear trigger conditions, keyword templates, and sample merge format for search results into output JSON.\n- Enhances instructions on result marking (“source”: \"api\" or \"ai_search\") for every data point; missing fields must use status \"N/A\".\n- Emphasizes that outputs should never leave a field empty, strengthening data completeness and reliability.\n\nv2.0.4 | 2026-05-16T02:01:51.136Z | user\n\n- 明确说明首次运行自动通过 AkShare 从公开数据源下载历史数据，无需 API Key 配置。\n- 描述文本由“零外部 API 依赖”优化为“零 API Key 依赖，装完即用”，突出易用性。\n- 进一步强调数据来源和首次下载时效性，提升新用户理解门槛友好度。\n- 其他内容、功能和用法保持不变。\n\nv2.0.3 | 2026-05-16T01:48:01.112Z | user\n\nVersion 2.0.3 — 支持决策模式，补全数据缺失方案\n\n- 新增了 setup.py，规范化 skill 安装与分发\n- 明确区分两种运行模式：数据模式输出结构化指标，决策模式输出多空辩论与风控建议\n- 明确处理 AKShare 数据缺失、新闻不足等情况的补充策略\n- 新增详细的数据补全、情绪评分和来源标注规范\n- README/说明文档大幅精简、优化，便于快速上手与理解\n\nv2.0.2 | 2026-05-15T09:32:02.227Z | user\n\n**Summary:**  \nOutput JSON format changed: each分析维度只输出纯指标字典，不再包含方向判断、置信度或信号文本。\n\n- 输出结构由原 `analysis_details` 列表变为以分析维度为键的指标字典，简化为 `analysis_details`: { \"technical_analysis\": {...}, ... }\n- 不再对外暴露任何多空 `direction`、置信度 `conviction`、理由条目等，只开放原始结构化指标\n- 每个分析方法的本地 rule_based_signal 逻辑仍在内部运行，但全部不对外输出\n- 方法论与框架说明新增对输出格式的明确要求；强调输出内容仅为数据\n- 分析师角色与会议实录风格及输出规范未变\n- 方便用户直接基于指标做独立决策或后续处理\n\nv2.0.1 | 2026-05-15T09:13:47.238Z | auto\n\nTrading_Agents_for_Futures 2.0.1 更新内容：\n\n- 输出结构由“综合决策+风控”调整为更专注的数据底座：主输出为结构化分析 JSON（逐维度明细），不再直接包含推理文本与风控结论字段。\n- 明确将决策/风控（reasoning、direction、risk_assessment 等）迁移到 skills/debate_risk_decision.py，通过 `run_decision()` 调用获取，主 JSON 仅保留分析数据。\n- 技术面、基差、期限结构、库存、持仓、新闻情绪六大模块的 indicators 字段更全，格式与 key 更规范。\n- JSON 结构细化，补充 timestamp、success、data_points、rule_based_signal等字段，方便下游二次处理。\n- 使用文档（SKILL.md）大幅更新：输出样例升级，强调纯结构化、无推理文本输出，同时保留详细方法论和完整角色设定。\n\n本\n\nv2.0.0 | 2026-05-15T08:48:03.558Z | user\n\n- Major simplification of the skill’s documentation: SKILL.md now emphasizes the role as a data engine providing structured JSON outputs and method guidelines for AI Agents, rather than a full standalone analysis/report solution.\n- All usage, methodology, and output instructions are consolidated, highly structured, and focus on six analytical dimensions with detailed frameworks for each.\n- Removed sample, release, and changelog markdown files to streamline distribution.\n- Clarifies strict output style/role-play constraints (all-Chinese, no markdown, character roles, etc.) for consuming agents.\n- Removes LLM implementation details, installation guides, and command explanation, now focusing purely on input-output specs and analysis methodology for integrators.\n\nv1.0.2 | 2026-05-15T05:45:42.863Z | auto\n\n- Updated core_engine.py with code changes and improvements.\n- No changes to documentation or user-facing instructions.\n- Version remains functionally consistent for end users.\n\nv1.0.1 | 2026-05-15T05:34:24.458Z | user\n\n修复 Static analysis 告警，优化动态导入方式\n\nv1.0.0 | 2026-05-15T03:45:17.464Z | user\n\nTrading_Agents_for_Futures v1.0.0 — Initial Release\n\n- Launches an AI-powered futures analysis system for major Chinese commodities (e.g., RB, M, RM, CU, I).\n- Provides 6-dimensional analysis: technical, basis, term structure, inventory, positioning, and news sentiment.\n- Supports both rule-based (no API key needed) and LLM modes (requiring DeepSeek API key).\n- Features natural-language, debate-style multi-agent reports with risk control and position suggestions.\n- Dynamic weighting adapts analysis focus by contract type and market conditions.\n- Easy command-line operation; automatic first-run data caching for efficient usage.\n\nArchive index:\n\nArchive v2.0.19: 21 files, 81904 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (30985b), core/data_utils.py (49615b), main.py (26483b), manifest.yaml (2509b), README.md (5196b), requirements.txt (460b), setup.py (972b), skill-card.md (2669b), SKILL.md (28091b), skills/__init__.py (0b), skills/basis_analysis.py (9666b), skills/debate_risk_decision.py (45652b), skills/inventory_analysis.py (15871b), skills/news_analysis.py (9103b), skills/positioning_analysis.py (22222b), skills/technical_analysis.py (11840b), skills/term_structure_analysis.py (9776b), _meta.json (146b)\n\nFile v2.0.19:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令）\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key，纯规则引擎。API 缺失时自动生成 search_actions，AI Agent 可按 fillability 回填 ai_fill 槽位。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：诚实比完整更重要\n\n**API 拿不到的，诚实地标出来。能搜的搜，搜不到的不编。**\n\n```\n         ┌─ API 命中     ──→ 输出数据，标记 data_source: \"api\"\n数据需求 ─┤\n         └─ API 失败      ──→ 生成 data_gap_report ──→ fillable? ──→ AI 搜 → 回填 ai_fill (参与评分)\n                                                    ──→ direction_only? ──→ AI 搜 → 回填 ai_fill (×0.30~0.50 降权)\n                                                    ──→ 每次搜不到    ──→ 标 status: \"empty\"，权重保持 0\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。\n\n---\n\n## data_gap_report 工作流（核心）\n\n当 `coverage.available < coverage.total` 时，输出 JSON 的顶层包含 `data_gap_report`：\n\n```json\n{\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      {\n        \"skill\": \"news_analysis\",\n        \"skill_cn\": \"新闻情绪\",\n        \"fillability\": \"fillable\",\n        \"ai_fill_weight_multiplier\": 0.90,\n        \"search_actions\": [\n          {\"query\": \"JD 鸡蛋 期货 新闻 2026年5月\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"bullish_news_count\", \"bearish_news_count\", \"sentiment_ratio\"],\n          \"cannot_fill\": []\n        }\n      },\n      {\n        \"skill\": \"term_structure_analysis\",\n        \"skill_cn\": \"期限结构\",\n        \"fillability\": \"direction_only\",\n        \"ai_fill_weight_multiplier\": 0.30,\n        \"search_actions\": [\n          {\"query\": \"JD 期货 期限结构 contango backwardation\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"structure\"],\n          \"cannot_fill\": [\"contracts\", \"prices\", \"spread_pct\"]\n        }\n      }\n    ]\n  }\n}\n```\n\n### 你（AI Agent）需要做的\n\n1. **解析 `data_gap_report`**，对每个 gap 执行 `search_actions` 中的搜索\n2. **按 `ai_fill_schema` 回填**到对应 `analysis_details[skill].ai_fill`：\n```json\n\"ai_fill\": {\n  \"filled_at\": \"2026-05-18T12:00:00\",\n  \"source\": \"web_search\",\n  \"fillability_tier\": \"fillable\",\n  \"weight_multiplier\": 0.90,\n  \"confidence\": \"high\",\n  \"data\": {\n    \"bullish_news_count\": 3,\n    \"bearish_news_count\": 1,\n    \"sentiment_ratio\": 0.2\n  },\n  \"urls\": [\"https://...来源URL...\"],\n  \"note\": \"搜索结果摘要\"\n}\n```\n3. **`cannot_fill` 中的字段绝不要编造**（如期限结构的 `spread_pct`）\n4. **`weight_multiplier` 从 gap 中的 `ai_fill_weight_multiplier` 复制**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，`data_gap_report` 标记为 `fillable` |\n| API 完全无数（status: empty） | `data_gap_report` 标记为 `direction_only` 或 `fillable`，AI 搜索按 `ai_fill_schema` 回填 |\n| AI 搜索也找不到 | `ai_fill.data` 留空，`confidence: \"low\"`，维度降权 |\n| 最终仍有维度缺失 | 该维度 `weight × 0`，不参与 scoring |\n\n### fillability 分级\n\n| 级别 | 含义 | AI 搜索后评分权重 | 示例 |\n|------|------|-------------------|------|\n| `fillable` | 公开信息充足，可补全大部分字段 | ×0.75~0.90 | 新闻情绪(0.90)、基差(0.75) |\n| `direction_only` | 只能拿定性方向，Z-score/精确数字不可补 | ×0.30~0.50 | 库存方向(0.50)、期限结构(0.30)、持仓(0.30) |\n| `not_fillable` | 保留分类，当前版本所有维度均可搜索 | ×0 | — |\n\n---\n\n## 数据来源标注规范\n\n**输出中每个维度都有数据来源和时效标记。**\n\n| 标记 | 含义 | AI Agent 应对 |\n|------|------|---------------|\n| `data_source: \"api\"` | 来自 AkShare 实时数据接口 | 直接使用 |\n| `data_source: \"api_fallback\"` | API 当日不可用，自动回退至前一交易日 | 查看 `data_gap_report`，确认是否需要 AI 搜索验证 |\n| `data_source: \"api_all_neutral\"` | 关键词匹配全部判定为中性 | 按 `data_gap_report` 中的 `search_actions` 搜索补充 |\n| `data_source: \"insufficient\"` | 样本不足 | 按 `ai_fill_schema` 回填到 `ai_fill` 槽位 |\n| `data_quality: \"stale\"` | 数据过期回退 | 辩论中权重自动折半 |\n| `data_quality: \"low_value\"` | 全中性/低质量 | 辩论中权重自动 ×0.3 |\n\n> 所有数字必须是 JSON 原生类型，不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 四维动态权重系统\n\n本引擎内部使用**四维动态权重**（品种品类 × 置信度 Sigmoid × 市场状态自适应 × 数据质量折损）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR/JD等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 数据质量折损（第四维）\n\n回退数据、AI 补全数据自动降权：\n\n| 数据状态 | 权重乘数 |\n|---------|---------|\n| API 历史回退 | ×0.5 |\n| AI 补全 fillable（新闻/基差） | ×0.75~0.90 |\n| AI 补全 direction_only（库存方向/期限结构/持仓） | ×0.30~0.50 |\n| 完全缺失 | ×0（不参与评分） |\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.19:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情，覆盖 48 个期货品种。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON + 数据缺口报告，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 数据来源追溯 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 快速开始\n\n```bash\npython main.py -s RB              # 数据模式：纯指标 JSON\npython main.py -s RB --decision   # 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB,CU,M         # 批量分析\npython main.py -s ALL             # 全市场扫描 48 个品种\npython main.py -s RB -o out.json  # 额外输出到文件\n```\n\n首次运行自动下载约 1 年历史数据（基差模块约 5~10 分钟），后续运行秒级。\n\n## 六维分析能力\n\n| 分析模块 | 计算指标 | 数据来源 |\n|---------|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB, ATR14, 量仓 | 新浪财经 |\n| 基差分析 | 现货-期货基差, 基差率, 季节性Z-score, 斜率, Contango/Backwardation | 100ppi.com |\n| 期限结构 | 合约价差, 展期结构, spread%, contango/backwardation | AkShare 多策略 |\n| 库存仓单 | 库存量, 周/月变化率, 季节性Z-score, 仓单量 | 东方财富 |\n| 持仓席位 | 净持仓, 净持仓变化, 加权HHI集中度, 前20多空比, 关键席位追踪 | 三大交易所 |\n| 新闻情绪 | 48 词关键词匹配, 利多/利空/中性计数, 情绪比率 | 上海金属网 |\n\n## API 失效时的处理\n\n当数据接口（AkShare）在周末/节假日/不可用时，系统**不会**静默失败：\n\n| 策略 | 说明 |\n|------|------|\n| **30 天回退** | 逐日回溯找最近的交易日数据，跳过周末 |\n| **过期缓存兜底** | 在线 API 全部失败后自动使用本地历史缓存 |\n| **Zip 损坏精准清除** | 遇到 AkShare 缓存损坏时按需清理，不滥杀合法缓存 |\n| **数据缺口报告** | `coverage` 如实统计可用维度，`data_gap_report` 列出每个缺失维度的 `search_actions`（AI 搜索指令） |\n| **AI Fill 槽位** | 每个维度预留 `ai_fill` 字段，AI Agent 搜索后可按 `fillability` 分级回填（`fillable` 正常参与评分，`direction_only` 降权参与） |\n\n## 核心特色\n\n- **零 API Key：** 不调 LLM，纯规则引擎。装完即用，只需要网络（AkShare 下载行情）。\n- **四维动态权重：** 品种品类 × 置信度 Sigmoid × 市场状态自适应 × 数据质量折损\n- **数据诚实：** `coverage` 从不虚报，缺失维度追加 `warning_flags` + `data_gap_report`\n- **信号校正：** 持仓口径矛盾交叉验证、基差斜率×结构矛盾检测、回退数据自动降权\n- **永不 null：** 止损止盈始终有值（ATR 动态计算 → 固定值兜底）\n- **48 品种覆盖：** Sina 映射 + 品类分类完整，JD/EG/LC/SI 等小品种无遗漏\n\n## 输出结构\n\n数据模式输出的 JSON 包含：\n\n```\n{\n  \"symbol\": \"JD\",\n  \"coverage\": {\"total\": 6, \"available\": 4, \"missing\": [\"positioning_analysis\", \"term_structure_analysis\"]},\n  \"analysis_details\": { ... 各维度指标 ... },\n  \"warning_flags\": [{ \"skill\": \"term_structure_analysis\", \"search_actions\": [...] }],\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      { \"skill\": \"term_structure_analysis\", \"fillability\": \"direction_only\",\n        \"search_actions\": [{\"query\": \"JD 期货 期限结构 contango\", \"source\": \"web\"}],\n        \"ai_fill_schema\": { \"fields\": [\"structure\"], \"cannot_fill\": [\"prices\", \"spread_pct\"] }\n      }\n    ]\n  }\n}\n```\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py            # 命令行入口\n├── manifest.yaml      # Skill 元数据\n├── requirements.txt   # 7 个核心依赖\n├── README.md          # 本文件（人类阅读）\n├── SKILL.md           # 分析框架知识库 + AI Fill 模板（AI Agent 阅读）\n├── setup.py           # 自动安装依赖\n├── config/\n│   ├── core.yaml      # 默认配置（数据源、风控、日志）\n│   └── user.yaml      # 用户覆盖\n├── core/\n│   ├── core_engine.py # 核心引擎 + 共享工具函数\n│   └── data_utils.py  # AkShare 数据获取（6 种数据类型 + 缓存管理）\n└── skills/\n    ├── technical_analysis.py     # 技术面\n    ├── basis_analysis.py         # 基差\n    ├── term_structure_analysis.py # 期限结构\n    ├── inventory_analysis.py     # 库存仓单\n    ├── positioning_analysis.py   # 持仓席位\n    ├── news_analysis.py          # 新闻情绪\n    └── debate_risk_decision.py   # 辩论风控决策\n```\n\n## 配置文件\n\n```yaml\n# config/user.yaml\ndata:\n  default_lookback_days: 180\n  use_cache: true\n\nrisk:\n  max_position_per_symbol: 0.20\n  atr_stop_multiplier: 2.5\n```\n\n## License\n\nMIT\n\nFile v2.0.19:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.19\",\n  \"publishedAt\": 1779440576522\n}\n\nFile v2.0.19:skill-card.md\n\n## Description:\n\nTrading_Agents_for_Futures analyzes futures markets across technical, basis, term structure, inventory, positioning, and news dimensions, returning structured JSON metrics and optional debate-style risk decision reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[haoge10241024](https://clawhub.ai/user/haoge10241024)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and trading analysts use this skill to collect public futures-market signals, identify data gaps for agent-assisted follow-up, and generate structured indicators or decision-support reports. Outputs should be independently checked and not treated as investment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Dependency installation may modify the active Python environment.\n\nMitigation: Install and run the skill in a virtual environment, avoid administrator/root execution, and review or pin dependencies before use.\n\nRisk: Market-data downloads, caches, and output files may contain stale, incomplete, or locally sensitive analysis artifacts.\n\nMitigation: Verify data freshness independently and protect cache, output, and log locations according to the user's data-handling requirements.\n\nRisk: Decision-mode outputs can be mistaken for investment advice.\n\nMitigation: Treat buy, sell, position, and risk outputs as decision-support material only and validate suitability with independent market and risk review.\n\nRisk: Proxy credentials or other sensitive configuration values could be exposed if placed in configuration or logs.\n\nMitigation: Avoid storing credentials in config files for this skill; if proxy settings are required, protect logs and configuration files.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/haoge10241024/skills/trading-agents-for-futures)\n- [README](artifact/README.md)\n- [Skill instructions](artifact/SKILL.md)\n- [Skill manifest](artifact/manifest.yaml)\n\n## Skill Output:\n\n**Output Type(s):** [json, markdown, text, guidance]\n\n**Output Format:** [Structured JSON with optional Markdown-like decision reports and search-action guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include coverage, warning_flags, data_gap_report, and ai_fill slots for missing market data.]\n\n## Skill Version(s):\n\n2.0.19 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v2.0.19:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\"\n\nFile v2.0.19:config/user.yaml\n\n# ============================================================\n# 用户自定义配置（会覆盖 core.yaml 的同名项）\n# 复制本文件到同目录下使用，根据自己的环境修改\n# ============================================================\n\n# ── 代理配置（在 OpenClaw 上部署时无需代理，留空即可）────────\n# proxy:\n#   enabled: true\n#   http: \"http://your-proxy-host:port\"\n#   https: \"http://your-proxy-host:port\"\n\n# ── 数据配置（可选）──────────────────────────────────────────\n# data:\n#   default_lookback_days: 180   # 缩短历史窗口可加快首次运行\n#   use_cache: true\n\nFile v2.0.19:manifest.yaml\n\nname: Trading_Agents_for_Futures\nversion: \"2.0.26\"\ndescription: |\n  期货六维分析数据引擎。零 API Key，纯规则引擎装完即用。\n  两种模式：(1) 数据模式 → 结构化 JSON 指标；(2) 决策模式 → 多空辩论 + 风控 + CIO 决策报告。\n  API 缺失时自动标注缺口并给出 AI 搜索指令（search_actions），支持 AI Agent 回填补全。\nauthor: \"TradingAgent Team\"\nlicense: MIT\nhomepage: \"\"\nrepository: \"\"\n\ntype: skill\ntags:\n  - futures\n  - trading\n  - ai-analysis\n  - rule-engine\n  - quantitative\n  - finance\n  - zero-api-key\n  - data-gap-report\n\n# 依赖\npython_version: \">=3.10\"\ndependencies:\n  - akshare>=1.14.0,<2.0.0\n  - pandas>=2.0.0,<3.0.0\n  - numpy>=1.24.0,<3.0.0\n  - pyarrow>=12.0.0,<20.0.0\n  - pyyaml>=6.0\n  - requests>=2.28.0\n  - python-dotenv>=1.0.0\n\n# 环境变量（无需任何 API Key）\nenv_vars: []\n\n# 安装提示\ninstall:\n  hint: \"python setup.py  # auto-installs deps, then: python main.py -s RB\"\n\n# 技能入口\nentry:\n  main: \"main.py\"\n  skills_dir: \"skills\"\n  core_dir: \"core\"\n  config_dir: \"config\"\n\n# 可用技能列表\navailable_skills:\n  - name: technical_analysis\n    description: \"技术面分析 - K线形态、趋势指标、动量信号\"\n    entry: \"skills/technical_analysis.py\"\n    category: analysis\n    \n  - name: basis_analysis\n    description: \"基差分析 - 现货价格与期货价格偏离度评估\"\n    entry: \"skills/basis_analysis.py\"\n    category: analysis\n    \n  - name: term_structure_analysis\n    description: \"期限结构分析 - 跨期价差、展期收益与市场结构判断\"\n    entry: \"skills/term_structure_analysis.py\"\n    category: analysis\n    \n  - name: inventory_analysis\n    description: \"库存仓单分析 - 库存周期、仓单变化与供需平衡评估\"\n    entry: \"skills/inventory_analysis.py\"\n    category: analysis\n    \n  - name: positioning_analysis\n    description: \"持仓席位分析 - 主力席位、净多净空、拥挤度与持仓结构\"\n    entry: \"skills/positioning_analysis.py\"\n    category: analysis\n    \n  - name: news_sentiment_analysis\n    description: \"新闻情绪分析 - 期货相关资讯抓取与市场情绪评分\"\n    entry: \"skills/news_analysis.py\"\n    category: analysis\n    \n  - name: debate_risk_decision\n    description: \"辩论风控决策 - 多空辩论、风控评估与综合投资决策\"\n    entry: \"skills/debate_risk_decision.py\"\n    category: decision\n\n# 配置文件\nconfig:\n  default_config: \"config/core.yaml\"\n  user_config: \"config/user.yaml\"\n\nFile v2.0.19:requirements.txt\n\n# ============================================================\n# Trading_Agents_for_Futures - 纯本地规则引擎\n# 零外部 API 依赖，pip install 一行搞定\n# ============================================================\n\n# 期货数据源\nakshare>=1.14.0,<2.0.0\n\n# 数据处理\npandas>=2.0.0,<3.0.0\nnumpy>=1.24.0,<3.0.0\npyarrow>=12.0.0,<20.0.0\n\n# 配置文件\npyyaml>=6.0\npython-dotenv>=1.0.0\n\n# HTTP 请求（AkShare 内部使用）\nrequests>=2.28.0\n\nArchive v2.0.18: 20 files, 80467 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (30985b), core/data_utils.py (49615b), main.py (26483b), manifest.yaml (2509b), README.md (5196b), requirements.txt (460b), setup.py (972b), SKILL.md (28091b), skills/__init__.py (0b), skills/basis_analysis.py (9666b), skills/debate_risk_decision.py (45833b), skills/inventory_analysis.py (15871b), skills/news_analysis.py (9103b), skills/positioning_analysis.py (22222b), skills/technical_analysis.py (11840b), skills/term_structure_analysis.py (9776b), _meta.json (146b)\n\nFile v2.0.18:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令）\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key，纯规则引擎。API 缺失时自动生成 search_actions，AI Agent 可按 fillability 回填 ai_fill 槽位。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：诚实比完整更重要\n\n**API 拿不到的，诚实地标出来。能搜的搜，搜不到的不编。**\n\n```\n         ┌─ API 命中     ──→ 输出数据，标记 data_source: \"api\"\n数据需求 ─┤\n         └─ API 失败      ──→ 生成 data_gap_report ──→ fillable? ──→ AI 搜 → 回填 ai_fill (参与评分)\n                                                    ──→ direction_only? ──→ AI 搜 → 回填 ai_fill (×0.30~0.50 降权)\n                                                    ──→ 每次搜不到    ──→ 标 status: \"empty\"，权重保持 0\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。\n\n---\n\n## data_gap_report 工作流（核心）\n\n当 `coverage.available < coverage.total` 时，输出 JSON 的顶层包含 `data_gap_report`：\n\n```json\n{\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      {\n        \"skill\": \"news_analysis\",\n        \"skill_cn\": \"新闻情绪\",\n        \"fillability\": \"fillable\",\n        \"ai_fill_weight_multiplier\": 0.90,\n        \"search_actions\": [\n          {\"query\": \"JD 鸡蛋 期货 新闻 2026年5月\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"bullish_news_count\", \"bearish_news_count\", \"sentiment_ratio\"],\n          \"cannot_fill\": []\n        }\n      },\n      {\n        \"skill\": \"term_structure_analysis\",\n        \"skill_cn\": \"期限结构\",\n        \"fillability\": \"direction_only\",\n        \"ai_fill_weight_multiplier\": 0.30,\n        \"search_actions\": [\n          {\"query\": \"JD 期货 期限结构 contango backwardation\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"structure\"],\n          \"cannot_fill\": [\"contracts\", \"prices\", \"spread_pct\"]\n        }\n      }\n    ]\n  }\n}\n```\n\n### 你（AI Agent）需要做的\n\n1. **解析 `data_gap_report`**，对每个 gap 执行 `search_actions` 中的搜索\n2. **按 `ai_fill_schema` 回填**到对应 `analysis_details[skill].ai_fill`：\n```json\n\"ai_fill\": {\n  \"filled_at\": \"2026-05-18T12:00:00\",\n  \"source\": \"web_search\",\n  \"fillability_tier\": \"fillable\",\n  \"weight_multiplier\": 0.90,\n  \"confidence\": \"high\",\n  \"data\": {\n    \"bullish_news_count\": 3,\n    \"bearish_news_count\": 1,\n    \"sentiment_ratio\": 0.2\n  },\n  \"urls\": [\"https://...来源URL...\"],\n  \"note\": \"搜索结果摘要\"\n}\n```\n3. **`cannot_fill` 中的字段绝不要编造**（如期限结构的 `spread_pct`）\n4. **`weight_multiplier` 从 gap 中的 `ai_fill_weight_multiplier` 复制**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，`data_gap_report` 标记为 `fillable` |\n| API 完全无数（status: empty） | `data_gap_report` 标记为 `direction_only` 或 `fillable`，AI 搜索按 `ai_fill_schema` 回填 |\n| AI 搜索也找不到 | `ai_fill.data` 留空，`confidence: \"low\"`，维度降权 |\n| 最终仍有维度缺失 | 该维度 `weight × 0`，不参与 scoring |\n\n### fillability 分级\n\n| 级别 | 含义 | AI 搜索后评分权重 | 示例 |\n|------|------|-------------------|------|\n| `fillable` | 公开信息充足，可补全大部分字段 | ×0.75~0.90 | 新闻情绪(0.90)、基差(0.75) |\n| `direction_only` | 只能拿定性方向，Z-score/精确数字不可补 | ×0.30~0.50 | 库存方向(0.50)、期限结构(0.30)、持仓(0.30) |\n| `not_fillable` | 保留分类，当前版本所有维度均可搜索 | ×0 | — |\n\n---\n\n## 数据来源标注规范\n\n**输出中每个维度都有数据来源和时效标记。**\n\n| 标记 | 含义 | AI Agent 应对 |\n|------|------|---------------|\n| `data_source: \"api\"` | 来自 AkShare 实时数据接口 | 直接使用 |\n| `data_source: \"api_fallback\"` | API 当日不可用，自动回退至前一交易日 | 查看 `data_gap_report`，确认是否需要 AI 搜索验证 |\n| `data_source: \"api_all_neutral\"` | 关键词匹配全部判定为中性 | 按 `data_gap_report` 中的 `search_actions` 搜索补充 |\n| `data_source: \"insufficient\"` | 样本不足 | 按 `ai_fill_schema` 回填到 `ai_fill` 槽位 |\n| `data_quality: \"stale\"` | 数据过期回退 | 辩论中权重自动折半 |\n| `data_quality: \"low_value\"` | 全中性/低质量 | 辩论中权重自动 ×0.3 |\n\n> 所有数字必须是 JSON 原生类型，不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 四维动态权重系统\n\n本引擎内部使用**四维动态权重**（品种品类 × 置信度 Sigmoid × 市场状态自适应 × 数据质量折损）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR/JD等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 数据质量折损（第四维）\n\n回退数据、AI 补全数据自动降权：\n\n| 数据状态 | 权重乘数 |\n|---------|---------|\n| API 历史回退 | ×0.5 |\n| AI 补全 fillable（新闻/基差） | ×0.75~0.90 |\n| AI 补全 direction_only（库存方向/期限结构/持仓） | ×0.30~0.50 |\n| 完全缺失 | ×0（不参与评分） |\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.18:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情，覆盖 48 个期货品种。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON + 数据缺口报告，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 数据来源追溯 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 快速开始\n\n```bash\npython main.py -s RB              # 数据模式：纯指标 JSON\npython main.py -s RB --decision   # 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB,CU,M         # 批量分析\npython main.py -s ALL             # 全市场扫描 48 个品种\npython main.py -s RB -o out.json  # 额外输出到文件\n```\n\n首次运行自动下载约 1 年历史数据（基差模块约 5~10 分钟），后续运行秒级。\n\n## 六维分析能力\n\n| 分析模块 | 计算指标 | 数据来源 |\n|---------|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB, ATR14, 量仓 | 新浪财经 |\n| 基差分析 | 现货-期货基差, 基差率, 季节性Z-score, 斜率, Contango/Backwardation | 100ppi.com |\n| 期限结构 | 合约价差, 展期结构, spread%, contango/backwardation | AkShare 多策略 |\n| 库存仓单 | 库存量, 周/月变化率, 季节性Z-score, 仓单量 | 东方财富 |\n| 持仓席位 | 净持仓, 净持仓变化, 加权HHI集中度, 前20多空比, 关键席位追踪 | 三大交易所 |\n| 新闻情绪 | 48 词关键词匹配, 利多/利空/中性计数, 情绪比率 | 上海金属网 |\n\n## API 失效时的处理\n\n当数据接口（AkShare）在周末/节假日/不可用时，系统**不会**静默失败：\n\n| 策略 | 说明 |\n|------|------|\n| **30 天回退** | 逐日回溯找最近的交易日数据，跳过周末 |\n| **过期缓存兜底** | 在线 API 全部失败后自动使用本地历史缓存 |\n| **Zip 损坏精准清除** | 遇到 AkShare 缓存损坏时按需清理，不滥杀合法缓存 |\n| **数据缺口报告** | `coverage` 如实统计可用维度，`data_gap_report` 列出每个缺失维度的 `search_actions`（AI 搜索指令） |\n| **AI Fill 槽位** | 每个维度预留 `ai_fill` 字段，AI Agent 搜索后可按 `fillability` 分级回填（`fillable` 正常参与评分，`direction_only` 降权参与） |\n\n## 核心特色\n\n- **零 API Key：** 不调 LLM，纯规则引擎。装完即用，只需要网络（AkShare 下载行情）。\n- **四维动态权重：** 品种品类 × 置信度 Sigmoid × 市场状态自适应 × 数据质量折损\n- **数据诚实：** `coverage` 从不虚报，缺失维度追加 `warning_flags` + `data_gap_report`\n- **信号校正：** 持仓口径矛盾交叉验证、基差斜率×结构矛盾检测、回退数据自动降权\n- **永不 null：** 止损止盈始终有值（ATR 动态计算 → 固定值兜底）\n- **48 品种覆盖：** Sina 映射 + 品类分类完整，JD/EG/LC/SI 等小品种无遗漏\n\n## 输出结构\n\n数据模式输出的 JSON 包含：\n\n```\n{\n  \"symbol\": \"JD\",\n  \"coverage\": {\"total\": 6, \"available\": 4, \"missing\": [\"positioning_analysis\", \"term_structure_analysis\"]},\n  \"analysis_details\": { ... 各维度指标 ... },\n  \"warning_flags\": [{ \"skill\": \"term_structure_analysis\", \"search_actions\": [...] }],\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      { \"skill\": \"term_structure_analysis\", \"fillability\": \"direction_only\",\n        \"search_actions\": [{\"query\": \"JD 期货 期限结构 contango\", \"source\": \"web\"}],\n        \"ai_fill_schema\": { \"fields\": [\"structure\"], \"cannot_fill\": [\"prices\", \"spread_pct\"] }\n      }\n    ]\n  }\n}\n```\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py            # 命令行入口\n├── manifest.yaml      # Skill 元数据\n├── requirements.txt   # 7 个核心依赖\n├── README.md          # 本文件（人类阅读）\n├── SKILL.md           # 分析框架知识库 + AI Fill 模板（AI Agent 阅读）\n├── setup.py           # 自动安装依赖\n├── config/\n│   ├── core.yaml      # 默认配置（数据源、风控、日志）\n│   └── user.yaml      # 用户覆盖\n├── core/\n│   ├── core_engine.py # 核心引擎 + 共享工具函数\n│   └── data_utils.py  # AkShare 数据获取（6 种数据类型 + 缓存管理）\n└── skills/\n    ├── technical_analysis.py     # 技术面\n    ├── basis_analysis.py         # 基差\n    ├── term_structure_analysis.py # 期限结构\n    ├── inventory_analysis.py     # 库存仓单\n    ├── positioning_analysis.py   # 持仓席位\n    ├── news_analysis.py          # 新闻情绪\n    └── debate_risk_decision.py   # 辩论风控决策\n```\n\n## 配置文件\n\n```yaml\n# config/user.yaml\ndata:\n  default_lookback_days: 180\n  use_cache: true\n\nrisk:\n  max_position_per_symbol: 0.20\n  atr_stop_multiplier: 2.5\n```\n\n## License\n\nMIT\n\nFile v2.0.18:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.18\",\n  \"publishedAt\": 1779430654846\n}\n\nFile v2.0.18:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\"\n\nFile v2.0.18:config/user.yaml\n\n# ============================================================\n# 用户自定义配置（会覆盖 core.yaml 的同名项）\n# 复制本文件到同目录下使用，根据自己的环境修改\n# ============================================================\n\n# ── 代理配置（在 OpenClaw 上部署时无需代理，留空即可）────────\n# proxy:\n#   enabled: true\n#   http: \"http://your-proxy-host:port\"\n#   https: \"http://your-proxy-host:port\"\n\n# ── 数据配置（可选）──────────────────────────────────────────\n# data:\n#   default_lookback_days: 180   # 缩短历史窗口可加快首次运行\n#   use_cache: true\n\nFile v2.0.18:manifest.yaml\n\nname: Trading_Agents_for_Futures\nversion: \"2.0.25\"\ndescription: |\n  期货六维分析数据引擎。零 API Key，纯规则引擎装完即用。\n  两种模式：(1) 数据模式 → 结构化 JSON 指标；(2) 决策模式 → 多空辩论 + 风控 + CIO 决策报告。\n  API 缺失时自动标注缺口并给出 AI 搜索指令（search_actions），支持 AI Agent 回填补全。\nauthor: \"TradingAgent Team\"\nlicense: MIT\nhomepage: \"\"\nrepository: \"\"\n\ntype: skill\ntags:\n  - futures\n  - trading\n  - ai-analysis\n  - rule-engine\n  - quantitative\n  - finance\n  - zero-api-key\n  - data-gap-report\n\n# 依赖\npython_version: \">=3.10\"\ndependencies:\n  - akshare>=1.14.0,<2.0.0\n  - pandas>=2.0.0,<3.0.0\n  - numpy>=1.24.0,<3.0.0\n  - pyarrow>=12.0.0,<20.0.0\n  - pyyaml>=6.0\n  - requests>=2.28.0\n  - python-dotenv>=1.0.0\n\n# 环境变量（无需任何 API Key）\nenv_vars: []\n\n# 安装提示\ninstall:\n  hint: \"python setup.py  # auto-installs deps, then: python main.py -s RB\"\n\n# 技能入口\nentry:\n  main: \"main.py\"\n  skills_dir: \"skills\"\n  core_dir: \"core\"\n  config_dir: \"config\"\n\n# 可用技能列表\navailable_skills:\n  - name: technical_analysis\n    description: \"技术面分析 - K线形态、趋势指标、动量信号\"\n    entry: \"skills/technical_analysis.py\"\n    category: analysis\n    \n  - name: basis_analysis\n    description: \"基差分析 - 现货价格与期货价格偏离度评估\"\n    entry: \"skills/basis_analysis.py\"\n    category: analysis\n    \n  - name: term_structure_analysis\n    description: \"期限结构分析 - 跨期价差、展期收益与市场结构判断\"\n    entry: \"skills/term_structure_analysis.py\"\n    category: analysis\n    \n  - name: inventory_analysis\n    description: \"库存仓单分析 - 库存周期、仓单变化与供需平衡评估\"\n    entry: \"skills/inventory_analysis.py\"\n    category: analysis\n    \n  - name: positioning_analysis\n    description: \"持仓席位分析 - 主力席位、净多净空、拥挤度与持仓结构\"\n    entry: \"skills/positioning_analysis.py\"\n    category: analysis\n    \n  - name: news_sentiment_analysis\n    description: \"新闻情绪分析 - 期货相关资讯抓取与市场情绪评分\"\n    entry: \"skills/news_analysis.py\"\n    category: analysis\n    \n  - name: debate_risk_decision\n    description: \"辩论风控决策 - 多空辩论、风控评估与综合投资决策\"\n    entry: \"skills/debate_risk_decision.py\"\n    category: decision\n\n# 配置文件\nconfig:\n  default_config: \"config/core.yaml\"\n  user_config: \"config/user.yaml\"\n\nFile v2.0.18:requirements.txt\n\n# ============================================================\n# Trading_Agents_for_Futures - 纯本地规则引擎\n# 零外部 API 依赖，pip install 一行搞定\n# ============================================================\n\n# 期货数据源\nakshare>=1.14.0,<2.0.0\n\n# 数据处理\npandas>=2.0.0,<3.0.0\nnumpy>=1.24.0,<3.0.0\npyarrow>=12.0.0,<20.0.0\n\n# 配置文件\npyyaml>=6.0\npython-dotenv>=1.0.0\n\n# HTTP 请求（AkShare 内部使用）\nrequests>=2.28.0\n\nArchive v2.0.17: 20 files, 72433 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27323b), core/data_utils.py (46736b), main.py (13220b), manifest.yaml (2297b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26858b), skills/__init__.py (0b), skills/basis_analysis.py (9349b), skills/debate_risk_decision.py (44150b), skills/inventory_analysis.py (15505b), skills/news_analysis.py (7555b), skills/positioning_analysis.py (21849b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (9208b), _meta.json (146b)\n\nFile v2.0.17:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 纯结构化 JSON 指标，供 AI Agent 自行解读\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key 依赖，装完即用。首次运行通过 AkShare 从公开数据源下载历史数据。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：绝不空缺\n\n**API 拿不到的，AI 搜。都拿不到的，标 N/A。但永远不空着。**\n\n```\n         ┌─ API 命中了 ──→ 输出，标记 \"source\": \"api\"\n数据需求 ─┤\n         └─ API 失败/不足 ──→ AI 搜索补 ──→ 搜到了 ──→ 输出，标记 \"source\": \"ai_search\"\n                                         └─ 搜不到 ──→ 输出，标记 \"status\": \"N/A\"\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。**这些本身就是信息解读，AI 搜索比 keyword matching 强 10 倍。**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，合并输出，`data_source: \"mixed\"` |\n| API 完全无数（status: empty） | AI 搜索补位，`data_source: \"ai_search\"` |\n| AI 搜索也找不到 | 标 `\"status\": \"N/A\"`, `\"reason\": \"API 不支持，AI 搜索后仍未找到\"` |\n| 最终仍有维度缺失 | 该维度权重 × 0.8，整体置信度下调一档，报告中说明 |\n\n---\n\n## 数据来源标注规范\n\n**输出的每个数字都标来源和时效。六类标记，互不混淆。**\n\n| 标记 | 含义 | AI Agent 应对 |\n|------|------|---------------|\n| `\"data_source\": \"api\"` | 来自 AKShare 等实时数据接口 | 直接使用 |\n| `\"data_source\": \"api_fallback\"` | API 当日不可用，自动回退到前一交易日 | **应搜索确认**最新数据是否已变化，`soft_data_hint` 有搜索指引 |\n| `\"data_source\": \"api_all_neutral\"` | AKShare 关键词匹配全部判定为中性 | **应自行搜索**真实情绪，`soft_data_hint` 有搜索词指引 |\n| `\"data_source\": \"insufficient\"` | 原始样本不足（如新闻仅 2 条） | 不可单独使用，**必须**搜索补充 |\n| `\"data_source\": \"ai_search\"` | 来自 AI Agent 自行搜索 | 信任度取决于搜索源质量 |\n| `\"data_source\": \"ai_only\"` | 该维度无 API 数据，完全依赖 AI 搜索 | 需至少 2 个独立来源交叉验证 |\n\n### 输出模板\n\n```json\n{\n  \"symbol\": \"AG\",\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"data_source\": \"api\",\n      \"RSI14\": 47.76, \"MACD\": 329, \"close\": 19304,\n      \"MA5\": 19280, \"MA20\": 19350, \"trend_20d\": \"down\"\n    },\n    \"basis_analysis\": {\n      \"data_source\": \"api\",\n      \"spot_price\": 19250, \"futures_price\": 19304,\n      \"basis_pct\": -0.3, \"basis_zscore\": -2.02,\n      \"zscore_method\": \"seasonal_M5(5pts)\",\n      \"structure\": \"backwardation\"\n    },\n    \"inventory_analysis\": {\n      \"data_source\": \"api_fallback\",\n      \"data_date\": \"20260515\",\n      \"fallback_date\": \"2026-05-15\",\n      \"data_source_note\": \"API 当日不可用，downgraded to 2026-05-15\",\n      \"soft_data_hint\": \"库存数据回退...请 AI Agent 自行搜索...\"\n    },\n    \"positioning_analysis\": {\n      \"data_source\": \"api\",\n      \"concentration_index\": 0.1842,\n      \"concentration_method\": \"seat_weighted_hhi\",\n      \"top20_long_pct\": 0.62, \"key_players\": [...]\n    },\n    \"news_analysis\": {\n      \"data_source\": \"api_all_neutral\",\n      \"total_news_count\": 10, \"bullish_news_count\": 0,\n      \"bearish_news_count\": 0, \"neutral_news_count\": 10,\n      \"soft_data_hint\": \"AKShare 新闻关键词匹配判定全部中性。请 AI Agent 自行搜索...\"\n    },\n    \"term_structure_analysis\": {\n      \"data_source\": \"api\",\n      \"structure\": \"contango\",\n      \"front_contract\": \"AG2605\", \"back_contract\": \"AG2608\",\n      \"back_contract_selection\": \"AG2605 → 找~3月后合约 → AG2608 (跳过最远月AG2704)\",\n      \"spread\": 23, \"spread_details\": {...}\n    }\n  }\n}\n```\n\n> **所有数字必须是 JSON 原生类型**（number/string/boolean），不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 动态权重系统\n\n本引擎内部使用三维动态权重（品种品类 × 各模块置信度 × 市场状态）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.17:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 简介\n\n本系统有两条运行路径：\n\n- **数据模式**：只获取数据、计算指标、输出结构化 JSON。不做任何方向判断或投资建议。给 AI Agent 或你自己的分析代码用。\n- **决策模式**：在数据基础上运行动态权重多空辩论 → 风控评估 → CIO 综合决策，输出完整的投资建议报告。\n\n## 快速开始\n\n```bash\n# 数据模式（默认）：输出纯指标 JSON\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB --decision\n\n# 批量分析 + 全市场扫描\npython main.py -s RB,CU,M\npython main.py -s ALL\npython main.py -s RB --decision -o report.json\n```\n\n## 功能一览\n\n| 分析模块 | 计算指标 |\n|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB上下轨, ATR14, 成交量均线, 持仓变化 |\n| 基差分析 | 现货-期货基差, 基差率, 180日Z-score, 20日斜率, Contango/Backwardation |\n| 期限结构分析 | 合约价差, 展期结构, 价差%, structure_summary, front_spread |\n| 库存仓单分析 | 库存绝对值, 周/月变化率, 180日Z-score, 仓单量, 5日仓单变化 |\n| 持仓席位分析 | 净持仓, 净持仓变化, 集中度, 前20多空比, key_players（乾坤/摩根等） |\n| 新闻情绪分析 | 利多/利空/中性新闻计数, 情绪比率 |\n| 辩论风控决策 | 动态权重多空辩论 + 风控评估 + CIO决策（仅 `--decision` 模式启用） |\n\n首次运行会自动安装缺失依赖并下载约 1 年历史数据，基差模块约 5~10 分钟。后续运行秒级。\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py                    # 命令行入口\n├── manifest.yaml              # Skill 元数据\n├── requirements.txt           # 只有 6 个核心依赖\n├── SKILL.md                   # 分析框架知识库（给 AI Agent 看）\n├── README.md                  # 本文件（给人类看）\n├── config/\n│   ├── core.yaml              # 默认配置\n│   └── user.yaml              # 用户覆盖\n├── core/\n│   ├── core_engine.py         # 核心引擎（配置、流程、数据类）\n│   └── data_utils.py          # AkShare 数据获取（6 种数据类型）\n└── skills/\n    ├── technical_analysis.py  # 技术面：MA/MACD/RSI/BB/ATR 纯本地计算\n    ├── basis_analysis.py      # 基差：现货-期货偏离度分析\n    ├── term_structure_analysis.py  # 期限结构：Contango/Backwardation\n    ├── inventory_analysis.py  # 库存：Z分位/周月变化/库存周期\n    ├── positioning_analysis.py    # 持仓：净多空/集中度/前20会员\n    ├── news_analysis.py       # 新闻：关键词情绪统计\n    └── debate_risk_decision.py    # 决策：动态权重辩论 + 风控 + 裁决\n```\n\n## 核心特色\n\n- **零 API Key 依赖：** 不调 DeepSeek，不调任何 LLM。纯规则引擎，装完即用。注意：通过 AkShare 从公开数据源下载行情，需要网络。\n- **动态权重系统：** 品种品类 × 置信度 × 市场状态三维自适应\n- **你的框架，你的判断：** 系统输出结构化 JSON + 规则信号，最终解读和报告由你（或你的 AI Agent）完成\n\n## 数据来源\n\n| 数据类型 | 来源 |\n|---------|------|\n| 期货价格(K线) | 新浪财经 via AkShare |\n| 基差(现货价格) | 100ppi.com via AkShare |\n| 库存数据 | 东方财富 via AkShare |\n| 持仓排名 | 上期所/大商所/郑商所 via AkShare |\n| 新闻资讯 | 上海金属网 via AkShare |\n\n## 配置文件\n\n```yaml\n# config/user.yaml 可覆盖默认值\ndata:\n  default_lookback_days: 180   # 缩短历史窗口加快首次运行\n  use_cache: true               # 启用本地缓存\n\nrisk:\n  max_position_per_symbol: 0.20  # 单品种最大仓位\n  atr_stop_multiplier: 2.5       # ATR 止损倍数\n```\n\n## License\n\nMIT\n\nFile v2.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.17\",\n  \"publishedAt\": 1779075577596\n}\n\nFile v2.0.17:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\"\n\nFile v2.0.17:config/user.yaml\n\n# ============================================================\n# 用户自定义配置（会覆盖 core.yaml 的同名项）\n# 复制本文件到同目录下使用，根据自己的环境修改\n# ============================================================\n\n# ── 代理配置（在 OpenClaw 上部署时无需代理，留空即可）────────\n# proxy:\n#   enabled: true\n#   http: \"http://your-proxy-host:port\"\n#   https: \"http://your-proxy-host:port\"\n\n# ── 数据配置（可选）──────────────────────────────────────────\n# data:\n#   default_lookback_days: 180   # 缩短历史窗口可加快首次运行\n#   use_cache: true\n\nFile v2.0.17:manifest.yaml\n\nname: Trading_Agents_for_Futures\nversion: \"2.0.18\"\ndescription: \"期货TradingAgents六维分析系统 - 纯规则引擎，零API Key依赖。通过AkShare获取公开行情数据。\"\nauthor: \"TradingAgent Team\"\nlicense: MIT\nhomepage: \"\"\nrepository: \"\"\n\n# OpenClaw Skill 元数据\ntype: skill\ntags:\n  - futures\n  - trading\n  - ai-analysis\n  - multi-agent\n  - quantitative\n  - finance\n\n# 依赖\npython_version: \">=3.10\"\ndependencies:\n  - akshare>=1.14.0,<2.0.0\n  - pandas>=2.0.0,<3.0.0\n  - numpy>=1.24.0,<3.0.0\n  - pyarrow>=12.0.0,<20.0.0\n  - pyyaml>=6.0\n  - requests>=2.28.0\n  - python-dotenv>=1.0.0\n\n# 环境变量（无需任何 API Key）\nenv_vars: []\n\n# 安装提示\ninstall:\n  hint: \"python setup.py  # auto-installs deps, then: python main.py -s RB\"\n\n# 技能入口\nentry:\n  main: \"main.py\"\n  skills_dir: \"skills\"\n  core_dir: \"core\"\n  config_dir: \"config\"\n\n# 可用技能列表\navailable_skills:\n  - name: technical_analysis\n    description: \"技术面分析 - K线形态、趋势指标、动量信号\"\n    entry: \"skills/technical_analysis.py\"\n    category: analysis\n    \n  - name: basis_analysis\n    description: \"基差分析 - 现货价格与期货价格偏离度评估\"\n    entry: \"skills/basis_analysis.py\"\n    category: analysis\n    \n  - name: term_structure_analysis\n    description: \"期限结构分析 - 跨期价差、展期收益与市场结构判断\"\n    entry: \"skills/term_structure_analysis.py\"\n    category: analysis\n    \n  - name: inventory_analysis\n    description: \"库存仓单分析 - 库存周期、仓单变化与供需平衡评估\"\n    entry: \"skills/inventory_analysis.py\"\n    category: analysis\n    \n  - name: positioning_analysis\n    description: \"持仓席位分析 - 主力席位、净多净空、拥挤度与持仓结构\"\n    entry: \"skills/positioning_analysis.py\"\n    category: analysis\n    \n  - name: news_sentiment_analysis\n    description: \"新闻情绪分析 - 期货相关资讯抓取与市场情绪评分\"\n    entry: \"skills/news_analysis.py\"\n    category: analysis\n    \n  - name: debate_risk_decision\n    description: \"辩论风控决策 - 多空辩论、风控评估与综合投资决策\"\n    entry: \"skills/debate_risk_decision.py\"\n    category: decision\n\n# 配置文件\nconfig:\n  default_config: \"config/core.yaml\"\n  user_config: \"config/user.yaml\"\n\nFile v2.0.17:requirements.txt\n\n# ============================================================\n# Trading_Agents_for_Futures - 纯本地规则引擎\n# 零外部 API 依赖，pip install 一行搞定\n# ============================================================\n\n# 期货数据源\nakshare>=1.14.0,<2.0.0\n\n# 数据处理\npandas>=2.0.0,<3.0.0\nnumpy>=1.24.0,<3.0.0\npyarrow>=12.0.0,<20.0.0\n\n# 配置文件\npyyaml>=6.0\npython-dotenv>=1.0.0\n\n# HTTP 请求（AkShare 内部使用）\nrequests>=2.28.0\n\nArchive v2.0.16: 20 files, 70559 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27265b), core/data_utils.py (45185b), main.py (11353b), manifest.yaml (2297b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26858b), skills/__init__.py (0b), skills/basis_analysis.py (8713b), skills/debate_risk_decision.py (42322b), skills/inventory_analysis.py (15505b), skills/news_analysis.py (7555b), skills/positioning_analysis.py (20835b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (9208b), _meta.json (146b)\n\nFile v2.0.16:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 纯结构化 JSON 指标，供 AI Agent 自行解读\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key 依赖，装完即用。首次运行通过 AkShare 从公开数据源下载历史数据。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：绝不空缺\n\n**API 拿不到的，AI 搜。都拿不到的，标 N/A。但永远不空着。**\n\n```\n         ┌─ API 命中了 ──→ 输出，标记 \"source\": \"api\"\n数据需求 ─┤\n         └─ API 失败/不足 ──→ AI 搜索补 ──→ 搜到了 ──→ 输出，标记 \"source\": \"ai_search\"\n                                         └─ 搜不到 ──→ 输出，标记 \"status\": \"N/A\"\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。**这些本身就是信息解读，AI 搜索比 keyword matching 强 10 倍。**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，合并输出，`data_source: \"mixed\"` |\n| API 完全无数（status: empty） | AI 搜索补位，`data_source: \"ai_search\"` |\n| AI 搜索也找不到 | 标 `\"status\": \"N/A\"`, `\"reason\": \"API 不支持，AI 搜索后仍未找到\"` |\n| 最终仍有维度缺失 | 该维度权重 × 0.8，整体置信度下调一档，报告中说明 |\n\n---\n\n## 数据来源标注规范\n\n**输出的每个数字都标来源和时效。六类标记，互不混淆。**\n\n| 标记 | 含义 | AI Agent 应对 |\n|------|------|---------------|\n| `\"data_source\": \"api\"` | 来自 AKShare 等实时数据接口 | 直接使用 |\n| `\"data_source\": \"api_fallback\"` | API 当日不可用，自动回退到前一交易日 | **应搜索确认**最新数据是否已变化，`soft_data_hint` 有搜索指引 |\n| `\"data_source\": \"api_all_neutral\"` | AKShare 关键词匹配全部判定为中性 | **应自行搜索**真实情绪，`soft_data_hint` 有搜索词指引 |\n| `\"data_source\": \"insufficient\"` | 原始样本不足（如新闻仅 2 条） | 不可单独使用，**必须**搜索补充 |\n| `\"data_source\": \"ai_search\"` | 来自 AI Agent 自行搜索 | 信任度取决于搜索源质量 |\n| `\"data_source\": \"ai_only\"` | 该维度无 API 数据，完全依赖 AI 搜索 | 需至少 2 个独立来源交叉验证 |\n\n### 输出模板\n\n```json\n{\n  \"symbol\": \"AG\",\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"data_source\": \"api\",\n      \"RSI14\": 47.76, \"MACD\": 329, \"close\": 19304,\n      \"MA5\": 19280, \"MA20\": 19350, \"trend_20d\": \"down\"\n    },\n    \"basis_analysis\": {\n      \"data_source\": \"api\",\n      \"spot_price\": 19250, \"futures_price\": 19304,\n      \"basis_pct\": -0.3, \"basis_zscore\": -2.02,\n      \"zscore_method\": \"seasonal_M5(5pts)\",\n      \"structure\": \"backwardation\"\n    },\n    \"inventory_analysis\": {\n      \"data_source\": \"api_fallback\",\n      \"data_date\": \"20260515\",\n      \"fallback_date\": \"2026-05-15\",\n      \"data_source_note\": \"API 当日不可用，downgraded to 2026-05-15\",\n      \"soft_data_hint\": \"库存数据回退...请 AI Agent 自行搜索...\"\n    },\n    \"positioning_analysis\": {\n      \"data_source\": \"api\",\n      \"concentration_index\": 0.1842,\n      \"concentration_method\": \"seat_weighted_hhi\",\n      \"top20_long_pct\": 0.62, \"key_players\": [...]\n    },\n    \"news_analysis\": {\n      \"data_source\": \"api_all_neutral\",\n      \"total_news_count\": 10, \"bullish_news_count\": 0,\n      \"bearish_news_count\": 0, \"neutral_news_count\": 10,\n      \"soft_data_hint\": \"AKShare 新闻关键词匹配判定全部中性。请 AI Agent 自行搜索...\"\n    },\n    \"term_structure_analysis\": {\n      \"data_source\": \"api\",\n      \"structure\": \"contango\",\n      \"front_contract\": \"AG2605\", \"back_contract\": \"AG2608\",\n      \"back_contract_selection\": \"AG2605 → 找~3月后合约 → AG2608 (跳过最远月AG2704)\",\n      \"spread\": 23, \"spread_details\": {...}\n    }\n  }\n}\n```\n\n> **所有数字必须是 JSON 原生类型**（number/string/boolean），不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 动态权重系统\n\n本引擎内部使用三维动态权重（品种品类 × 各模块置信度 × 市场状态）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.16:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 简介\n\n本系统有两条运行路径：\n\n- **数据模式**：只获取数据、计算指标、输出结构化 JSON。不做任何方向判断或投资建议。给 AI Agent 或你自己的分析代码用。\n- **决策模式**：在数据基础上运行动态权重多空辩论 → 风控评估 → CIO 综合决策，输出完整的投资建议报告。\n\n## 快速开始\n\n```bash\n# 数据模式（默认）：输出纯指标 JSON\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB --decision\n\n# 批量分析 + 全市场扫描\npython main.py -s RB,CU,M\npython main.py -s ALL\npython main.py -s RB --decision -o report.json\n```\n\n## 功能一览\n\n| 分析模块 | 计算指标 |\n|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB上下轨, ATR14, 成交量均线, 持仓变化 |\n| 基差分析 | 现货-期货基差, 基差率, 180日Z-score, 20日斜率, Contango/Backwardation |\n| 期限结构分析 | 合约价差, 展期结构, 价差%, structure_summary, front_spread |\n| 库存仓单分析 | 库存绝对值, 周/月变化率, 180日Z-score, 仓单量, 5日仓单变化 |\n| 持仓席位分析 | 净持仓, 净持仓变化, 集中度, 前20多空比, key_players（乾坤/摩根等） |\n| 新闻情绪分析 | 利多/利空/中性新闻计数, 情绪比率 |\n| 辩论风控决策 | 动态权重多空辩论 + 风控评估 + CIO决策（仅 `--decision` 模式启用） |\n\n首次运行会自动安装缺失依赖并下载约 1 年历史数据，基差模块约 5~10 分钟。后续运行秒级。\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py                    # 命令行入口\n├── manifest.yaml              # Skill 元数据\n├── requirements.txt           # 只有 6 个核心依赖\n├── SKILL.md                   # 分析框架知识库（给 AI Agent 看）\n├── README.md                  # 本文件（给人类看）\n├── config/\n│   ├── core.yaml              # 默认配置\n│   └── user.yaml              # 用户覆盖\n├── core/\n│   ├── core_engine.py         # 核心引擎（配置、流程、数据类）\n│   └── data_utils.py          # AkShare 数据获取（6 种数据类型）\n└── skills/\n    ├── technical_analysis.py  # 技术面：MA/MACD/RSI/BB/ATR 纯本地计算\n    ├── basis_analysis.py      # 基差：现货-期货偏离度分析\n    ├── term_structure_analysis.py  # 期限结构：Contango/Backwardation\n    ├── inventory_analysis.py  # 库存：Z分位/周月变化/库存周期\n    ├── positioning_analysis.py    # 持仓：净多空/集中度/前20会员\n    ├── news_analysis.py       # 新闻：关键词情绪统计\n    └── debate_risk_decision.py    # 决策：动态权重辩论 + 风控 + 裁决\n```\n\n## 核心特色\n\n- **零 API Key 依赖：** 不调 DeepSeek，不调任何 LLM。纯规则引擎，装完即用。注意：通过 AkShare 从公开数据源下载行情，需要网络。\n- **动态权重系统：** 品种品类 × 置信度 × 市场状态三维自适应\n- **你的框架，你的判断：** 系统输出结构化 JSON + 规则信号，最终解读和报告由你（或你的 AI Agent）完成\n\n## 数据来源\n\n| 数据类型 | 来源 |\n|---------|------|\n| 期货价格(K线) | 新浪财经 via AkShare |\n| 基差(现货价格) | 100ppi.com via AkShare |\n| 库存数据 | 东方财富 via AkShare |\n| 持仓排名 | 上期所/大商所/郑商所 via AkShare |\n| 新闻资讯 | 上海金属网 via AkShare |\n\n## 配置文件\n\n```yaml\n# config/user.yaml 可覆盖默认值\ndata:\n  default_lookback_days: 180   # 缩短历史窗口加快首次运行\n  use_cache: true               # 启用本地缓存\n\nrisk:\n  max_position_per_symbol: 0.20  # 单品种最大仓位\n  atr_stop_multiplier: 2.5       # ATR 止损倍数\n```\n\n## License\n\nMIT\n\nFile v2.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.16\",\n  \"publishedAt\": 1779025172765\n}\n\nFile v2.0.16:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\"\n\nFile v2.0.16:config/user.yaml\n\n# ============================================================\n# 用户自定义配置（会覆盖 core.yaml 的同名项）\n# 复制本文件到同目录下使用，根据自己的环境修改\n# ============================================================\n\n# ── 代理配置（在 OpenClaw 上部署时无需代理，留空即可）────────\n# proxy:\n#   enabled: true\n#   http: \"http://your-proxy-host:port\"\n#   https: \"http://your-proxy-host:port\"\n\n# ── 数据配置（可选）──────────────────────────────────────────\n# data:\n#   default_lookback_days: 180   # 缩短历史窗口可加快首次运行\n#   use_cache: true\n\nFile v2.0.16:manifest.yaml\n\nname: Trading_Agents_for_Futures\nversion: \"2.0.17\"\ndescription: \"期货TradingAgents六维分析系统 - 纯规则引擎，零API Key依赖。通过AkShare获取公开行情数据。\"\nauthor: \"TradingAgent Team\"\nlicense: MIT\nhomepage: \"\"\nrepository: \"\"\n\n# OpenClaw Skill 元数据\ntype: skill\ntags:\n  - futures\n  - trading\n  - ai-analysis\n  - multi-agent\n  - quantitative\n  - finance\n\n# 依赖\npython_version: \">=3.10\"\ndependencies:\n  - akshare>=1.14.0,<2.0.0\n  - pandas>=2.0.0,<3.0.0\n  - numpy>=1.24.0,<3.0.0\n  - pyarrow>=12.0.0,<20.0.0\n  - pyyaml>=6.0\n  - requests>=2.28.0\n  - python-dotenv>=1.0.0\n\n# 环境变量（无需任何 API Key）\nenv_vars: []\n\n# 安装提示\ninstall:\n  hint: \"python setup.py  # auto-installs deps, then: python main.py -s RB\"\n\n# 技能入口\nentry:\n  main: \"main.py\"\n  skills_dir: \"skills\"\n  core_dir: \"core\"\n  config_dir: \"config\"\n\n# 可用技能列表\navailable_skills:\n  - name: technical_analysis\n    description: \"技术面分析 - K线形态、趋势指标、动量信号\"\n    entry: \"skills/technical_analysis.py\"\n    category: analysis\n    \n  - name: basis_analysis\n    description: \"基差分析 - 现货价格与期货价格偏离度评估\"\n    entry: \"skills/basis_analysis.py\"\n    category: analysis\n    \n  - name: term_structure_analysis\n    description: \"期限结构分析 - 跨期价差、展期收益与市场结构判断\"\n    entry: \"skills/term_structure_analysis.py\"\n    category: analysis\n    \n  - name: inventory_analysis\n    description: \"库存仓单分析 - 库存周期、仓单变化与供需平衡评估\"\n    entry: \"skills/inventory_analysis.py\"\n    category: analysis\n    \n  - name: positioning_analysis\n    description: \"持仓席位分析 - 主力席位、净多净空、拥挤度与持仓结构\"\n    entry: \"skills/positioning_analysis.py\"\n    category: analysis\n    \n  - name: news_sentiment_analysis\n    description: \"新闻情绪分析 - 期货相关资讯抓取与市场情绪评分\"\n    entry: \"skills/news_analysis.py\"\n    category: analysis\n    \n  - name: debate_risk_decision\n    description: \"辩论风控决策 - 多空辩论、风控评估与综合投资决策\"\n    entry: \"skills/debate_risk_decision.py\"\n    category: decision\n\n# 配置文件\nconfig:\n  default_config: \"config/core.yaml\"\n  user_config: \"config/user.yaml\"\n\nFile v2.0.16:requirements.txt\n\n# ============================================================\n# Trading_Agents_for_Futures - 纯本地规则引擎\n# 零外部 API 依赖，pip install 一行搞定\n# ============================================================\n\n# 期货数据源\nakshare>=1.14.0,<2.0.0\n\n# 数据处理\npandas>=2.0.0,<3.0.0\nnumpy>=1.24.0,<3.0.0\npyarrow>=12.0.0,<20.0.0\n\n# 配置文件\npyyaml>=6.0\npython-dotenv>=1.0.0\n\n# HTTP 请求（AkShare 内部使用）\nrequests>=2.28.0\n\nArchive v2.0.15: 20 files, 69592 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27265b), core/data_utils.py (41688b), main.py (11353b), manifest.yaml (2380b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26858b), skills/__init__.py (0b), skills/basis_analysis.py (8713b), skills/debate_risk_decision.py (42322b), skills/inventory_analysis.py (15505b), skills/news_analysis.py (7555b), skills/positioning_analysis.py (20835b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (9208b), _meta.json (146b)\n\nFile v2.0.15:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 纯结构化 JSON 指标，供 AI Agent 自行解读\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key 依赖，装完即用。首次运行通过 AkShare 从公开数据源下载历史数据。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：绝不空缺\n\n**API 拿不到的，AI 搜。都拿不到的，标 N/A。但永远不空着。**\n\n```\n         ┌─ API 命中了 ──→ 输出，标记 \"source\": \"api\"\n数据需求 ─┤\n         └─ API 失败/不足 ──→ AI 搜索补 ──→ 搜到了 ──→ 输出，标记 \"source\": \"ai_search\"\n                                         └─ 搜不到 ──→ 输出，标记 \"status\": \"N/A\"\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。**这些本身就是信息解读，AI 搜索比 keyword matching 强 10 倍。**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，合并输出，`data_source: \"mixed\"` |\n| API 完全无数（status: empty） | AI 搜索补位，`data_source: \"ai_search\"` |\n| AI 搜索也找不到 | 标 `\"status\": \"N/A\"`, `\"reason\": \"API 不支持，AI 搜索后仍未找到\"` |\n| 最终仍有维度缺失 | 该维度权重 × 0.8，整体置信度下调一档，报告中说明 |\n\n---\n\n## 数据来源标注规范\n\n**输出的每个数字都标来源和时效。六类标记，互不混淆。**\n\n| 标记 | 含义 | AI Agent 应对 |\n|------|------|---------------|\n| `\"data_source\": \"api\"` | 来自 AKShare 等实时数据接口 | 直接使用 |\n| `\"data_source\": \"api_fallback\"` | API 当日不可用，自动回退到前一交易日 | **应搜索确认**最新数据是否已变化，`soft_data_hint` 有搜索指引 |\n| `\"data_source\": \"api_all_neutral\"` | AKShare 关键词匹配全部判定为中性 | **应自行搜索**真实情绪，`soft_data_hint` 有搜索词指引 |\n| `\"data_source\": \"insufficient\"` | 原始样本不足（如新闻仅 2 条） | 不可单独使用，**必须**搜索补充 |\n| `\"data_source\": \"ai_search\"` | 来自 AI Agent 自行搜索 | 信任度取决于搜索源质量 |\n| `\"data_source\": \"ai_only\"` | 该维度无 API 数据，完全依赖 AI 搜索 | 需至少 2 个独立来源交叉验证 |\n\n### 输出模板\n\n```json\n{\n  \"symbol\": \"AG\",\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"data_source\": \"api\",\n      \"RSI14\": 47.76, \"MACD\": 329, \"close\": 19304,\n      \"MA5\": 19280, \"MA20\": 19350, \"trend_20d\": \"down\"\n    },\n    \"basis_analysis\": {\n      \"data_source\": \"api\",\n      \"spot_price\": 19250, \"futures_price\": 19304,\n      \"basis_pct\": -0.3, \"basis_zscore\": -2.02,\n      \"zscore_method\": \"seasonal_M5(5pts)\",\n      \"structure\": \"backwardation\"\n    },\n    \"inventory_analysis\": {\n      \"data_source\": \"api_fallback\",\n      \"data_date\": \"20260515\",\n      \"fallback_date\": \"2026-05-15\",\n      \"data_source_note\": \"API 当日不可用，downgraded to 2026-05-15\",\n      \"soft_data_hint\": \"库存数据回退...请 AI Agent 自行搜索...\"\n    },\n    \"positioning_analysis\": {\n      \"data_source\": \"api\",\n      \"concentration_index\": 0.1842,\n      \"concentration_method\": \"seat_weighted_hhi\",\n      \"top20_long_pct\": 0.62, \"key_players\": [...]\n    },\n    \"news_analysis\": {\n      \"data_source\": \"api_all_neutral\",\n      \"total_news_count\": 10, \"bullish_news_count\": 0,\n      \"bearish_news_count\": 0, \"neutral_news_count\": 10,\n      \"soft_data_hint\": \"AKShare 新闻关键词匹配判定全部中性。请 AI Agent 自行搜索...\"\n    },\n    \"term_structure_analysis\": {\n      \"data_source\": \"api\",\n      \"structure\": \"contango\",\n      \"front_contract\": \"AG2605\", \"back_contract\": \"AG2608\",\n      \"back_contract_selection\": \"AG2605 → 找~3月后合约 → AG2608 (跳过最远月AG2704)\",\n      \"spread\": 23, \"spread_details\": {...}\n    }\n  }\n}\n```\n\n> **所有数字必须是 JSON 原生类型**（number/string/boolean），不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 动态权重系统\n\n本引擎内部使用三维动态权重（品种品类 × 各模块置信度 × 市场状态）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.15:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 简介\n\n本系统有两条运行路径：\n\n- **数据模式**：只获取数据、计算指标、输出结构化 JSON。不做任何方向判断或投资建议。给 AI Agent 或你自己的分析代码用。\n- **决策模式**：在数据基础上运行动态权重多空辩论 → 风控评估 → CIO 综合决策，输出完整的投资建议报告。\n\n## 快速开始\n\n```bash\n# 数据模式（默认）：输出纯指标 JSON\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB --decision\n\n# 批量分析 + 全市场扫描\npython main.py -s RB,CU,M\npython main.py -s ALL\npython main.py -s RB --decision -o report.json\n```\n\n## 功能一览\n\n| 分析模块 | 计算指标 |\n|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB上下轨, ATR14, 成交量均线, 持仓变化 |\n| 基差分析 | 现货-期货基差, 基差率, 180日Z-score, 20日斜率, Contango/Backwardation |\n| 期限结构分析 | 合约价差, 展期结构, 价差%, structure_summary, front_spread |\n| 库存仓单分析 | 库存绝对值, 周/月变化率, 180日Z-score, 仓单量, 5日仓单变化 |\n| 持仓席位分析 | 净持仓, 净持仓变化, 集中度, 前20多空比, key_players（乾坤/摩根等） |\n| 新闻情绪分析 | 利多/利空/中性新闻计数, 情绪比率 |\n| 辩论风控决策 | 动态权重多空辩论 + 风控评估 + CIO决策（仅 `--decision` 模式启用） |\n\n首次运行会自动安装缺失依赖并下载约 1 年历史数据，基差模块约 5~10 分钟。后续运行秒级。\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py                    # 命令行入口\n├── manifest.yaml              # Skill 元数据\n├── requirements.txt           # 只有 6 个核心依赖\n├── SKILL.md                   # 分析框架知识库（给 AI Agent 看）\n├── README.md                  # 本文件（给人类看）\n├── config/\n│   ├── core.yaml              # 默认配置\n│   └── user.yaml              # 用户覆盖\n├── core/\n│   ├── core_engine.py         # 核心引擎（配置、流程、数据类）\n│   └── data_utils.py          # AkShare 数据获取（6 种数据类型）\n└── skills/\n    ├── technical_analysis.py  # 技术面：MA/MACD/RSI/BB/ATR 纯本地计算\n    ├── basis_analysis.py      # 基差：现货-期货偏离度分析\n    ├── term_structure_analysis.py  # 期限结构：Contango/Backwardation\n    ├── inventory_analysis.py  # 库存：Z分位/周月变化/库存周期\n    ├── positioning_analysis.py    # 持仓：净多空/集中度/前20会员\n    ├── news_analysis.py       # 新闻：关键词情绪统计\n    └── debate_risk_decision.py    # 决策：动态权重辩论 + 风控 + 裁决\n```\n\n## 核心特色\n\n- **零 API Key 依赖：** 不调 DeepSeek，不调任何 LLM。纯规则引擎，装完即用。注意：通过 AkShare 从公开数据源下载行情，需要网络。\n- **动态权重系统：** 品种品类 × 置信度 × 市场状态三维自适应\n- **你的框架，你的判断：** 系统输出结构化 JSON + 规则信号，最终解读和报告由你（或你的 AI Agent）完成\n\n## 数据来源\n\n| 数据类型 | 来源 |\n|---------|------|\n| 期货价格(K线) | 新浪财经 via AkShare |\n| 基差(现货价格) | 100ppi.com via AkShare |\n| 库存数据 | 东方财富 via AkShare |\n| 持仓排名 | 上期所/大商所/郑商所 via AkShare |\n| 新闻资讯 | 上海金属网 via AkShare |\n\n## 配置文件\n\n```yaml\n# config/user.yaml 可覆盖默认值\ndata:\n  default_lookback_days: 180   # 缩短历史窗口加快首次运行\n  use_cache: true               # 启用本地缓存\n\nrisk:\n  max_position_per_symbol: 0.20  # 单品种最大仓位\n  atr_stop_multiplier: 2.5       # ATR 止损倍数\n```\n\n## License\n\nMIT\n\nFile v2.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.15\",\n  \"publishedAt\": 1779022166740\n}\n\nFile v2.0.15:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\"\n\nFile v2.0.15:config/user.yaml\n\n# ============================================================\n# 用户自定义配置（会覆盖 core.yaml 的同名项）\n# 复制本文件到同目录下使用，根据自己的环境修改\n# ============================================================\n\n# ── 代理配置（在 OpenClaw 上部署时无需代理，留空即可）────────\n# proxy:\n#   enabled: true\n#   http: \"http://your-proxy-host:port\"\n#   https: \"http://your-proxy-host:port\"\n\n# ── 数据配置（可选）──────────────────────────────────────────\n# data:\n#   default_lookback_days: 180   # 缩短历史窗口可加快首次运行\n#   use_cache: true\n\nFile v2.0.15:manifest.yaml\n\nname: Trading_Agents_for_Futures\r\nversion: \"2.0.16\"\r\ndescription: \"期货TradingAgents六维分析系统 - 纯规则引擎，零API Key依赖。通过AkShare获取公开行情数据。\"\r\nauthor: \"TradingAgent Team\"\r\nlicense: MIT\r\nhomepage: \"\"\r\nrepository: \"\"\r\n\r\n# OpenClaw Skill 元数据\r\ntype: skill\r\ntags:\r\n  - futures\r\n  - trading\r\n  - ai-analysis\r\n  - multi-agent\r\n  - quantitative\r\n  - finance\r\n\r\n# 依赖\r\npython_version: \">=3.10\"\r\ndependencies:\r\n  - akshare>=1.14.0,<2.0.0\r\n  - pandas>=2.0.0,<3.0.0\r\n  - numpy>=1.24.0,<3.0.0\r\n  - pyarrow>=12.0.0,<20.0.0\r\n  - pyyaml>=6.0\r\n  - requests>=2.28.0\r\n  - python-dotenv>=1.0.0\r\n\r\n# 环境变量（无需任何 API Key）\r\nenv_vars: []\r\n\r\n# 安装提示\r\ninstall:\r\n  hint: \"python setup.py  # auto-installs deps, then: python main.py -s RB\"\r\n\r\n# 技能入口\r\nentry:\r\n  main: \"main.py\"\r\n  skills_dir: \"skills\"\r\n  core_dir: \"core\"\r\n  config_dir: \"config\"\r\n\r\n# 可用技能列表\r\navailable_skills:\r\n  - name: technical_analysis\r\n    description: \"技术面分析 - K线形态、趋势指标、动量信号\"\r\n    entry: \"skills/technical_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: basis_analysis\r\n    description: \"基差分析 - 现货价格与期货价格偏离度评估\"\r\n    entry: \"skills/basis_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: term_structure_analysis\r\n    description: \"期限结构分析 - 跨期价差、展期收益与市场结构判断\"\r\n    entry: \"skills/term_structure_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: inventory_analysis\r\n    description: \"库存仓单分析 - 库存周期、仓单变化与供需平衡评估\"\r\n    entry: \"skills/inventory_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: positioning_analysis\r\n    description: \"持仓席位分析 - 主力席位、净多净空、拥挤度与持仓结构\"\r\n    entry: \"skills/positioning_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: news_sentiment_analysis\r\n    description: \"新闻情绪分析 - 期货相关资讯抓取与市场情绪评分\"\r\n    entry: \"skills/news_analysis.py\"\r\n    category: analysis\r\n    \r\n  - name: debate_risk_decision\r\n    description: \"辩论风控决策 - 多空辩论、风控评估与综合投资决策\"\r\n    entry: \"skills/debate_risk_decision.py\"\r\n    category: decision\r\n\r\n# 配置文件\r\nconfig:\r\n  default_config: \"config/core.yaml\"\r\n  user_config: \"config/user.yaml\"\n\nFile v2.0.15:requirements.txt\n\n# ============================================================\n# Trading_Agents_for_Futures - 纯本地规则引擎\n# 零外部 API 依赖，pip install 一行搞定\n# ============================================================\n\n# 期货数据源\nakshare>=1.14.0,<2.0.0\n\n# 数据处理\npandas>=2.0.0,<3.0.0\nnumpy>=1.24.0,<3.0.0\npyarrow>=12.0.0,<20.0.0\n\n# 配置文件\npyyaml>=6.0\npython-dotenv>=1.0.0\n\n# HTTP 请求（AkShare 内部使用）\nrequests>=2.28.0\n\nArchive v2.0.14: 20 files, 68856 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27265b), core/data_utils.py (41688b), main.py (9943b), manifest.yaml (2379b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26237b), skills/__init__.py (0b), skills/basis_analysis.py (8713b), skills/debate_risk_decision.py (42322b), skills/inventory_analysis.py (15505b), skills/news_analysis.py (7555b), skills/positioning_analysis.py (19618b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (8790b), _meta.json (146b)\n\nFile v2.0.14:SKILL.md\n\n---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 纯结构化 JSON 指标，供 AI Agent 自行解读\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key 依赖，装完即用。首次运行通过 AkShare 从公开数据源下载历史数据。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, change_20d_pct\n\n**分析框架（你需要做的）：**\n\n1. **均线系统判断：** 价格 > MA20 → 多头格局；价格 < MA20 → 空头格局。MA5 > MA20 > MA60 → 多头排列，趋势强势。MA5 < MA20 < MA60 → 空头排列。\n2. **趋势强度评估：** MACD > Signal 且 Hist > 0 → 动能偏多；MACD < Signal 且 Hist < 0 → 动能偏空。change_20d_pct 反映近期趋势方向和幅度。\n3. **超买超卖识别：** RSI > 70 → 超买，回调风险；RSI < 30 → 超卖，反弹可能。RSI > 80 视为极度超买/超卖。\n4. **布林带位置：** 价格接近 BB_Upper → 高估/阻力；接近 BB_Lower → 低估/支撑。\n5. **波动率评估：** ATR14 / close 的比值衡量波动率。>2% 为高波动，<1% 为低波动。\n6. **量仓配合：** 价格涨 + 持仓增 → 多头主动；价格涨 + 持仓减 → 空头回补。偏离 5 万手以上视为显著变化。\n\n---\n\n### 二、基差分析 (`basis_analysis`)\n\n**数据指标：** spot_price, futures_price, current_basis, basis_pct, latest_basis, basis_zscore_180d, basis_slope_20d, structure(contango/backwardation/flat)\n\n**分析框架（你需要做的）：**\n\n1. **基差率绝对判断：** basis_pct > 5% → 期货大幅升水(Contango)，现货供应充裕，偏空。basis_pct < -5% → 期货大幅贴水(Backwardation)，现货偏紧，偏多。±2% 以内视为合理区间。\n2. **历史分位判断：** Z-score > 2 → 基差处于历史极高（期货升水极端），回归压力大。Z-score < -2 → 历史极低（现货升水极端）。\n3. **基差趋势：** slope_20d > 0 → 基差走强（现货相对走强），偏多。slope_20d < 0 → 基差走弱（期货相对走强），偏空。\n4. **期限结构与基差联动：** Backwardation + 基差 Z-score 低位 → 现货紧张信号加强。Contango + 基差 Z-score 高位 → 库存充裕信号加强。\n\n---\n\n### 三、期限结构分析 (`term_structure_analysis`)\n\n**数据指标：** structure(contango/backwardation/flat), front_contract/back_contract, front_price/back_price, spread, spread_pct, carry_score, 各合约间价差(spread_xxx)\n\n**分析框架（你需要做的）：**\n\n1. **结构类型判断：** Contango（远月 > 近月）→ 库存充裕、持有成本定价、偏空；Backwardation（近月 > 远月）→ 现货紧张、便利收益 > 持有成本、偏多。\n2. **展期收益：** Contango → 多头展期亏损（展期收益为负），空头有利；Backwardation → 多头展期获利（展期收益为正），多头有利。\n3. **价差幅度解读：** spread_pct > 5% → 结构信号强烈。spread_pct < 2% → 结构信号弱，市场可能平坦。\n4. **Full Carry 理论验证：** 实际价差 > 理论 Full Carry → 存在仓储利润空间，库存意愿强 → 偏空。实际价差 < Full Carry → 供给不足信号 → 偏多。\n5. **跨合约价差异常：** 某两个合约间价差异常放大 → 可能存在结构性供需扭曲，需要结合品种特性判断。\n\n---\n\n### 四、库存仓单分析 (`inventory_analysis`)\n\n**数据指标：** latest_inventory(吨), inv_change_wow(%), inv_change_mom(%), inv_zscore_180d, latest_warehouse_receipt(吨), wr_change_5d(吨)\n\n**分析框架（你需要做的）：**\n\n1. **历史分位（Z-score）是核心信号：** Z > 2.5 → 库存历史极高，供给严重过剩，强看空。Z > 1.5 → 偏高，偏空。Z < -2.5 → 库存历史极低，供给紧张，强看多。Z < -1.5 → 偏低，偏多。±0.5 附近 → 供需平衡。\n2. **周度变化反映边际变化：** WoW > 15% → 短期供给激增，利空。WoW < -15% → 快速去库，利多。注意节假日和交割前后可能出现的异常值。\n3. **月度变化反映趋势：** MoM > 20% → 月度累库趋势，偏空。MoM < -20% → 趋势性去库，偏多。\n4. **仓单变化补充验证：** 仓单增加 + 库存增加 → 可交割品充裕，空头交货方便。仓单减少 + 库存低位 → 虚实盘比高，近月逼仓风险。\n5. **库存周期理论：** 库存高位 + 价格低位 → 被动去库初期；库存低位 + 价格高位 → 被动累库初期。结合价格判断周期阶段。\n6. **投机性库存 vs 真实消费：** 若库存增加伴随价格下跌 → 可能是被动累库（需求弱），信号更偏空。\n\n---\n\n### 五、持仓席位分析 (`positioning_analysis`)\n\n**数据指标：** net_position(手), net_change(手), concentration_idx, top20_long(手), top20_short(手), top20_long_pct, top20_short_pct, data_points, key_players(可选的乾坤/摩根等外资席位标记)\n\n**分析框架（你需要做的）：**\n\n#### A. 蜘蛛网策略 —— 捕捉\"聪明钱\"动向\n\n基于前 20 名会员持仓变动数据追踪机构资金意图：\n\n1. **蜘蛛网信号判断（核心）：** \n   - 多头增仓 + 空头减仓（dB>0, dS<0）→ **强烈看多**，机构主动进攻\n   - 多头减仓 + 空头增仓（dB<0, dS>0）→ **强烈看空**，机构撤离\n   - 多空同向 → 需结合净变化量判断。净变化 > +5000 → 偏多；< -5000 → 偏空\n2. **净持仓绝对值：** net > 10000 → 机构明显看涨。3000~10000 → 偏多。负值同理反向。\n3. **净持仓变化量：** net_change > 8000 → 资金积极做多（强烈信号）。net_change < -8000 → 积极做空。±3000 以内正常波动。\n\n#### B. 聪明钱分析\n\n1. **前 20 会员多空比：** long_pct > 65% → 主力一致看多（注意拥挤风险）。< 35% → 主力一致看空。45%~55% → 多空均衡。\n2. **持仓效率（OI/Volume）：** OI/Volume 高 → 机构深度参与，信号可信度↑。OI/Volume 低 → 散户主导，信号噪音多。\n3. **关键玩家追踪：** 如果 key_players 字段出现了\"乾坤\"\"摩根\"\"永安\"等外资或顶级席位，这些席位的动向权重应额外加 0.2x（因为这些席位通常代表产业套保或宏观对冲资金，准确率更高）。\n\n#### C. 持仓集中度分析（HHI指数）\n\n1. **concentration_idx 解读：** > 0.3 → 高集中度，持仓集中在少数席位，方向性风险极大（一方拥挤随时可能反转）。< 0.1 → 高度分散，市场无单边共识。\n2. **多空集中度差异：** 如果多头集中度 >> 空头集中度 → 多头拥挤在少数席位，一旦撤退将引发踩踏。空头集中度 >> 多头 → 轧空风险。\n3. **集中度趋势：** 集中度连续上升 → 方向共识加强（同向信号）。集中度突然下降 → 主力分歧加大（反转预警）。\n\n#### D. 散户反向策略\n\n1. 如果前 20 会员极端偏多，但成交量萎缩 → 机构锁仓，散户追涨接盘 → **偏空信号**。\n2. 如果前 20 会员极端偏空，但成交量萎缩 → 机构锁仓，散户恐慌抛售 → **偏多信号**。\n3. 散户席位（成交量小但数量多的席位）动向与前 20 相反 → 反向指标确认。\n\n#### E. 拥挤度风险策略\n- 前 20 极度偏多（>70%）+ 价格在60日高位 → 多头拥挤，回调风险↑\n- 前 20 极度偏空（<30%）+ 价格在60日低位 → 空头拥挤，轧空风险↑\n- 拥挤度 > 0.3 + 持仓量创60日新高 → 极端拥挤信号，应降低仓位\n\n---\n\n### 六、新闻情绪分析 (`news_analysis`)\n\n**数据指标：** total_news_count, bullish_news_count, bearish_news_count, neutral_news_count, sentiment_ratio\n\n**分析框架（你需要做的）：**\n\n1. **情绪比率：** sentiment_ratio > 0.2 → 利多新闻占优势。> 0.5 → 强烈偏多。< -0.2 → 利空。<-0.5 → 强烈偏空。\n2. **新闻总量：** total < 5 → 信息不足，此维度权重应降低。> 20 → 信息充裕，可信度高。\n3. **中性占比：** neutral > 60% → 市场缺乏明确方向，情绪以观望为主。\n\n---\n\n## 核心原则：绝不空缺\n\n**API 拿不到的，AI 搜。都拿不到的，标 N/A。但永远不空着。**\n\n```\n         ┌─ API 命中了 ──→ 输出，标记 \"source\": \"api\"\n数据需求 ─┤\n         └─ API 失败/不足 ──→ AI 搜索补 ──→ 搜到了 ──→ 输出，标记 \"source\": \"ai_search\"\n                                         └─ 搜不到 ──→ 输出，标记 \"status\": \"N/A\"\n```\n\n### 硬数据（不能编）\n\n价格、持仓手数、库存吨数、基差数值。**这些数字必须来自 API 或官方来源。** 不能编造。\n\n### 软数据（AI 搜）\n\n新闻事件、政策变化、天气影响、地缘风险、行业开工率。**这些本身就是信息解读，AI 搜索比 keyword matching 强 10 倍。**\n\n---\n\n## AI 搜索执行指南\n\n### 触发条件\n\n当**任何维度**的 `analysis_details` 中出现以下信号时，你（AI Agent）必须立即启动搜索：\n\n| 信号 | 含义 | 行动 |\n|------|------|------|\n| `\"data_source\": \"insufficient\"` | API 有数据但太弱 | 搜索补充，API 和 AI 搜索结果合并输出 |\n| `\"status\": \"empty\"` | API 完全无数据 | AI 搜索成为该维度唯一数据源 |\n| `\"soft_data_hint\"` 字段存在 | 该维度给了搜索指引 | 按指引关键词搜索 |\n| `coverage.available < coverage.total` | 有维度缺失 | 检查缺失维度并搜索 |\n\n### 各品类搜索关键词\n\n| 品类 | 搜索模板 | 重点关注 |\n|------|---------|---------|\n| 黑色系(RB/HC/I/J/JM) | `{品种名} {月份}月 2026 期货 库存 开工率 政策 检修` | Mysteel、钢厂检修、房地产政策、铁矿石发运 |\n| 贵金属(AU/AG) | `沪{金/银} {月份}月 2026 COMEX库存 美联储 地缘 光伏需求` | COMEX/上金所库存、CFTC持仓、避险事件、工业需求 |\n| 有色金属(CU/AL/ZN) | `沪{铜/铝/锌} {月份}月 2026 库存 LME 升贴水 矿端` | 三大交易所库存、TC/RC、矿端停产 |\n| 农产品(M/RM/Y/CF/SR) | `{豆粕/菜粕/豆油/白糖} {月份}月 2026 进口 天气 库存 USDA` | USDA报告、海关数据、压榨利润、天气模型 |\n| 能源化工(SC/FU/MA/TA/PP) | `{品种} {月份}月 2026 开工率 装置检修 港口库存 OPEC` | 装置动态、开工率、港口库存、原油政策 |\n\n### 搜索要求\n\n- 按时间排序，优先 **48 小时内**信息\n- **每条标注来源网址和发布日期**\n- **绝不编造数字**\n- 拿不准的信息，明确标注\"未经核实\"\n\n### 搜索后输出格式\n\n搜索完成后，将搜索结果合并入对应维度的 JSON：\n\n```json\n\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}\n```\n\n---\n\n## 数据缺失处理\n\n| 情况 | 处理 |\n|------|------|\n| API 有数但不足（quality: insufficient） | API 数据 + AI 搜索补充，合并输出，`data_source: \"mixed\"` |\n| API 完全无数（status: empty） | AI 搜索补位，`data_source: \"ai_search\"` |\n| AI 搜索也找不到 | 标 `\"status\": \"N/A\"`, `\"reason\": \"API 不支持，AI 搜索后仍未找到\"` |\n| 最终仍有维度缺失 | 该维度权重 × 0.8，整体置信度下调一档，报告中说明 |\n\n---\n\n## 数据来源标注规范\n\n**输出的每个数字都标来源。三类标记，互不混淆。**\n\n| 标记 | 含义 |\n|------|------|\n| `\"source\": \"api\"` | 来自 AKShare 等数据接口 |\n| `\"source\": \"ai_search\"` | 来自 AI Agent 搜索 |\n| `\"source\": \"computed\"` | API 原始数据本地计算得出（如 Z-score、基差率） |\n\n### 输出模板\n\n```json\n{\n  \"symbol\": \"AG\",\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"data_source\": \"api\",\n      \"RSI14\": 47.76, \"MACD\": 329, \"close\": 19304,\n      \"MA5\": 19280, \"MA20\": 19350, \"trend_20d\": \"down\"\n    },\n    \"basis_analysis\": {\n      \"data_source\": \"api\",\n      \"spot_price\": 19250, \"futures_price\": 19304,\n      \"basis_pct\": -0.3, \"basis_zscore_180d\": -2.02,\n      \"structure\": \"backwardation\"\n    },\n    \"inventory_analysis\": {\n      \"data_source\": \"mixed\",\n      \"api\": {\"status\": \"N/A\", \"reason\": \"AKShare 不支持 AG 库存数据\"},\n      \"ai_search\": {\n        \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n        \"content_count\": 8,\n        \"key_findings\": [\"上金所白银库存 1,782 吨\", \"COMEX 库存 11,200 吨\"],\n        \"assessment\": \"库存中等偏低，支撑银价\"\n      }\n    },\n    \"positioning_analysis\": {\n      \"data_source\": \"api\",\n      \"net_position\": 15200, \"net_change\": 3200,\n      \"top20_long_pct\": 0.62, \"key_players\": [...]\n    },\n    \"news_analysis\": {\n      \"data_source\": \"mixed\",\n      \"api\": {\"quality\": \"insufficient\", \"total_news_count\": 3},\n      \"ai_search\": {\n        \"search_query\": \"沪银 2026年5月 美联储 光伏 地缘\",\n        \"content_count\": 15,\n        \"sentiment_score\": 0.45,\n        \"key_findings\": [\"美联储6月降息预期升温\", \"光伏用银需求同比+12%\"]\n      }\n    },\n    \"term_structure_analysis\": {\n      \"data_source\": \"api\",\n      \"structure\": \"contango\", \"front_spread\": 23, \"structure_summary\": \"...\"\n    }\n  }\n}\n```\n\n> **所有数字必须是 JSON 原生类型**（number/string/boolean），不能是 numpy/pandas 特殊类型。\n\n---\n\n## 综合决策框架\n\n### 动态权重系统\n\n本引擎内部使用三维动态权重（品种品类 × 各模块置信度 × 市场状态）：\n\n| 品类 | 核心驱动模块 |\n|------|------------|\n| 黑色系(RB/HC/I/J/JM) | 库存(1.3x) > 持仓(1.2x) > 技术面(1.0x) |\n| 贵金属(AU/AG) | 技术面(1.3x) > 持仓(1.2x) > 新闻(1.1x) |\n| 有色金属(CU/AL/ZN/NI) | 期限结构(1.2x) > 基差(1.1x) > 库存(1.1x) |\n| 化工(MA/TA/EG/PP等) | 基差(1.2x) > 期限结构(1.2x) > 技术面(1.0x) |\n| 农产品(M/RM/Y/CF/SR等) | 库存(1.3x) > 新闻(1.2x) > 基差(1.1x) |\n| 能源(SC/FU/LU/PG) | 新闻(1.3x) > 技术面(1.0x) > 期限结构(1.1x) |\n\n### 市场状态自适应加成\n\n- **高波动**（ATR/close > 2%）→ 技术面+10%，新闻情绪+50%\n- **趋势市场**（20日有明确方向）→ 技术面+15%\n- **低波动/震荡**（ATR/close < 1%）→ 基差+10%，库存+10%\n\n### 决策选择框架\n\n拿到 6 个维度的结构化数据后，你应该：\n\n1. **逐维度评估：** 按上述方法论对每个维度独立判断多空方向和置信度。\n2. **加权聚合：** 考虑上述动态权重，不要简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信。\n3. **分歧度评估：** 如果多空维度数量接近（差距 ≤1），信号不可靠，建议\"观望\"。\n4. **极端信号优先：** 当某个维度出现极端信号（Z-score > 2.5 或 RSI > 80），该维度的权重应该进一步提升。\n5. **仓位与风险匹配：** 分歧度越高 → 仓位越低。信号一致度越高 → 可适当加仓。最大仓位不超过 20%。\n\n---\n\n## 风控评估框架 (`--decision` 模式输出中包含 `risk_assessment`)\n\n当运行 `--decision` 模式时，输出 JSON 的 `risk_assessment` 字段包含完整的风控评估结果。你需要理解并整合这些信息：\n\n### 风控输出字段\n\n| 字段 | 含义 |\n|------|------|\n| `risk_level` | 风险等级：low / medium / high |\n| `approval` | 审批状态：approved / conditionally_approved / rejected |\n| `max_position_pct` | 风控允许的最大仓位 |\n| `max_risk_score` | 综合风险评分（0~3，越高越危险） |\n| `risk_factors` | 触发的风险因素列表 |\n| `conditions` | 交易条件（必须满足才能执行） |\n| `stop_loss_advice` | 止损建议 |\n| `position_advice` | 仓位建议 |\n\n### 五维风险扫描\n\n风控引擎从五个维度独立评估风险，你解读时应对每个维度独立关注：\n\n1. **分歧度风险：** 多空分歧 ≥ 50% → 极高风险；30%~50% → 高风险；15%~30% → 可控。分歧度高时即使方向正确也应大幅降低仓位。\n2. **信号强度风险：** 综合信号信心 < 20% → 可靠性极低，不应交易；20%~28% → 偏弱，仅适合极小仓位试探。\n3. **方向一致性风险：** 多空维度票数接近（差距 ≤ 1）→ 没有共识，强制观望。多空各半时任何单向押注都是赌博。\n4. **中性维度风险：** 超过一半维度保持中性 → 信息严重不足，基于不完整信息的决策比不决策更危险。\n5. **仓位结构风险：** 做多时需检查库存/期限/持仓等空头核心维度是否同时给出反向信号。如果一个核心维度强烈反向，应降低仓位至少 50%。\n\n### 风控审批规则\n\n| 审批结果 | 含义 | 你的行动 |\n|---------|------|---------|\n| `approved` | 通过 | 可按正常仓位执行 |\n| `conditionally_approved` | 条件批准 | 必须列出交易前置条件（如\"必须严格止损\"\"建议分批建仓\"），条件不满足则不执行 |\n| `rejected` | 否决 | 强制 hold，任何情况下不得建议交易。即使 6 维度全部看涨，风控一票否决也必须服从 |\n\n### 风控总监立场\n\n风控总监独立于交易决策链，**不关心方向，只关心风险**。读取风控报告时你应该：\n- 风控否决 = 绝对不交易，这不是建议而是禁令\n- 风控降仓 = 无论多头多强烈，仓位不得超过风控上限\n- 风控条件 = 必须在你的最终建议中逐条列出并强调\n\n---\n\n## CIO 最终决策框架\n\n在综合 6 维度分析 + 多空辩论 + 风控评估后，你（作为 AI Agent 的决策者角色）需要输出最终决策。参考以下框架：\n\n### 决策输出必须包含\n\n| 要素 | 要求 |\n|------|------|\n| **方向判断** | long / short / neutral，必须明确，不能模糊 |\n| **操作建议** | buy / sell / hold，与方向对应 |\n| **信心水平** | 0%~100%，基于加权信号强度和分歧度。**信心 < 25% 时必须建议观望或极低仓位** |\n| **建议仓位** | 占资金百分比。分歧度 ≥ 30% → 不超过 5%；分歧度 < 15% + 信号强 → 可到 15% |\n| **止损位** | 基于 ATR 或关键支撑/阻力。一般品种 1.5%~3%，高波动品种可放宽到 4% |\n| **止盈位** | 参考最近阻力/支撑，或固定盈亏比（≥2:1） |\n| **监控要点** | 列出最关键的风险因子和需要持续关注的指标变化 |\n\n### 否决机制（必须遵守）\n\n```\n风控 rejection → 最终决策强制 hold，不可覆盖\n信心 < 15% → 强制 hold，即使方向明确\n仓位超过风控 max_position_pct → 以风控上限为准\n```\n\n### 多空辩论报告解读指南\n\n`--decision` 模式输出的 `reasoning` 数组包含完整的多空辩论实录，结构为：\n\n1. **序章** — 以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **逐轮辩论** — 6 个维度依次展开，每个维度有多头/空头代表发言\n3. **裁判长裁决** — 综合信号强度 + 分歧度 + 方向\n4. **风控审核** — 独立风控评估\n5. **CIO 决策** — 方向/仓位/止损/止盈\n\n解读时注意裁判长的用词等级：\n- \"合上案卷\" → 信号明确，可执行\n- \"犹豫片刻\" → 信号偏弱但可辨方向，谨慎执行\n- \"沉吟片刻\" → 方向不明确，建议观望\n- \"摇头\" → 分歧过大，强制观望\n\n---\n\n## 支持的品种代码\n\n| 代码 | 品种 | 交易所 | 代码 | 品种 | 交易所 |\n|------|------|--------|------|------|--------|\n| RB | 螺纹钢 | SHFE | HC | 热卷 | SHFE |\n| CU | 沪铜 | SHFE | AL | 沪铝 | SHFE |\n| AU | 沪金 | SHFE | AG | 沪银 | SHFE |\n| M | 豆粕 | DCE | RM | 菜粕 | CZCE |\n| I | 铁矿石 | DCE | J | 焦炭 | DCE |\n| MA | 甲醇 | CZCE | TA | PTA | CZCE |\n| SC | 原油 | INE | FU | 燃料油 | SHFE |\n| LH | 生猪 | DCE | SR | 白糖 | CZCE |\n\n---\n\n## 注意事项\n\n- 数据时效：期货数据在交易日收盘后更新，分析前确认数据日期\n- 持仓数据：前 20 会员持仓 T+1 日公布\n- 风险提示：输出结果仅供参考，不构成投资建议\n- 缓存位置：所有数据缓存在 `cache/` 目录，删除可重新获取\n\n---\n\n## 分析风格指南\n\n**你的输出形式是\"期货投资决策委员会会议实录\"——六个分析师依次发言，裁判长最终裁决。**\n\n### 核心语言要求\n\n- **纯中文，绝对禁止任何英文单词、缩写或术语。** 用\"远期升水结构\"而非\"contango\"，用\"现货升水\"而非\"backwardation\"，用\"持仓量\"而非\"open interest\"\n- 禁止出现任何 markdown 符号（如 `**`、`#`、`-`），纯文本输出\n- 所有结论必须有具体数字支撑，严禁编造数据\n\n### 角色设定\n\n每个分析维度有一个独立角色，在陈述时使用以下身份和语气：\n\n| 角色 | 口头禅 / 特征 | 语气 |\n|------|-------------|------|\n| **技术面分析师** | \"盯着屏幕猛敲键盘\" | 语速快，数字密集，\"金叉\"\"死叉\"\"超买超卖\"张口就来 |\n| **基差分析师** | \"推了推眼镜\" | 严谨克制，每个结论必带基差率或 Z-score 数值 |\n| **期限结构分析师** | \"翻开跨期价差表\" | 冷静派，用 Full Carry 理论说话，爱算展期收益 |\n| **库存分析师** | \"冷笑一声\" | 只认库存周期理论，看 Z 分位定多空，语气傲慢但每个字都有数据 |\n| **持仓分析师** | \"调出会员持仓排名\" | 追踪\"聪明钱\"，关注前20会员动向，讲究量仓配合 |\n| **新闻分析师** | \"刷着最新资讯\" | 情绪敏感，能从标题里嗅出利多利空，但也坦诚信息不足时不下判断 |\n| **裁判长** | \"合上案卷\" 或 \"摇头\" 或 \"沉吟片刻\" | 权威、克制、不站队。综合各方论述做出最终裁决，给出明确的方向、仓位和止损建议 |\n\n### 辩论结构\n\n1. **序章**：以\"⚔️ 期货投资决策委员会 | XX 多空辩论实录\"开场\n2. **分轮辩论**：六个维度依次展开，每个维度先由多头代表发言，再由空头代表发言\n3. **裁判裁决**：裁判长综合各方论述，指出最关键的分歧点，给出最终判断\n4. **风控审核**：风控总监独立评估风险\n5. **CIO 最终决策**：方向、仓位、止损止盈、监控要点\n\n### 裁决原则\n\n- 不简单数票数。黑色系的库存维度空头信号比农产品新闻维度多头信号更可信\n- 分歧度过高（多空维度数接近）时，选择观望而非强判方向\n- 极端信号（Z-score > 2.5、RSI > 80 等）应被重点强调\n- 最终决策必须包含仓位比例和止损位，不能只给方向不给操作\n\nFile v2.0.14:README.md\n\n# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 简介\n\n本系统有两条运行路径：\n\n- **数据模式**：只获取数据、计算指标、输出结构化 JSON。不做任何方向判断或投资建议。给 AI Agent 或你自己的分析代码用。\n- **决策模式**：在数据基础上运行动态权重多空辩论 → 风控评估 → CIO 综合决策，输出完整的投资建议报告。\n\n## 快速开始\n\n```bash\n# 数据模式（默认）：输出纯指标 JSON\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB --decision\n\n# 批量分析 + 全市场扫描\npython main.py -s RB,CU,M\npython main.py -s ALL\npython main.py -s RB --decision -o report.json\n```\n\n## 功能一览\n\n| 分析模块 | 计算指标 |\n|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB上下轨, ATR14, 成交量均线, 持仓变化 |\n| 基差分析 | 现货-期货基差, 基差率, 180日Z-score, 20日斜率, Contango/Backwardation |\n| 期限结构分析 | 合约价差, 展期结构, 价差%, structure_summary, front_spread |\n| 库存仓单分析 | 库存绝对值, 周/月变化率, 180日Z-score, 仓单量, 5日仓单变化 |\n| 持仓席位分析 | 净持仓, 净持仓变化, 集中度, 前20多空比, key_players（乾坤/摩根等） |\n| 新闻情绪分析 | 利多/利空/中性新闻计数, 情绪比率 |\n| 辩论风控决策 | 动态权重多空辩论 + 风控评估 + CIO决策（仅 `--decision` 模式启用） |\n\n首次运行会自动安装缺失依赖并下载约 1 年历史数据，基差模块约 5~10 分钟。后续运行秒级。\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py                    # 命令行入口\n├── manifest.yaml              # Skill 元数据\n├── requirements.txt           # 只有 6 个核心依赖\n├── SKILL.md                   # 分析框架知识库（给 AI Agent 看）\n├── README.md                  # 本文件（给人类看）\n├── config/\n│   ├── core.yaml              # 默认配置\n│   └── user.yaml              # 用户覆盖\n├── core/\n│   ├── core_engine.py         # 核心引擎（配置、流程、数据类）\n│   └── data_utils.py          # AkShare 数据获取（6 种数据类型）\n└── skills/\n    ├── technical_analysis.py  # 技术面：MA/MACD/RSI/BB/ATR 纯本地计算\n    ├── basis_analysis.py      # 基差：现货-期货偏离度分析\n    ├── term_structure_analysis.py  # 期限结构：Contango/Backwardation\n    ├── inventory_analysis.py  # 库存：Z分位/周月变化/库存周期\n    ├── positioning_analysis.py    # 持仓：净多空/集中度/前20会员\n    ├── news_analysis.py       # 新闻：关键词情绪统计\n    └── debate_risk_decision.py    # 决策：动态权重辩论 + 风控 + 裁决\n```\n\n## 核心特色\n\n- **零 API Key 依赖：** 不调 DeepSeek，不调任何 LLM。纯规则引擎，装完即用。注意：通过 AkShare 从公开数据源下载行情，需要网络。\n- **动态权重系统：** 品种品类 × 置信度 × 市场状态三维自适应\n- **你的框架，你的判断：** 系统输出结构化 JSON + 规则信号，最终解读和报告由你（或你的 AI Agent）完成\n\n## 数据来源\n\n| 数据类型 | 来源 |\n|---------|------|\n| 期货价格(K线) | 新浪财经 via AkShare |\n| 基差(现货价格) | 100ppi.com via AkShare |\n| 库存数据 | 东方财富 via AkShare |\n| 持仓排名 | 上期所/大商所/郑商所 via AkShare |\n| 新闻资讯 | 上海金属网 via AkShare |\n\n## 配置文件\n\n```yaml\n# config/user.yaml 可覆盖默认值\ndata:\n  default_lookback_days: 180   # 缩短历史窗口加快首次运行\n  use_cache: true               # 启用本地缓存\n\nrisk:\n  max_position_per_symbol: 0.20  # 单品种最大仓位\n  atr_stop_multiplier: 2.5       # ATR 止损倍数\n```\n\n## License\n\nMIT\n\nFile v2.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.14\",\n  \"publishedAt\": 1779019288045\n}\n\nFile v2.0.14:config/core.yaml\n\n# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fal\n\nArchive v2.0.13: 20 files, 66550 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27265b), core/data_utils.py (38939b), main.py (9943b), manifest.yaml (2379b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26237b), skills/__init__.py (0b), skills/basis_analysis.py (7385b), skills/debate_risk_decision.py (42322b), skills/inventory_analysis.py (14143b), skills/news_analysis.py (6478b), skills/positioning_analysis.py (18021b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (7136b), _meta.json (146b)\n\nArchive v2.0.12: 20 files, 65655 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (27265b), core/data_utils.py (38939b), main.py (9943b), manifest.yaml (2379b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26237b), skills/__init__.py (0b), skills/basis_analysis.py (5823b), skills/debate_risk_decision.py (42322b), skills/inventory_analysis.py (12524b), skills/news_analysis.py (6478b), skills/positioning_analysis.py (18021b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (6689b), _meta.json (146b)\n\nArchive v2.0.11: 20 files, 63401 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (26830b), core/data_utils.py (37337b), main.py (9943b), manifest.yaml (2379b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26237b), skills/__init__.py (0b), skills/basis_analysis.py (5823b), skills/debate_risk_decision.py (39389b), skills/inventory_analysis.py (12524b), skills/news_analysis.py (6397b), skills/positioning_analysis.py (15549b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (6689b), _meta.json (146b)\n\nArchive v2.0.10: 20 files, 63404 bytes\n\nFiles: config/core.yaml (2046b), config/user.yaml (734b), core/__init__.py (0b), core/core_engine.py (26830b), core/data_utils.py (37337b), main.py (9943b), manifest.yaml (2379b), README.md (4426b), requirements.txt (460b), setup.py (972b), SKILL.md (26237b), skills/__init__.py (0b), skills/basis_analysis.py (5823b), skills/debate_risk_decision.py (39404b), skills/inventory_analysis.py (12524b), skills/news_analysis.py (6397b), skills/positioning_analysis.py (15549b), skills/technical_analysis.py (11220b), skills/term_structure_analysis.py (6689b), _meta.json (146b)","readmeExcerpt":"Skill: Trading_Agents_for_Futures Owner: haoge10241024 Summary: 期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多... Tags: latest:2.0.19 Version history: v2.0.19 | 2026-05-22T09:02:56.522Z | user No code or documentation changes detected in this version. - No updates or modifications found in any files. - SKILL","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL"},{"language":"json","snippet":"{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}"},{"language":"text","snippet":"┌─ API 命中     ──→ 输出数据，标记 data_source: \"api\"\n数据需求 ─┤\n         └─ API 失败      ──→ 生成 data_gap_report ──→ fillable? ──→ AI 搜 → 回填 ai_fill (参与评分)\n                                                    ──→ direction_only? ──→ AI 搜 → 回填 ai_fill (×0.30~0.50 降权)\n                                                    ──→ 每次搜不到    ──→ 标 status: \"empty\"，权重保持 0"},{"language":"json","snippet":"{\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      {\n        \"skill\": \"news_analysis\",\n        \"skill_cn\": \"新闻情绪\",\n        \"fillability\": \"fillable\",\n        \"ai_fill_weight_multiplier\": 0.90,\n        \"search_actions\": [\n          {\"query\": \"JD 鸡蛋 期货 新闻 2026年5月\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"bullish_news_count\", \"bearish_news_count\", \"sentiment_ratio\"],\n          \"cannot_fill\": []\n        }\n      },\n      {\n        \"skill\": \"term_structure_analysis\",\n        \"skill_cn\": \"期限结构\",\n        \"fillability\": \"direction_only\",\n        \"ai_fill_weight_multiplier\": 0.30,\n        \"search_actions\": [\n          {\"query\": \"JD 期货 期限结构 contango backwardation\", \"source\": \"web\", \"priority\": \"high\"}\n        ],\n        \"ai_fill_schema\": {\n          \"fields\": [\"structure\"],\n          \"cannot_fill\": [\"contracts\", \"prices\", \"spread_pct\"]\n        }\n      }\n    ]\n  }\n}"},{"language":"json","snippet":"\"ai_fill\": {\n  \"filled_at\": \"2026-05-18T12:00:00\",\n  \"source\": \"web_search\",\n  \"fillability_tier\": \"fillable\",\n  \"weight_multiplier\": 0.90,\n  \"confidence\": \"high\",\n  \"data\": {\n    \"bullish_news_count\": 3,\n    \"bearish_news_count\": 1,\n    \"sentiment_ratio\": 0.2\n  },\n  \"urls\": [\"https://...来源URL...\"],\n  \"note\": \"搜索结果摘要\"\n}"},{"language":"json","snippet":"\"inventory_analysis\": {\n  \"data_source\": \"mixed\",\n  \"api\": {\n    \"status\": \"N/A\",\n    \"reason\": \"AKShare 不支持 AG 库存数据\"\n  },\n  \"ai_search\": {\n    \"search_query\": \"沪银 库存 上金所 注册仓单 2026年5月\",\n    \"content_count\": 8,\n    \"key_findings\": [\n      \"上金所白银库存 1,782 吨，环比-3.2%（来源：上金所官网，5月16日）\",\n      \"COMEX 白银库存 11,200 吨（来源：CME Group，5月15日）\"\n    ],\n    \"assessment\": \"库存处于中等偏低水平，对银价构成支撑\"\n  }\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: Trading_Agents_for_Futures\ndescription: |\n  期货六维分析数据引擎。两种运行模式：\n  (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令）\n  (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多空辩论 + 风控 + CIO决策报告\n  零 API Key，纯规则引擎。API 缺失时自动生成 search_actions，AI Agent 可按 fillability 回填 ai_fill 槽位。\nagent_created: true\n---\n\n# Trading_Agents_for_Futures — 期货分析数据引擎\n\n> **你是哪种用户？根据你的身份选择对应模式。**\n\n| 如果你 | 用这个命令 | 你会得到 |\n|--------|-----------|---------|\n| **是 AI Agent**（Kimi/Claude/GPT-4 等），需要结构化数据自己分析判断 | `python main.py -s RB` | 纯指标 JSON（MA/MACD/RSI/Z-score/净持仓...），无方向判断 |\n| **是人类交易者**，需要直接看\"多空辩论报告 + 操作建议\" | `python main.py -s RB --decision` | 指标数据 + 口语化多空辩论 + 裁判长裁决 + 仓位/止损建议 |\n\n---\n\n## 快速开始\n\n```bash\n# 默认：数据模式（给 AI Agent 用）\npython main.py -s RB\n\n# 决策模式：辩论 + 风控 + CIO 建议（给人类看）\npython main.py -s RB --decision\n\n# 批量分析多个品种\npython main.py -s RB,CU,M\n\n# 全市场扫描 38 个品种\npython main.py -s ALL\n```\n\n执行后输出纯 JSON（字段含义见下文）。首次运行会自动下载约 1 年历史数据，耗时 5~10 分钟；后续秒级。\n\n---\n\n## 输出 JSON 结构\n\n```json\n{\n  \"symbol\": \"RB\",\n  \"timestamp\": \"2026-05-14T15:43:59\",\n  \"success\": true,\n  \"analysis_details\": {\n    \"technical_analysis\": {\n      \"close\": 3257.0,\n      \"MA5\": 3266.8,\n      \"MA20\": 3192.1,\n      \"MA60\": 3131.7,\n      \"EMA20\": 3207.3,\n      \"MACD\": 37.8,\n      \"MACD_Signal\": 30.8,\n      \"MACD_Hist\": 7.0,\n      \"RSI14\": 70.5,\n      \"BB_Upper\": 3312.0,\n      \"BB_Middle\": 3192.1,\n      \"BB_Lower\": 3072.1,\n      \"ATR14\": 30.2,\n      \"VOL_MA20\": 685669,\n      \"OI_delta\": -49216,\n      \"trend_20d\": \"up\",\n      \"change_20d_pct\": 5.1,\n      \"data_points\": 245\n    },\n    \"basis_analysis\": {\n      \"spot_price\": 3280.0,\n      \"futures_price\": 3260.0,\n      \"current_basis\": -20.0,\n      \"basis_pct\": -0.6,\n      \"basis_zscore_180d\": -0.8,\n      \"structure\": \"backwardation\"\n    },\n    \"term_structure_analysis\": {\n      \"front_contract\": \"RB2605\",\n      \"back_contract\": \"RB2704\",\n      \"front_price\": 3150,\n      \"back_price\": 3307,\n      \"spread\": 157,\n      \"spread_pct\": 5.0,\n      \"structure\": \"contango\"\n    },\n    \"inventory_analysis\": {\n      \"latest_inventory\": 520000,\n      \"inv_change_wow\": 0.7,\n      \"inv_change_mom\": -2.3,\n      \"inv_zscore_180d\": 1.6,\n      \"latest_warehouse_receipt\": 82000,\n      \"wr_change_5d\": 1500\n    },\n    \"positioning_analysis\": {\n      \"net_position\": -3367,\n      \"net_change\": -3466,\n      \"concentration_idx\": 0.0068,\n      \"top20_long\": 245143,\n      \"top20_short\": 241185,\n      \"top20_long_pct\": 0.5041,\n      \"top20_members_count\": 20\n    },\n    \"news_analysis\": {\n      \"total_news_count\": 10,\n      \"bullish_news_count\": 1,\n      \"bearish_news_count\": 0,\n      \"neutral_news_count\": 9,\n      \"sentiment_ratio\": 0.1\n    }\n  }\n}\n```\n\n> **输出是纯指标字典，不含任何方向判断、置信度评分、辩论文本。**\n> 每个 skill 的本地规则逻辑（`_rule_based_signal`）仍在内部运行但不对外暴露。\n\n---\n\n## 六大分析维度 & 方法论框架\n\n**你是 AI 分析师，以下是你可以用来解读数据的完整方法论。**\n\n---\n\n### 一、技术面分析 (`technical_analysis`)\n\n**数据指标：** close, MA5/MA20/MA60, EMA20, MACD/Signal/Hist, RSI14, BB_Upper/Middle/Lower, ATR14, VOL_MA20, OI_delta, trend_20d, c"},{"path":"README.md","content":"# Trading_Agents_for_Futures\n\n> 期货六维分析数据引擎 — 纯规则引擎，零 API Key 依赖。通过 AkShare 从公开数据源获取行情，覆盖 48 个期货品种。\n\n## 两种使用模式\n\n| 模式 | 命令 | 适合谁 | 输出 |\n|------|------|--------|------|\n| **数据模式**（默认） | `python main.py -s RB` | AI Agent / 量化程序 | 纯指标 JSON + 数据缺口报告，不做方向判断 |\n| **决策模式** | `python main.py -s RB --decision` | 人类交易者 | 指标 + 数据来源追溯 + 口语化多空辩论 + 风控 + CIO 仓位建议 |\n\n## 快速开始\n\n```bash\npython main.py -s RB              # 数据模式：纯指标 JSON\npython main.py -s RB --decision   # 决策模式：辩论 + 风控 + CIO 建议\npython main.py -s RB,CU,M         # 批量分析\npython main.py -s ALL             # 全市场扫描 48 个品种\npython main.py -s RB -o out.json  # 额外输出到文件\n```\n\n首次运行自动下载约 1 年历史数据（基差模块约 5~10 分钟），后续运行秒级。\n\n## 六维分析能力\n\n| 分析模块 | 计算指标 | 数据来源 |\n|---------|---------|---------|\n| 技术面分析 | MA5/20/60, EMA20, MACD+Signal+Hist, RSI14, BB, ATR14, 量仓 | 新浪财经 |\n| 基差分析 | 现货-期货基差, 基差率, 季节性Z-score, 斜率, Contango/Backwardation | 100ppi.com |\n| 期限结构 | 合约价差, 展期结构, spread%, contango/backwardation | AkShare 多策略 |\n| 库存仓单 | 库存量, 周/月变化率, 季节性Z-score, 仓单量 | 东方财富 |\n| 持仓席位 | 净持仓, 净持仓变化, 加权HHI集中度, 前20多空比, 关键席位追踪 | 三大交易所 |\n| 新闻情绪 | 48 词关键词匹配, 利多/利空/中性计数, 情绪比率 | 上海金属网 |\n\n## API 失效时的处理\n\n当数据接口（AkShare）在周末/节假日/不可用时，系统**不会**静默失败：\n\n| 策略 | 说明 |\n|------|------|\n| **30 天回退** | 逐日回溯找最近的交易日数据，跳过周末 |\n| **过期缓存兜底** | 在线 API 全部失败后自动使用本地历史缓存 |\n| **Zip 损坏精准清除** | 遇到 AkShare 缓存损坏时按需清理，不滥杀合法缓存 |\n| **数据缺口报告** | `coverage` 如实统计可用维度，`data_gap_report` 列出每个缺失维度的 `search_actions`（AI 搜索指令） |\n| **AI Fill 槽位** | 每个维度预留 `ai_fill` 字段，AI Agent 搜索后可按 `fillability` 分级回填（`fillable` 正常参与评分，`direction_only` 降权参与） |\n\n## 核心特色\n\n- **零 API Key：** 不调 LLM，纯规则引擎。装完即用，只需要网络（AkShare 下载行情）。\n- **四维动态权重：** 品种品类 × 置信度 Sigmoid × 市场状态自适应 × 数据质量折损\n- **数据诚实：** `coverage` 从不虚报，缺失维度追加 `warning_flags` + `data_gap_report`\n- **信号校正：** 持仓口径矛盾交叉验证、基差斜率×结构矛盾检测、回退数据自动降权\n- **永不 null：** 止损止盈始终有值（ATR 动态计算 → 固定值兜底）\n- **48 品种覆盖：** Sina 映射 + 品类分类完整，JD/EG/LC/SI 等小品种无遗漏\n\n## 输出结构\n\n数据模式输出的 JSON 包含：\n\n```\n{\n  \"symbol\": \"JD\",\n  \"coverage\": {\"total\": 6, \"available\": 4, \"missing\": [\"positioning_analysis\", \"term_structure_analysis\"]},\n  \"analysis_details\": { ... 各维度指标 ... },\n  \"warning_flags\": [{ \"skill\": \"term_structure_analysis\", \"search_actions\": [...] }],\n  \"data_gap_report\": {\n    \"total_gaps\": 2,\n    \"summary\": {\"fillable\": 1, \"direction_only\": 1, \"not_fillable\": 0},\n    \"gaps\": [\n      { \"skill\": \"term_structure_analysis\", \"fillability\": \"direction_only\",\n        \"search_actions\": [{\"query\": \"JD 期货 期限结构 contango\", \"source\": \"web\"}],\n        \"ai_fill_schema\": { \"fields\": [\"structure\"], \"cannot_fill\": [\"prices\", \"spread_pct\"] }\n      }\n    ]\n  }\n}\n```\n\n## 项目结构\n\n```\nTrading_Agents_for_Futures/\n├── main.py            # 命令行入口\n├── manifest.yaml      # Skill 元数据\n├── requirements.txt   # 7 个核心依赖\n├── README.md          # 本文件（人类阅读）\n├── SKILL.md           # 分析框架知识库 + AI Fill 模板（AI Agent 阅读）\n├── setup.py           # 自动安装依赖\n├── config/\n│   ├── core.yaml      # 默认配置（数据源、风控、日志）\n│   └── user.yaml      # 用户覆盖\n├── core/\n│   ├── core_engine.py # 核心引擎 + 共享工具函数\n│   └── data_utils.py  # AkShare 数据获取（6 种数据类型 + 缓存管理）\n└── skills/\n  "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn73gq4q850xmp0ja3xf085rvd83ckr4\",\n  \"slug\": \"trading-agents-for-futures\",\n  \"version\": \"2.0.19\",\n  \"publishedAt\": 1779440576522\n}"},{"path":"skill-card.md","content":"## Description:\n\nTrading_Agents_for_Futures analyzes futures markets across technical, basis, term structure, inventory, positioning, and news dimensions, returning structured JSON metrics and optional debate-style risk decision reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[haoge10241024](https://clawhub.ai/user/haoge10241024)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and trading analysts use this skill to collect public futures-market signals, identify data gaps for agent-assisted follow-up, and generate structured indicators or decision-support reports. Outputs should be independently checked and not treated as investment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Dependency installation may modify the active Python environment.\n\nMitigation: Install and run the skill in a virtual environment, avoid administrator/root execution, and review or pin dependencies before use.\n\nRisk: Market-data downloads, caches, and output files may contain stale, incomplete, or locally sensitive analysis artifacts.\n\nMitigation: Verify data freshness independently and protect cache, output, and log locations according to the user's data-handling requirements.\n\nRisk: Decision-mode outputs can be mistaken for investment advice.\n\nMitigation: Treat buy, sell, position, and risk outputs as decision-support material only and validate suitability with independent market and risk review.\n\nRisk: Proxy credentials or other sensitive configuration values could be exposed if placed in configuration or logs.\n\nMitigation: Avoid storing credentials in config files for this skill; if proxy settings are required, protect logs and configuration files.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/haoge10241024/skills/trading-agents-for-futures)\n- [README](artifact/README.md)\n- [Skill instructions](artifact/SKILL.md)\n- [Skill manifest](artifact/manifest.yaml)\n\n## Skill Output:\n\n**Output Type(s):** [json, markdown, text, guidance]\n\n**Output Format:** [Structured JSON with optional Markdown-like decision reports and search-action guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include coverage, warning_flags, data_gap_report, and ai_fill slots for missing market data.]\n\n## Skill Version(s):\n\n2.0.19 (source: server release evidence)\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/core.yaml","content":"# ============================================================\n# Trading_Agents_for_Futures - 默认配置文件\n# 此文件包含系统所有默认配置项\n# 用户可通过 config/user.yaml 覆盖任意配置\n# ============================================================\n\n# ── 项目基础设置 ──────────────────────────────────────────\nproject:\n  name: \"Trading_Agents_for_Futures\"\n  timezone: \"Asia/Shanghai\"\n  output_dir: \"output\"\n  cache_dir: \"cache\"\n\n# ── 数据源配置 ────────────────────────────────────────────\ndata:\n  default_lookback_days: 365\n  rate_limit_per_sec: 4\n  retries: 3\n  timeout_sec: 30\n  use_cache: true\n  providers:\n    primary: \"akshare\"\n    fallback: \"tushare\"\n\n# ── 默认品种列表 ──────────────────────────────────────────\nsymbols:\n  default:\n    - RB\n    - CU\n    - LH\n    - I\n    - MA\n    - M\n\n# ── 风控参数 ──────────────────────────────────────────────\nrisk:\n  max_margin_ratio: 0.30\n  max_position_per_symbol: 0.20\n  allow_overnight: true\n  atr_stop_multiplier: 2.5\n  max_drawdown_tolerance: 0.15\n  risk_levels:\n    low:\n      max_position_pct: 0.20\n      stop_loss_pct: 0.02\n    medium:\n      max_position_pct: 0.12\n      stop_loss_pct: 0.03\n    high:\n      max_position_pct: 0.05\n      stop_loss_pct: 0.05\n\n# ── 分析方法配置 ──────────────────────────────────────────\nanalysis:\n  engine: \"rule_based\"\n  dynamic_weights: true\n\n# ── 日志配置 ──────────────────────────────────────────────\nlogging:\n  level: \"INFO\"\n  file: \"output/run.log\""}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多... Skill: Trading_Agents_for_Futures Owner: haoge10241024 Summary: 期货六维分析数据引擎。两种运行模式： (1) 数据模式：python main.py -s RB → 结构化 JSON 指标 + data_gap_report（数据缺口报告 + AI 搜索指令） (2) 决策模式：python main.py -s RB --decision → 指标 + 数据来源追溯 + 多... Tags: latest:2.0.19 Version history: v2.0.19 | 2026-05-22T09:02:56.522Z | user No code or documentation changes detected in this version. - No updates or modifications found in any files. - SKILL","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1345,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T00:51:36.651Z","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-10T00:51:36.651Z","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-10T06:54:12.727Z","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"}]}}}