{"id":"431075e9-5816-4757-b2e5-6abe7c486c69","entityType":"agent","slug":"clawhub-ganjiakoun16-beergaao","name":"BeerGaao 专业量化交易","canonicalUrl":"https://www.xpersona.co/agent/clawhub-ganjiakoun16-beergaao","canonicalPath":"/agent/clawhub-ganjiakoun16-beergaao","generatedAt":"2026-10-10T21:56:44.207Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T19:30:24.384Z","emptyReason":null},"description":"A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Skill: BeerGaao 专业量化交易 Owner: ganjiakoun16 Summary: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Tags: agent:3.3.2, backtest:3.3.2, latest:3.3.5, quant:3.3.2, stock:3.3.2, trading:3.3.2 Version history: v3.3.5 | 2026-05-18T00:40:32.297Z | user 修复Longport数据源初始化守卫（source=longport始终回退到东财）和pyproject.toml版本锁定一致性 v3.3.4 | 2026-05-18T00:32:52.836Z | user 修复缓存TTL忽略参数、港股市场代码错误、测试mock无效、依赖配置不一致、编码乱码等15个问题 v3.3.3 | 2026-05-09T08:36:5","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17f78bxr65kfvjry7kqw2pg7585t1nc:beergaao","sourceUrl":"https://clawhub.ai/ganjiakoun16/beergaao","homepage":"https://clawhub.ai/ganjiakoun16/skills/beergaao","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/ganjiakoun16/beergaao","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/ganjiakoun16/skills/beergaao","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Skill: BeerGaao 专业量化交易 Owner: ganjiakoun16 Summary: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Tags: agent:3.3.2, backtest:3."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:30:24.384Z","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-10T19:30:24.384Z","emptyReason":null},"stars":null,"forks":null,"downloads":1280,"packageName":null,"latestVersion":"3.3.5","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:30:24.384Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T19:30:24.384Z","lastCrawledAt":"2026-10-10T19:30:24.384Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T19:30:24.384Z","lastVerifiedAt":null,"highlights":[{"version":"3.3.5","createdAt":"2026-05-18T00:40:32.297Z","changelog":"修复Longport数据源初始化守卫（source=longport始终回退到东财）和pyproject.toml版本锁定一致性","fileCount":58,"zipByteSize":135092},{"version":"3.3.4","createdAt":"2026-05-18T00:32:52.836Z","changelog":"修复缓存TTL忽略参数、港股市场代码错误、测试mock无效、依赖配置不一致、编码乱码等15个问题","fileCount":57,"zipByteSize":133595},{"version":"3.3.3","createdAt":"2026-05-09T08:36:52.842Z","changelog":"- Updated skill version to 3.3.3. - Modified skill.json and tests/test_config.py (details not shown). - No functional or documentation changes in SKILL.md.","fileCount":57,"zipByteSize":133581},{"version":"3.3.2","createdAt":"2026-05-09T07:24:13.853Z","changelog":"Update dependencies and optimize configuration","fileCount":57,"zipByteSize":133522},{"version":"3.3.1","createdAt":"2026-05-09T03:24:30.539Z","changelog":"将 Yahoo 数据源改为选装，与长桥保持一致","fileCount":57,"zipByteSize":132997},{"version":"3.3.0","createdAt":"2026-05-09T02:28:23.721Z","changelog":"refactor: 将港股美股接口改为选装依赖","fileCount":57,"zipByteSize":132550},{"version":"3.2.6","createdAt":"2026-05-07T03:07:06.649Z","changelog":"docs: 更新描述文案，A股改为股票市场，SKILL.md引入README特性介绍","fileCount":57,"zipByteSize":129955},{"version":"3.2.5","createdAt":"2026-05-07T02:47:27.504Z","changelog":"docs: 按 OpenClaw 官方规范重写 SKILL.md，添加 metadata.openclaw 声明和 Legal Disclaimer","fileCount":57,"zipByteSize":129819}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f78bxr65kfvjry7kqw2pg7585t1nc:beergaao","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-ganjiakoun16-beergaao/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/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-10T21:56:44.203Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ganjiakoun16-beergaao/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-10T19:30:24.384Z","emptyReason":null},"readme":"Skill: BeerGaao 专业量化交易\n\nOwner: ganjiakoun16\n\nSummary: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\n\nTags: agent:3.3.2, backtest:3.3.2, latest:3.3.5, quant:3.3.2, stock:3.3.2, trading:3.3.2\n\nVersion history:\n\nv3.3.5 | 2026-05-18T00:40:32.297Z | user\n\n修复Longport数据源初始化守卫（source=longport始终回退到东财）和pyproject.toml版本锁定一致性\n\nv3.3.4 | 2026-05-18T00:32:52.836Z | user\n\n修复缓存TTL忽略参数、港股市场代码错误、测试mock无效、依赖配置不一致、编码乱码等15个问题\n\nv3.3.3 | 2026-05-09T08:36:52.842Z | auto\n\n- Updated skill version to 3.3.3.\n- Modified skill.json and tests/test_config.py (details not shown).\n- No functional or documentation changes in SKILL.md.\n\nv3.3.2 | 2026-05-09T07:24:13.853Z | user\n\nUpdate dependencies and optimize configuration\n\nv3.3.1 | 2026-05-09T03:24:30.539Z | user\n\n将 Yahoo 数据源改为选装，与长桥保持一致\n\nv3.3.0 | 2026-05-09T02:28:23.721Z | user\n\nrefactor: 将港股美股接口改为选装依赖\n\nv3.2.6 | 2026-05-07T03:07:06.649Z | user\n\ndocs: 更新描述文案，A股改为股票市场，SKILL.md引入README特性介绍\n\nv3.2.5 | 2026-05-07T02:47:27.504Z | user\n\ndocs: 按 OpenClaw 官方规范重写 SKILL.md，添加 metadata.openclaw 声明和 Legal Disclaimer\n\nv3.2.4 | 2026-05-07T02:34:25.304Z | user\n\nsecurity: 移除硬编码API参数(ut改为环境变量)，Longport凭证通过字典传递，数据库路径改为.data/私有目录，更新安全声明\n\nv3.2.3 | 2026-05-07T02:27:25.186Z | user\n\nsecurity: 修复安全扫描问题 - 使用安全模型加载器(load_model_safe)替代直接joblib.load，固定依赖版本，澄清凭证来源文档\n\nv3.2.2 | 2026-05-07T02:14:23.658Z | auto\n\n**Notice: This update enhances security requirements and credential management.**\n\n- Enforces API credentials to be provided strictly via environment variables, never hardcoded.\n- Skill startup will now check for required credentials and alert clearly if missing.\n- Local model file loading is restricted with a strict whitelist; only trusted files in the project `models/` directory are accepted.\n- Local SQLite data storage is secured with stricter file permissions (owner-only).\n- Updated documentation reflecting new security protocols and best practices.\n\nv2.0.1 | 2026-05-07T01:51:58.603Z | auto\n\nVersion 2.0.1 introduces security documentation and clarifies credential management.\n\n- Added a new \"安全说明\" (Security Notice) section to the documentation, with best practices for credential and data security.\n- Updated credential variable descriptions, emphasizing the use of read-only API tokens and clarifying which variables are required or optional.\n- Noted that sensitive configuration files (e.g., config.env) are excluded from version control with .gitignore.\n- No changes to code functionality; updates are documentation-focused.\n\nv2.0.0 | 2026-05-07T01:43:38.699Z | auto\n\nBeerGaao 2.0.0 introduces professional multi-market quant analysis and robust backtesting.\n\n- 新增对港股/美股的支持 (代码如 0700.HK, AAPL.US)\n- 新增专业 Backtrader 回测工具：`backtest_bt`\n- 工具集简化与归类，专注技术分析、回测、归因，技术指标与信号统一标准\n- 配置项扩展以支持多市场和长桥 API\n- 新增和完善测试用例，提升稳定性\n- 文档和自然语言路由全面更新，更便于上手和参考\n\nv0.1.6 | 2026-04-30T08:48:40.119Z | user\n\n## BeerGaao 0.1.6 Changelog\n\n- No file changes detected in this release.\n- Functionality, features, and documentation remain unchanged from the previous version.\n\nv0.1.5 | 2026-04-30T08:42:04.037Z | user\n\nBeerGaao 0.1.5\n\n- 新增“安装”与“外部服务”说明，包括依赖安装建议及所需第三方API列表\n- 配置章节详细化，增加 config.env 示例与环境变量必需项（如 Tushare Token ）\n- 明确数据持久化存储位置，并说明模型序列化方式由 pickle 改为 joblib，提升安全性\n- 增加安全说明，包括凭证存储、模型安全、建议沙箱运行等信息\n- 其余文档结构及功能描述保持原有内容不变\n\nv0.1.4 | 2026-04-30T08:36:15.033Z | user\n\n- Removed SECURITY.md, stock_skill/attribution/weight_updater.py, and stock_skill/validation.py files to streamline the project.\n- Updated prompts and routing examples to use更通俗的用户输入描述（如\"能不能买\"替代\"技术分析\"）。\n- 调整信号类型表述（如“看多信号”变为“买入”，“趋势不明”改为“持有”）。\n- 删除了冗余的“风险提示”及参考内容，使文档更简明。\n- 保持工具功能和接口一致，未引入新增工具。\n\nv0.1.3 | 2026-04-30T04:13:18.278Z | user\n\n- Added SECURITY.md for public security policy and reporting guidelines.\n- Introduced stock_skill/validation.py to start implementing input validation logic.\n- No changes to existing features or user-facing functionality.\n\nv0.1.2 | 2026-04-30T03:45:08.723Z | user\n\nBeerGaao v0.1.2\n\n- 新增显著风险提示，明确所有分析仅供参考，不构成投资建议。\n- 将“买入/卖出/持有”信号类型更新为“看多信号/看空信号/趋势不明”等规范表达。\n- 用户自然语言路由示例中的“能不能买”调整为更自然的“技术分析”。\n- 优化 analyze_stock 返回示例，信号类型描述更加中性与提示性。\n- 其他文档表述微调，提升专业性与规范性。\n\nv0.1.1 | 2026-04-30T03:07:22.376Z | user\n\nInitial release of BeerGaao quant analysis skill for A股.\n\n- Added core stock analysis modules: real-time quotes, technical analysis, backtest, factor and ML strategies, risk, and attribution.\n- Implemented 16+ standard tools for market/stock analysis, money flow, positions, signals, and strategy performance.\n- Integrated natural language input mapping (e.g. \"招商银行能不能买\") to quantitative analysis actions.\n- Provided comprehensive documentation and usage examples for all API tools.\n- Included configuration management, unified output format, and persistent signal tracking for closed-loop performance.\n\nv0.1.0 | 2026-04-30T02:34:57.937Z | auto\n\nBeerGaao 0.1.0 — 首个版本发布\n\n- 提供A股量化分析核心功能，包括行情、资金流向、技术指标、回测、复盘、策略和持仓管理。\n- 内置16项标准化Agent工具，支持自然语言查询如股票分析与大盘环境。\n- 集成传统策略、机器学习、回测引擎与多因子绩效归因。\n- 完善的信号生成、风控与绩效闭环机制，实现信号自动反馈与策略权重更新。\n- 丰富的配置项与模块化代码结构，便于扩展和定制。\n\nArchive index:\n\nArchive v3.3.5: 58 files, 135092 bytes\n\nFiles: AGENTS.md (6527b), config.example.env (723b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1748b), pytest.ini (106b), README.md (13977b), requirements.txt (183b), risk-reference.md (3628b), skill-card.md (2810b), skill.json (5358b), SKILL.md (6440b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4236b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (19667b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9394b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (16389b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nFile v3.3.5:SKILL.md\n\n---\r\nname: beergaao\r\ndescription: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\r\nversion: 3.2.6\r\nmetadata: {\"openclaw\": {\"requires\": {\"env\": [\"TUSHARE_TOKEN\"]}, \"primaryEnv\": \"TUSHARE_TOKEN\"}}\r\n---\r\n\r\n# BeerGaao 股票量化分析师\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n## BeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合 Tushare、东方财富、Yahoo Finance（选装）、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n## 可用工具\r\n\r\n| 工具 | 功能 | 参数 |\r\n|------|------|------|\r\n| `analyze_stock` | 完整技术分析（策略+集成+ML+IC+校准） | `code` |\r\n| `get_quote` | 实时行情报价 | `code` |\r\n| `analyze_market` | 大盘环境分析 | — |\r\n| `get_money_flow` | 资金流向 | `code` |\r\n| `get_sector_flow` | 板块资金排名 | `limit` |\r\n| `get_dragon_tiger` | 龙虎榜数据 | — |\r\n| `full_review` | 完整复盘 | `watchlist` |\r\n| `backtest_bt` | Backtrader 专业回测 | `code,strategy,start,end,cash` |\r\n| `strategy_attribution` | 策略归因分析 | `days` |\r\n| `check_correlation` | 相关性检查 | `codes` |\r\n| `circuit_breaker_check` | 熔断检查 | — |\r\n| `get_market_breadth` | 市场广度指标 | — |\r\n\r\n## 调用示例\r\n\r\n**用户：\"分析一下贵州茅台的走势\"**\r\n→ 调用 `analyze_stock(\"600519.SH\")`\r\n\r\n**用户：\"今天大盘怎么样\"**\r\n→ 调用 `analyze_market()`\r\n\r\n**用户：\"招商银行资金流向\"**\r\n→ 调用 `get_money_flow(\"600036.SH\")`\r\n\r\n**用户：\"复盘一下\"**\r\n→ 调用 `full_review()`\r\n\r\n**用户：\"用MACD策略回测招商银行\"**\r\n→ 调用 `backtest_bt(\"600036.SH\", \"MACDStrategy\", \"2023-01-01\", \"2026-04-30\")`\r\n\r\n## 信号类型\r\n\r\n- **买入** — 多源共识置信度 ≥ 0.6\r\n- **卖出** — 卖出信号共识 > 买入信号\r\n- **观察** — 有买入信号但置信度 0.4-0.6\r\n- **持有** — 无明确方向信号\r\n\r\n## 支持的股票代码格式\r\n\r\n- A股：`600036.SH`（上海）、`000001.SZ`（深圳）、`300750.SZ`（创业板）\r\n- 港股：`0700.HK`\r\n- 美股：`AAPL.US`\r\n\r\n## 安装使用\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入 TUSHARE_TOKEN\r\n```\r\n\r\n## 配置要求\r\n\r\n| 变量 | 说明 | 必需 |\r\n|------|------|------|\r\n| `TUSHARE_TOKEN` | Tushare API token（只读） | 是 |\r\n| `LONGPORT_APP_KEY` | 长桥 App Key | 否 |\r\n| `LONGPORT_APP_SECRET` | 长桥 App Secret | 否 |\r\n| `LONGPORT_ACCESS_TOKEN` | 长桥 Access Token（建议只读） | 否 |\r\n\r\n## 安全说明\r\n\r\n> ⚠️ **重要安全提示**\r\n\r\n**凭证安全（强制要求）：**\r\n- 所有 API 凭证**必须**通过环境变量提供，代码中**不包含**任何硬编码的 token 或 secret\r\n- `providers.py` 中所有凭证均通过 `self._config.longport_access_token` 等配置属性读取，最终来源为环境变量\r\n- 东方财富 API 的 `ut` 参数通过 `EASTMONEY_UT` 环境变量配置（有默认值，通常无需修改）\r\n- 使用前请确保已设置以下环境变量：\r\n  - `TUSHARE_TOKEN`：Tushare API token（必填）\r\n  - `LONGPORT_APP_KEY`：长桥 App Key（可选）\r\n  - `LONGPORT_APP_SECRET`：长桥 App Secret（可选）\r\n  - `LONGPORT_ACCESS_TOKEN`：长桥 Access Token（可选，建议只读权限）\r\n- 技能启动时会自动检查必填凭证是否存在，缺失时会抛出明确的错误提示\r\n- `config.env` 已被 `.gitignore` 排除，**绝不提交到版本控制系统**\r\n\r\n**数据安全：**\r\n- 本工具仅读取公开市场数据，**不执行实际交易**\r\n- SQLite 数据库默认存储在项目 `.data/` 目录下（可通过 `DB_PATH` 环境变量自定义），已被 `.gitignore` 排除\r\n- 数据库文件权限已设置为仅 owner 可读写（600），目录权限设置为 700\r\n- 如需清除历史分析数据，删除 `.data/` 目录或指定的 `DB_PATH` 文件即可\r\n- 不要加载来源不明的模型文件，模型加载有路径白名单保护\r\n\r\n**模型安全：**\r\n- 仅加载项目 `models/` 目录内本地生成的模型文件\r\n- 禁止加载外部输入、网络下载或用户提供的任意模型文件\r\n- 所有模型加载均通过 `load_model_safe()` 安全函数，自动执行路径白名单校验和文件完整性检查\r\n- joblib 底层使用 pickle，存在反序列化风险，请勿加载不可信文件\r\n\r\n**运行环境：**\r\n- 建议在虚拟环境中安装运行\r\n- 仅从官方仓库克隆代码：`https://github.com/GanJiaKouN16/BeerGaao.git`\r\n- 定期轮换 API 密钥，移除不再使用的旧凭证\r\n\r\n## 输出格式\r\n\r\n所有工具返回统一格式：\r\n\r\n```json\r\n{\"tool\": \"工具名\", \"status\": \"success | error\", \"data\": {...}}\r\n```\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.5:README.md\n\n# BeerGaao\r\n\r\n**胜率总是倍儿高，收益也嘛倍儿好**\r\n\r\n股票量化分析 Agent 工具集\r\n\r\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/beergaao-blue.svg)](https://pypi.org/project/beergaao/)\r\n[![Downloads](https://img.shields.io/pypi/dm/beergaao.svg)](https://pypi.org/project/beergaao/)\r\n\r\n---\r\n\r\n## 🌟 Introduction\r\n\r\n[![BeerGaao](https://img.shields.io/badge/BeerGaao-股票量化分析-blue)](https://github.com/GanJiaKouN16/BeerGaao)\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\nBeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n---\r\n\r\n## 🏆 Backtest Results\r\n\r\n三年回测验证（2023-04-30 ~ 2026-04-30）：\r\n\r\n| 指标 | 600036.SH 招商银行 | 000858.SZ 五粮液 | 688702.SH 盛科通信 |\r\n|------|-------------------|-----------------|-------------------|\r\n| 总收益率 | **+28.64%** | **+19.39%** | **+57.22%** |\r\n| 年化收益率 | **+8.76%** | **+6.09%** | **+20.45%** |\r\n| 最大回撤 | **12.31%** | 18.74% | 29.83% |\r\n| 胜率 | **58.21%** | **54.68%** | 52.24% |\r\n| 盈亏比 | **1.86:1** | **1.63:1** | **1.78:1** |\r\n| 夏普比率 | 1.28 | 0.87 | **1.54** |\r\n| 超额收益 | **+33.56%** | **+24.31%** | **+62.14%** |\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n### 🐍 环境要求\r\n\r\n- Python 3.10+\r\n- 操作系统：Windows / macOS / Linux\r\n\r\n### 📦 安装\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入配置\r\n```\r\n\r\n### ⚙️ 配置\r\n\r\n编辑 `config.env` 文件，填入以下配置：\r\n\r\n```bash\r\n# Tushare（可选，历史K线数据源）\r\n# 安装：pip install tushare 或 pip install -e \".[tushare]\"\r\nTUSHARE_TOKEN=your_tushare_token_here\r\n\r\n# 长桥 OpenAPI（可选，支持美股/港股）\r\nLONGPORT_APP_KEY=your_longport_app_key_here\r\nLONGPORT_APP_SECRET=your_longport_app_secret_here\r\nLONGPORT_ACCESS_TOKEN=your_longport_access_token_here\r\n```\r\n\r\n> ⚠️ **安全提示**：`config.env` 包含敏感 Token，已被 `.gitignore` 排除，请勿提交到版本库。\r\n\r\n### 🚀 运行\r\n\r\n#### 命令行模式\r\n\r\n```bash\r\npython -m stock_skill                              # 完整复盘\r\npython -m stock_skill --analyze 600036.SH           # 技术分析\r\npython -m stock_skill --market                      # 大盘环境\r\npython -m stock_skill --quote 300750.SZ             # 实时行情\r\npython -m stock_skill --flow 600036.SH              # 资金流向\r\npython -m stock_skill --breadth                     # 市场广度\r\npython -m stock_skill --positions                   # 持仓查询\r\npython -m stock_skill --perf                        # 回填信号绩效\r\npython -m stock_skill --attribution                 # 策略归因分析\r\npython -m stock_skill --monitor                     # 轮询监控\r\npython -m stock_skill \"招商银行怎么分析\"             # 自然语言\r\n```\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom stock_skill.tools.tools import StockTools\r\n\r\ntools = StockTools()\r\n\r\n# 分析（自动集成：传统策略 + 集成引擎 + ML + 因子IC + 参数校准）\r\nresult = tools.analyze_stock(\"600036.SH\")\r\n\r\n# 返回数据包含\r\n# - signal:     最终交易信号（BUY/SELL/HOLD/WATCH）\r\n# - ensemble:   集成引擎结果（市场状态/共识度/策略同意数）\r\n# - ml_signal:  ML策略结果\r\n# - factor_ic:  因子IC分析（各因子预测能力）\r\n# - calibration: 参数校准结果\r\n# - backtest:   回测指标（胜率/夏普/盈亏比）\r\n\r\n# 策略归因\r\nattribution = tools.strategy_attribution(days=30)\r\n\r\n# 完整复盘\r\nreport = tools.full_review()\r\n```\r\n\r\n#### 多数据源使用\r\n\r\n```python\r\nfrom stock_skill.providers.providers import DataGateway\r\n\r\ngateway = DataGateway()\r\n\r\n# 使用 Tushare（需安装：pip install tushare）\r\ndf = gateway.get_kline(\"600036.SH\", source=\"tushare\")\r\n\r\n# 使用 Yahoo Finance（支持美股/港股）\r\ndf = gateway.get_kline(\"AAPL.US\", source=\"yahoo\")\r\n\r\n# 使用长桥 OpenAPI\r\nquote = gateway.get_realtime_quote(\"700.HK\", source=\"longport\")\r\n```\r\n\r\n#### Agent 集成\r\n\r\n`TOOL_SCHEMAS` 可直接用于 OpenAI Function Calling / Claude Tool Use：\r\n\r\n```python\r\nfrom stock_skill.tools.tools import TOOL_SCHEMAS\r\n```\r\n\r\n### 🧪 测试\r\n\r\n```bash\r\npython -m pytest tests/ -v\r\n```\r\n\r\n---\r\n\r\n## 🏭 Scenarios\r\n\r\n### 🎯 目标：股票量化分析 Agent\r\n\r\nBeerGaao 旨在构建一个 股票量化分析 Agent，能够：\r\n\r\n- 📊 **数据获取**：整合多数据源（东方财富（必装）、Tushare、Yahoo、长桥（选装）），获取实时行情、历史 K 线、资金流向\r\n- 🔍 **技术分析**：自动计算 MA、MACD、RSI、KDJ、布林带等技术指标\r\n- 🤖 **策略生成**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 📈 **回测验证**：三年历史数据回测，评估策略胜率、夏普比率、最大回撤\r\n- 🛡️ **风险控制**：仓位管理、止损止盈、熔断机制、相关性检查\r\n\r\n### 📈 支持场景\r\n\r\n| 场景 | 功能 | 命令 |\r\n|------|------|------|\r\n| 💹 技术分析 | 单股深度分析，生成交易信号 | `--analyze 600036.SH` |\r\n| 🌍 大盘环境 | 市场情绪、涨跌统计、量能分析 | `--market` |\r\n| 📊 实时行情 | 多数据源实时报价 | `--quote 300750.SZ` |\r\n| 💰 资金流向 | 主力资金、板块资金、龙虎榜 | `--flow 600036.SH` |\r\n| 📋 完整复盘 | 一键生成当日复盘报告 | 无参数 |\r\n| 🤖 自然语言 | 支持中文自然语言交互 | `\"招商银行怎么分析\"` |\r\n\r\n---\r\n\r\n## ⚙️ Framework\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                      BeerGaao 架构                          │\r\n├─────────────────────────────────────────────────────────────┤\r\n│                                                             │\r\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │\r\n│  │  Tushare    │  │  东方财富   │  │  Yahoo      │  选装   │\r\n│  │  Provider   │  │  Provider   │  │  Provider   │         │\r\n│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │\r\n│         │                │                │                 │\r\n│         └────────────────┼────────────────┘                 │\r\n│                          │                                  │\r\n│                    ┌─────▼─────┐                            │\r\n│                    │   Data    │                            │\r\n│                    │  Gateway  │                            │\r\n│                    └─────┬─────┘                            │\r\n│                          │                                  │\r\n│  ┌───────────────────────┼───────────────────────┐         │\r\n│  │                       │                       │         │\r\n│  ▼                       ▼                       ▼         │\r\n│ ┌─────────┐      ┌──────────────┐      ┌─────────────┐    │\r\n│ │ 技术指标 │      │   策略引擎   │      │  ML 策略    │    │\r\n│ │ MA/MACD │      │ 10+ 传统策略 │      │ XGBoost/    │    │\r\n│ │ RSI/KDJ │      │ + 集成引擎   │      │ LightGBM    │    │\r\n│ └────┬────┘      └──────┬──────┘      └──────┬──────┘    │\r\n│      │                  │                     │           │\r\n│      └──────────────────┼─────────────────────┘           │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  信号融合  │                            │\r\n│                   │  去冗余    │                            │\r\n│                   │  IC 过滤   │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  风险控制  │                            │\r\n│                   │  仓位管理  │                            │\r\n│                   │  止损止盈  │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  交易信号  │                            │\r\n│                   │ BUY/SELL  │                            │\r\n│                   │ HOLD/WATCH│                            │\r\n│                   └───────────┘                            │\r\n│                                                             │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### 核心模块\r\n\r\n| 模块 | 职责 | 文件 |\r\n|------|------|------|\r\n| `providers/` | 数据源层，整合多数据源 | `providers.py` |\r\n| `indicators.py` | 技术指标计算 | `indicators.py` |\r\n| `strategies/` | 策略引擎，10+ 传统策略 + 集成 | `strategies.py`, `ensemble.py` |\r\n| `factors/` | 因子分析，IC 评估 | `base.py`, `fundamental.py` |\r\n| `backtest/` | 回测引擎 | `engine.py` |\r\n| `risk.py` | 风险控制 | `risk.py` |\r\n| `tools/` | Agent 工具层 | `tools.py` |\r\n\r\n---\r\n\r\n## 📃 Data Sources\r\n\r\n| 数据源 | 覆盖范围 | 配置要求 | 用途 | 安装方式 |\r\n|--------|---------|---------|------|---------|\r\n| Tushare | 股票 | `TUSHARE_TOKEN` | 历史 K 线、基本面 | 必装 |\r\n| 东方财富 | 股票 | 无需配置 | 实时行情、资金流向 | 必装 |\r\n| Yahoo Finance | 全球 | 无需配置 | 美股/港股行情 | 选装：`pip install yfinance` |\r\n| 长桥 OpenAPI | 美股/港股/股票 | `LONGPORT_*` | 实时行情（建议只读） | 选装：`pip install longport` |\r\n\r\n---\r\n\r\n## 🔒 Security\r\n\r\n**凭证安全：**\r\n- ✅ 所有凭证通过环境变量配置，代码中无硬编码 token\r\n- ✅ `config.env` 已被 `.gitignore` 排除\r\n- ⚠️ 建议使用只读 API Token，避免提供交易凭证\r\n\r\n**数据安全：**\r\n- ✅ 仅读取公开市场数据，不执行实际交易\r\n- ⚠️ SQLite 数据库存储在本地，请妥善保管\r\n- ⚠️ 不要加载来源不明的模型文件\r\n\r\n**运行环境：**\r\n- ⚠️ 建议在虚拟环境中安装运行\r\n- ✅ 仅从官方仓库克隆代码\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\n欢迎贡献代码！请遵循以下步骤：\r\n\r\n1. Fork 本仓库\r\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\r\n5. 创建 Pull Request\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\n本项目采用 MIT License - 详见 [LICENSE](LICENSE) 文件\r\n\r\n---\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cfx0y2qzfavg4yz1dj76a5n85v46w\",\n  \"slug\": \"beergaao\",\n  \"version\": \"3.3.5\",\n  \"publishedAt\": 1779064832297\n}\n\nFile v3.3.5:AGENTS.md\n\n# AGENTS.md — BeerGaao 项目规范\r\n\r\n## 1. 项目概述\r\n\r\nBeerGaao 是一个 A 股量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n技术栈：Python 3.10+，pandas/numpy 数据处理，requests/akshare 必装，tushare（选装）/yfinance（选装）/longport（选装）多数据源，scikit-learn/xgboost/lightgbm 机器学习，backtrader 回测引擎，SQLite 状态持久化。\r\n\r\n仓库结构：\r\n```\r\nBeerGaao/\r\n├── stock_skill/           # 主包\r\n│   ├── __main__.py        # CLI 入口（--analyze, --market, --backtest-bt 等）\r\n│   ├── config.py          # 配置管理（环境变量加载）\r\n│   ├── models.py          # 数据模型定义\r\n│   ├── state.py           # SQLite 状态持久化\r\n│   ├── risk.py            # 风控计算\r\n│   ├── indicators.py      # 技术指标计算\r\n│   ├── semantic.py        # 自然语言查询解析\r\n│   ├── monitor.py         # 轮询监控\r\n│   ├── tools/             # Agent 工具层（串联所有模块）\r\n│   ├── strategies/        # 策略定义 + 参数校准 + Backtrader 适配\r\n│   ├── factors/           # 因子基类 + 合成引擎\r\n│   ├── backtest/          # 回测引擎\r\n│   ├── providers/         # 数据源 + 缓存\r\n│   ├── attribution/       # 策略归因\r\n│   └── execution/         # 执行层\r\n├── tests/                 # 测试套件\r\n├── .env.example           # 环境变量模板\r\n├── pyproject.toml         # 项目配置\r\n└── requirements.txt       # 依赖清单\r\n```\r\n\r\n## 2. 快速命令\r\n\r\n```bash\r\n# 安装依赖\r\npip install -e \".[ml,dev]\"\r\n\r\n# 可选：安装 Tushare 数据源\r\npip install -e \".[tushare]\"\r\n\r\n# 配置环境变量\r\ncp .env.example .env\r\n# 编辑 .env 填入配置（TUSHARE_TOKEN 为可选，仅 Tushare 数据源需要）\r\n\r\n# 运行主程序\r\npython -m stock_skill                    # 完整复盘\r\npython -m stock_skill --analyze 600036.SH  # 分析个股\r\npython -m stock_skill --market           # 市场概览\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy\r\n\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 日志\r\ntail -f stock_skill.log\r\n```\r\n\r\n环境变量配置：\r\n- `.env` 文件位于项目根目录\r\n- 启动脚本通过 `python-dotenv` 自动加载\r\n- 关键变量：`TUSHARE_TOKEN`（可选，仅 Tushare 数据源需要）, `LOG_LEVEL`, `DB_PATH`\r\n\r\n## 3. 后端架构\r\n\r\n```\r\nstock_skill/\r\n├── tools/tools.py         # Agent 工具层，串联所有模块，返回标准化 JSON\r\n├── strategies/            # 策略层\r\n│   ├── strategies.py      # 策略定义 + @register 装饰器注册\r\n│   ├── ensemble.py        # 集成引擎 + 市场状态\r\n│   └── backtrader_adapters.py  # Backtrader 策略适配\r\n├── factors/               # 因子层\r\n│   ├── base.py            # 因子基类 + @register_factor 注册\r\n│   └── *.py               # 具体因子实现\r\n├── backtest/engine.py     # 回测引擎（三年历史数据回测）\r\n├── providers/providers.py # 多数据源网关（tushare/东财 必装，yfinance/长桥 选装）\r\n├── config.py              # 配置管理\r\n├── state.py               # SQLite 持久化（信号历史、持仓）\r\n├── risk.py                # 风控计算（止损、仓位）\r\n├── models.py              # 数据模型（Signal, Position, FactorResult）\r\n└── semantic.py            # 自然语言查询解析\r\n```\r\n\r\n核心子系统：\r\n- **策略引擎**：10+ 传统策略 + ML 策略 + 集成引擎，支持参数自动校准\r\n- **因子平台**：因子 IC 分析、策略归因、因子合成\r\n- **数据网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装），带缓存\r\n- **回测系统**：基于 Backtrader，支持三年历史数据回测\r\n\r\n## 4. 前端架构\r\n\r\n本项目为纯后端 CLI 工具，无前端。通过 CLI 命令或自然语言查询交互。\r\n\r\n## 5. 关键约定\r\n\r\n1. **返回格式**：所有工具方法返回 `{\"tool\": \"name\", \"status\": \"success|error\", \"data\": {...}}`\r\n2. **异常处理**：捕获 Exception，返回 error 状态，不抛出到调用方\r\n3. **类型注解**：使用 `Dict[str, float]` 而非 `dict[str, float]`（兼容 Python 3.9-）\r\n4. **延迟注解**：所有文件使用 `from __future__ import annotations`\r\n5. **日志规范**：使用 `logging.getLogger(__name__)`，不使用 print\r\n6. **策略注册**：新策略必须使用 `@register` 装饰器，继承 `Strategy`\r\n7. **因子注册**：新因子必须使用 `@register_factor` 装饰器，继承 `Factor`\r\n8. **配置管理**：所有配置通过环境变量或 `config.env`，硬编码禁止\r\n\r\n## 6. 本地开发及验证流程\r\n\r\n```\r\n改 → 构建 → 启动 → 验证\r\n1. 修改代码（遵循命名约定）\r\n2. 运行测试：python -m pytest tests/ -v\r\n3. 启动 CLI：python -m stock_skill --analyze <股票代码>\r\n4. 检查日志：tail -f stock_skill.log\r\n5. 验证输出：检查 JSON 格式和数据正确性\r\n```\r\n\r\n验证模板：\r\n```bash\r\n# 分析个股\r\npython -m stock_skill --analyze 600036.SH\r\n\r\n# 市场概览\r\npython -m stock_skill --market\r\n\r\n# 回测验证\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy --start 2023-01-01 --end 2026-04-30\r\n```\r\n\r\n## 7. 质量检查\r\n\r\n```bash\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 类型检查（可选）\r\nmypy stock_skill/\r\n\r\n# 代码格式（可选）\r\nblack stock_skill/ tests/\r\nisort stock_skill/ tests/\r\n```\r\n\r\n## 8. 参考项目约定\r\n\r\n- 策略类命名：`PascalCase` + `Strategy` 后缀（如 `MABreakoutStrategy`）\r\n- 因子类命名：`PascalCase` + `Factor` 后缀（如 `PEFactor`）\r\n- 工具方法命名：`snake_case`（如 `analyze_stock`）\r\n- 配置项命名：`UPPER_SNAKE_CASE`（如 `STOP_LOSS_RATE`）\r\n- 内部方法：`_` 前缀（如 `_run_backtest`）\r\n\r\n## 9. 文档导航\r\n\r\n| 文档 | 位置 | 说明 |\r\n|------|------|------|\r\n| 项目说明 | `README.md` | 完整功能介绍、回测结果、使用示例 |\r\n| 因子参考 | `factor-reference.md` | 因子定义和计算方法 |\r\n| 策略参考 | `strategy-reference.md` | 策略逻辑和参数说明 |\r\n| 风控参考 | `risk-reference.md` | 风控规则和止损策略 |\r\n| 技能定义 | `SKILL.md` | AI Agent 技能接口定义 |\r\n| 配置模板 | `.env.example` | 环境变量配置示例 |\n\nFile v3.3.5:factor-reference.md\n\n# 因子体系参考\r\n\r\n## 因子列表（19个）\r\n\r\n### 基本面因子（7个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `pe_ttm` | 市盈率（TTM） |\r\n| `pb` | 市净率 |\r\n| `roe` | 净资产收益率 |\r\n| `dividend_yield` | 股息率 |\r\n| `revenue_growth` | 营收增长率 |\r\n| `profit_growth` | 净利润增长率 |\r\n| eps_ttm | 每股收益动量 |\r\n\r\n### 资金面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `main_net_inflow` | 近5日主力净流入均值 |\r\n| `northbound` | 北向资金持股比例变化 |\r\n| `margin` | 融资余额变化率 |\r\n| `vpt` | 量价趋势指标（20日斜率） |\r\n| `mf_strength` | 大单净流入/总成交额 |\r\n| `inst_holding` | 机构持仓比例变化 |\r\n\r\n### 情绪面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `turnover` | 换手率 |\r\n| `volatility` | 波动率 |\r\n| `limit_up_momentum` | 涨停动量 |\r\n| `price_strength` | 价格强度 |\r\n| `consecutive_up` | 连续上涨天数 |\r\n| `news_sentiment` | 新闻情绪（东方财富股吧爬虫） |\r\n\r\n## 因子合成\r\n\r\n```python\r\nfrom stock_skill.factors.base import FactorCombiner\r\n\r\n# 等权合成\r\nscores = FactorCombiner.equal_weight(factors)\r\n\r\n# IC加权\r\nscores = FactorCombiner.ic_weight(factors, ic_data)\r\n\r\n# 最大化IC_IR（二次规划优化）\r\nscores = FactorCombiner.maximize_ic_ir(factors, returns)\r\n```\r\n\r\n## 增强IC分析\r\n\r\n`EnhancedFactorAnalyzer` 提供：\r\n\r\n- **滚动IC** — 60日窗口滚动计算Spearman秩相关\r\n- **IC衰减** — 计算1-20天延迟的IC，检测半衰期和持续性\r\n- **因子换手率** — 衡量因子持仓稳定性\r\n- **t统计量 + p值** — 判断IC是否显著\r\n\r\n主流程中自动对 ma5/ma10/ma20/rsi/dif/dea/macd/k/d/boll_mid/atr 计算IC：\r\n\r\n```json\r\n{\r\n  \"rsi\": {\"ic\": 0.035, \"ic_ir\": 0.42, \"significant\": true},\r\n  \"ma20\": {\"ic\": 0.012, \"ic_ir\": 0.15, \"significant\": false}\r\n}\r\n```\r\n\r\n显著性标准：|IC| > 0.02 且 |ICIR| > 0.3\r\n\r\n## IC过滤机制\r\n\r\n策略依赖的因子如果不显著，该策略的置信度自动降权：\r\n\r\n| 情况 | 乘数 |\r\n|------|------|\r\n| 所有依赖因子显著 | ×1.0 |\r\n| 部分因子不显著 | ×0.8 |\r\n| 全部因子不显著 | ×0.6 |\r\n| 无因子映射 | ×1.0 |\r\n\r\n策略→因子映射：`rsi_oversold`→`rsi`, `kdj_cross`→`k,d`, `macd_cross`→`dif,dea,macd` 等\r\n\r\n## 自定义因子\r\n\r\n```python\r\nfrom stock_skill.factors.base import Factor, register_factor\r\n\r\n@register_factor\r\nclass MyFactor(Factor):\r\n    name = \"my_factor\"\r\n    category = \"custom\"\r\n    description = \"自定义因子\"\r\n\r\n    def compute(self, df, **kwargs):\r\n        return some_value\r\n```\n\nFile v3.3.5:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理\r\n\r\n```\r\n仓位 = 基础仓位 × 市场因子 × 置信度因子 × ATR因子\r\n```\r\n\r\n| 因子 | 计算 |\r\n|------|------|\r\n| 基础仓位 | MAX_SINGLE_POSITION / 信号数 |\r\n| 市场因子 | 情绪≥8→1.3, ≥6→1.1, ≥4→0.8, ≥2→0.5 |\r\n| 置信度因子 | min(置信度/0.6, 1.5) |\r\n| ATR因子 | ATR/价格>4%→0.7, >3%→0.85 |\r\n\r\n### 相关性风控\r\n\r\n检测组合内资产相关系数，超过阈值（默认0.7）时告警\r\n\r\n### 熔断机制\r\n\r\n| 触发条件 | 说明 |\r\n|---------|------|\r\n| 跌停潮 | 跌停股数 > 30 |\r\n| 极端弱势 | 情绪分 < 2/10 |\r\n| 普跌 | 下跌占比 > 90% |\r\n\r\n## 专业回测引擎\r\n\r\n`BacktestEngine` 支持：\r\n\r\n| 特性 | 说明 |\r\n|------|------|\r\n| 复权处理 | 前复权/后复权（需adj_factor列） |\r\n| 涨跌停限制 | 涨停封板不可买入，跌停封板不可卖出 |\r\n| T+1约束 | 今日买入明日才能卖出 |\r\n| 成交量约束 | 最大参与率10% |\r\n| 成交本模型 | 佣金万三（最低5元）+ 印花税千一 + 滑点（固定/百分比/成交量冲击） |\r\n| 基准对比 | Alpha/Beta/信息比率/跟踪误差 |\r\n| 指标 | 总收益/年化收益/最大回撤/夏普/索提诺/卡尔马/胜率/盈亏比 |\r\n\r\n### 快速回测\r\n\r\n`_run_backtest(df)` — 在 `analyze_stock` 中自动运行，返回胜率/夏普/盈亏比\r\n\r\n### 专业回测\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import BacktestEngine, BacktestConfig, CostModel\r\n\r\nconfig = BacktestConfig(\r\n    initial_capital=1_000_000,\r\n    cost_model=CostModel(commission_rate=0.0003, stamp_tax_rate=0.001),\r\n    enforce_t1=True,\r\n    enforce_limit=True,\r\n    enforce_volume=True,\r\n)\r\nengine = BacktestEngine(config)\r\nmetrics = engine.run(stock_data, signal_func, benchmark_data=bm_df)\r\n```\r\n\r\n## 绩效追踪\r\n\r\n### 信号回填\r\n\r\n`evaluate_signal_performance` — 回填近10天未记录的信号实际收益：\r\n\r\n- 计算 1d/3d/5d/10d 收益率\r\n- 判断是否触发止损/止盈\r\n- 写入 `signal_performance` 表\r\n- 刷新集成引擎的策略权重\r\n\r\n### 策略归因\r\n\r\n`strategy_attribution(days=30)` — 追踪收益来源：\r\n\r\n```json\r\n{\r\n  \"attributions\": [\r\n    {\"strategy\": \"macd_cross\", \"signals\": 15, \"win_rate\": 0.67, \"avg_return_5d\": 0.023, \"contribution\": 0.23},\r\n    {\"strategy\": \"rsi_oversold\", \"signals\": 8, \"win_rate\": 0.75, \"avg_return_5d\": 0.018, \"contribution\": 0.11}\r\n  ]\r\n}\r\n```\r\n\r\n贡献度 = 胜率 × 均收益 × 信号数\r\n\r\n## 交易成本\r\n\r\n| 项目 | 费率 |\r\n|------|------|\r\n| 佣金 | 万三（双向，最低5元） |\r\n| 印花税 | 千一（卖出） |\r\n| 滑点 | 固定/百分比/成交量冲击 三种模型 |\r\n\r\n## Brinson归因\r\n\r\n```python\r\nfrom stock_skill.attribution.brinson import BrinsonModel\r\n\r\nresult = BrinsonModel.single_period(\r\n    portfolio_weights={\"tech\": 0.4, \"finance\": 0.3},\r\n    benchmark_weights={\"tech\": 0.3, \"finance\": 0.4},\r\n    portfolio_returns={\"tech\": 0.05, \"finance\": 0.02},\r\n    benchmark_returns={\"tech\": 0.03, \"finance\": 0.04},\r\n)\r\n# 配置效应 + 选择效应 + 交互效应\r\n```\n\nFile v3.3.5:skill-card.md\n\n## Description:\n\nA stock-market quantitative analysis agent skill for A-share, Hong Kong, and U.S. equity analysis, including technical analysis, strategy generation, backtesting, and risk management.\n\nThis skill is for research and development only.\n\n## Publisher:\n\n[ganjiakoun16](https://clawhub.ai/user/ganjiakoun16)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external agent users can use this skill to fetch market data, run quantitative stock analysis, generate strategy signals, perform backtests, and review risk controls. It is framed by the artifact as research and development support rather than ready-to-use financial advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Broker or market-data credentials may be exposed or over-scoped if used directly in a shared or production environment.\n\nMitigation: Install in an isolated environment, use read-only and narrowly scoped API tokens, avoid Longport tokens with trading authority, and protect config.env permissions.\n\nRisk: Local model loading can be unsafe when model files are untrusted because joblib relies on pickle-like deserialization behavior.\n\nMitigation: Do not load or keep model files unless their origin is trusted, and prefer safer model formats when adapting the skill.\n\nRisk: Pinned or aging dependencies may carry security or operational risk in sensitive account workflows.\n\nMitigation: Review and update dependency pins before using the skill with sensitive accounts or production workflows.\n\nRisk: Financial analysis outputs may be mistaken for investment advice.\n\nMitigation: Treat outputs as research support and require independent human review before any trading or portfolio decision.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/ganjiakoun16/skills/beergaao)\n- [Strategy Engine Reference](artifact/strategy-reference.md)\n- [Factor System Reference](artifact/factor-reference.md)\n- [Risk and Backtest Reference](artifact/risk-reference.md)\n- [Tushare API](https://api.tushare.pro)\n- [EastMoney API](https://push2.eastmoney.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, JSON, markdown, configuration, guidance]\n\n**Output Format:** [Markdown and JSON-style tool results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include stock signals, market summaries, backtest metrics, risk checks, and configuration guidance.]\n\n## Skill Version(s):\n\n3.3.5 (source: ClawHub release metadata; artifact frontmatter 3.2.6 and pyproject/skill.json 3.3.1 differ)\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 v3.3.5:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2) |\r\n\r\n### 集成ML策略\r\n\r\n```python\r\nfrom stock_skill.strategies.ml_strategies import EnsembleMLStrategy\r\n\r\nml = EnsembleMLStrategy()\r\nml.train(df, forward_periods=5, threshold=0.02)\r\nsignal = ml.predict(df)  # 返回 MLSignal(direction, confidence, ...)\r\n```\r\n\r\n集成策略自动：\r\n1. 训练4个模型并计算准确率\r\n2. 按准确率分配投票权重\r\n3. 加权投票融合，阈值 > 0.3 才输出信号\r\n\r\n## 集成引擎\r\n\r\n- **市场状态检测** — ADX趋势强度 + 波动率，自动识别 trend_up/trend_down/range/volatile\r\n- **动态权重** — 按市场状态和历史胜率调整各策略权重\r\n- **信号去冗余** — 同族策略（如MA系3个）只取最高置信度代表\r\n- **IC过滤** — 因子显著性评估，低质量因子对应的策略自动降权（×0.6~1.0）\r\n\r\n## 参数校准\r\n\r\n`StrategyCalibrator` 基于历史K线自动搜索最优参数：\r\n\r\n```python\r\nfrom stock_skill.strategies.strategies import StrategyCalibrator\r\n\r\n# 全量校准\r\nresults = StrategyCalibrator.calibrate(df)\r\n\r\n# 按市场状态分别校准\r\nresults = StrategyCalibrator.calibrate(df, regime=\"trend\")\r\nresults = StrategyCalibrator.calibrate_all_regimes(df)\r\n```\r\n\r\n可校准参数：RSI阈值(20-40)、KDJ阈值(30-60)、成交量倍数(1.2-2.3)、布林收口比(0.90-0.99)等\r\n\r\n## 信号融合权重\r\n\r\n| 信号源 | 权重 | 说明 |\r\n|--------|------|------|\r\n| 传统策略(去重后) | 0.45 | 按历史胜率动态调权 |\r\n| 集成引擎 | 0.30 | 市场状态检测+动态权重 |\r\n| ML策略 | 0.25 | 4模型集成投票 |\r\n\r\n## 策略相关性分组\r\n\r\n```\r\nma_family:  {ma_breakout, double_ma, volume_shrink}\r\nmacd_family: {macd_cross}\r\nboll_family: {boll_squeeze}\r\nrsi_family:  {rsi_oversold}\r\nkdj_family:  {kdj_cross}\r\nvol_family:  {vol_price_divergence, obv_trend}\r\nsupport_family: {support_bounce}\r\n```\r\n\r\n同族策略同时触发时只计1票，避免信号膨胀。\r\n\r\n## 参数优化\r\n\r\n```python\r\nfrom stock_skill.strategies.optimizer import StrategyOptimizer, WalkForwardOptimizer\r\n\r\noptimizer = StrategyOptimizer(MABreakoutStrategy)\r\noptimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\nresult = optimizer.bayesian_optimization(df, n_trials=50)\r\n```\r\n\r\n支持：网格搜索、随机搜索、贝叶斯优化、遗传算法、Walk-Forward、集成优化\r\n\r\n## 滚动窗口回测\r\n\r\nWalk-Forward 分析：在训练窗口调参，在测试窗口验证，滚动推进评估策略稳定性。\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import RollingBacktestEngine, BacktestConfig\r\n\r\n# 初始化滚动回测引擎\r\nengine = RollingBacktestEngine(\r\n    window_size_days=252,  # 训练窗口：1年\r\n    step_days=21,          # 滚动步长：1个月\r\n    config=BacktestConfig(initial_capital=1_000_000),\r\n)\r\n\r\n# 定义参数优化器（在训练窗口内调参）\r\ndef optimize_params(train_data):\r\n    # 使用 StrategyOptimizer 优化参数\r\n    from stock_skill.strategies.strategies import MABreakoutStrategy\r\n    from stock_skill.strategies.optimizer import StrategyOptimizer\r\n\r\n    optimizer = StrategyOptimizer(MABreakoutStrategy)\r\n    optimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\n    result = optimizer.bayesian_optimization(train_data[\"600036.SH\"], n_trials=20)\r\n    return result.best_params, result.best_score\r\n\r\n# 运行滚动回测\r\nresult = engine.run(\r\n    stock_data=stock_data,\r\n    signal_func=my_signal_func,\r\n    param_optimizer=optimize_params,\r\n    start_date=\"2023-01-01\",\r\n    end_date=\"2026-01-01\",\r\n)\r\n\r\n# 输出结果\r\nprint(result.summary())\r\nprint(result.to_dict())\r\n```\r\n\r\n### 输出指标\r\n\r\n| 指标 | 说明 |\r\n|------|------|\r\n| avg_sharpe | 所有窗口的平均夏普比率 |\r\n| avg_win_rate | 所有窗口的平均胜率 |\r\n| avg_return | 所有窗口的平均收益 |\r\n| avg_max_drawdown | 所有窗口的平均最大回撤 |\r\n| sharpe_std | 夏普比率标准差（越小越稳定） |\r\n| win_rate_std | 胜率标准差 |\r\n| drawdown_std | 回撤标准差 |\r\n| best_window | 表现最好的窗口 |\r\n| worst_window | 表现最差的窗口 |\n\nFile v3.3.5:skill.json\n\n{\r\n  \"name\": \"BeerGaao_Quant\",\r\n  \"display_name\": \"BeerGaao 专业量化交易\",\r\n  \"version\": \"3.3.1\",\r\n  \"description\": \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\",\r\n  \"author\": \"GanJiaKouN16\",\r\n  \"type\": \"package\",\r\n  \"tags\": [\r\n    \"quant\",\r\n    \"量化交易\",\r\n    \"策略回测\",\r\n    \"交易信号\",\r\n    \"股票\",\r\n    \"agent\"\r\n  ],\r\n  \"entry\": \"stock_skill.__main__:main\",\r\n  \"install_spec\": {\r\n    \"type\": \"pip\",\r\n    \"command\": \"pip install -e .\",\r\n    \"requires\": \"Python >=3.10\",\r\n    \"description\": \"克隆仓库后使用 pip 安装：git clone https://github.com/GanJiaKouN16/BeerGaao.git && cd BeerGaao && pip install -e .\"\r\n  },\r\n  \"dependencies\": [\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\"\r\n  ],\r\n  \"required_env_vars\": [],\r\n  \"optional_env_vars\": [\r\n    {\r\n      \"name\": \"TUSHARE_TOKEN\",\r\n      \"description\": \"Tushare API token（可选），用于获取A股历史数据\",\r\n      \"url\": \"https://tushare.pro/register\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_SINGLE_POSITION\",\r\n      \"description\": \"单个持仓最大比例\",\r\n      \"default\": \"0.30\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_TOTAL_POSITION\",\r\n      \"description\": \"总持仓最大比例\",\r\n      \"default\": \"0.80\"\r\n    },\r\n    {\r\n      \"name\": \"MIN_MARKET_SCORE\",\r\n      \"description\": \"最低市场评分\",\r\n      \"default\": \"4.0\"\r\n    },\r\n    {\r\n      \"name\": \"VOL_MULTI\",\r\n      \"description\": \"成交量倍数\",\r\n      \"default\": \"1.8\"\r\n    },\r\n    {\r\n      \"name\": \"TARGET_RATE\",\r\n      \"description\": \"目标收益率\",\r\n      \"default\": \"0.06\"\r\n    },\r\n    {\r\n      \"name\": \"STOP_LOSS_RATE\",\r\n      \"description\": \"止损率\",\r\n      \"default\": \"-0.04\"\r\n    },\r\n    {\r\n      \"name\": \"HOLD_DAYS\",\r\n      \"description\": \"持仓天数\",\r\n      \"default\": \"5\"\r\n    },\r\n    {\r\n      \"name\": \"BACKTEST_DAYS\",\r\n      \"description\": \"回测天数\",\r\n      \"default\": \"250\"\r\n    },\r\n    {\r\n      \"name\": \"COMMISSION_RATE\",\r\n      \"description\": \"佣金率\",\r\n      \"default\": \"0.0003\"\r\n    },\r\n    {\r\n      \"name\": \"STAMP_TAX_RATE\",\r\n      \"description\": \"印花税率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"SLIPPAGE_RATE\",\r\n      \"description\": \"滑点率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"CIRCUIT_BREAKER_DROP\",\r\n      \"description\": \"熔断跌幅\",\r\n      \"default\": \"-0.05\"\r\n    },\r\n    {\r\n      \"name\": \"CORRELATION_THRESHOLD\",\r\n      \"description\": \"相关性阈值\",\r\n      \"default\": \"0.7\"\r\n    },\r\n    {\r\n      \"name\": \"POLL_INTERVAL\",\r\n      \"description\": \"轮询间隔秒数\",\r\n      \"default\": \"60\"\r\n    },\r\n    {\r\n      \"name\": \"HTTP_TIMEOUT\",\r\n      \"description\": \"HTTP超时秒数\",\r\n      \"default\": \"10\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_RETRIES\",\r\n      \"description\": \"最大重试次数\",\r\n      \"default\": \"3\"\r\n    },\r\n    {\r\n      \"name\": \"DB_PATH\",\r\n      \"description\": \"数据库路径（默认存储在项目 .data/ 目录下，避免意外暴露）\",\r\n      \"default\": \".data/stock_skill.db\"\r\n    },\r\n    {\r\n      \"name\": \"EASTMONEY_UT\",\r\n      \"description\": \"东方财富 API 用户标识（通常无需修改）\",\r\n      \"default\": \"fa5fd1943c7b386f172d6893dbbd1131\"\r\n    },\r\n    {\r\n      \"name\": \"LOG_LEVEL\",\r\n      \"description\": \"日志级别\",\r\n      \"default\": \"INFO\"\r\n    }\r\n  ],\r\n  \"external_services\": [\r\n    {\r\n      \"name\": \"Tushare API\",\r\n      \"url\": \"https://api.tushare.pro\",\r\n      \"purpose\": \"获取A股历史行情、实时数据、龙虎榜等\"\r\n    },\r\n    {\r\n      \"name\": \"东方财富 EastMoney API\",\r\n      \"url\": \"https://push2.eastmoney.com\",\r\n      \"purpose\": \"获取实时行情、资金流向、板块数据\"\r\n    }\r\n  ],\r\n  \"persistence\": {\r\n    \"database\": {\r\n      \"path_env\": \"DB_PATH\",\r\n      \"default\": \"stock_skill.db\",\r\n      \"description\": \"SQLite数据库，存储信号历史、持仓、绩效数据\"\r\n    },\r\n    \"models\": {\r\n      \"path\": \"models/\",\r\n      \"description\": \"机器学习模型文件（joblib格式），使用joblib安全序列化\"\r\n    }\r\n  },\r\n  \"security\": {\r\n    \"model_serialization\": \"使用 joblib（依赖 pickle）加载模型，所有模型加载均通过 load_model_safe() 安全函数，自动执行路径白名单校验和文件完整性检查；禁用从外部输入、网络下载或用户提供的任意模型文件；推荐使用 safetensors 或 JSON 格式替代 pickle 序列化\",\r\n    \"credential_storage\": \"所有凭证通过环境变量提供，providers.py 中所有 API 参数均通过 config 对象或环境变量读取，无硬编码 token；启动时自动验证必填凭证\",\r\n    \"sandbox_recommended\": true,\r\n    \"data_scope\": \"仅读取公开市场数据，不执行实际交易\",\r\n    \"longport_credentials\": \"建议使用只读 API Token，避免提供交易凭证\",\r\n    \"database_protection\": \"SQLite 数据库存储在项目 .data/ 目录下（可通过 DB_PATH 自定义），文件权限设置为 600（仅 owner 可读写），目录权限设置为 700；如需清除历史分析数据，删除 .data/ 目录或指定的 DB_PATH 文件即可\",\r\n    \"token_validation\": \"自动检测占位符 token，防止使用示例值\"\r\n  },\r\n  \"auto_test\": true,\r\n  \"report_enabled\": true,\r\n  \"support_platform\": [\r\n    \"linux\",\r\n    \"windows\"\r\n  ]\r\n}\n\nFile v3.3.5:pyproject.toml\n\n[build-system]\r\nrequires = [\"setuptools>=68.0\", \"wheel\"]\r\nbuild-backend = \"setuptools.build_meta\"\r\n\r\n[project]\r\nname = \"BeerGaao\"\r\nversion = \"3.3.1\"\r\ndescription = \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\"\r\nreadme = \"README.md\"\r\nlicense = {text = \"MIT\"}\r\nrequires-python = \">=3.10\"\r\nauthors = [\r\n    {name = \"GanJiaKouN16\"},\r\n]\r\nkeywords = [\"stock\", \"quantitative\", \"trading\", \"agent\", \"a-share\"]\r\nclassifiers = [\r\n    \"Development Status :: 4 - Beta\",\r\n    \"Intended Audience :: Financial and Insurance Industry\",\r\n    \"License :: OSI Approved :: MIT License\",\r\n    \"Programming Language :: Python :: 3\",\r\n    \"Programming Language :: Python :: 3.10\",\r\n    \"Programming Language :: Python :: 3.11\",\r\n    \"Programming Language :: Python :: 3.12\",\r\n    \"Topic :: Office/Business :: Financial :: Investment\",\r\n]\r\ndependencies = [\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\",\r\n    \"backtrader==1.9.78.123\",\r\n    \"matplotlib==3.7.0\",\r\n    \"akshare>=1.10.0\",\r\n]\r\n\r\n[project.optional-dependencies]\r\ntushare = [\r\n    \"tushare==1.4.0\",\r\n]\r\nml = [\r\n    \"xgboost==2.0.0\",\r\n    \"lightgbm==4.0.0\",\r\n]\r\ndev = [\r\n    \"pytest==7.4.0\",\r\n]\r\n\r\n[project.urls]\r\nHomepage = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nRepository = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nIssues = \"https://github.com/GanJiaKouN16/BeerGaao/issues\"\r\n\r\n[project.scripts]\r\nbeer-gaao = \"stock_skill.__main__:main\"\r\n\r\n[tool.setuptools.packages.find]\r\ninclude = [\"stock_skill*\"]\r\n\r\n[tool.pytest.ini_options]\r\ntestpaths = [\"tests\"]\r\npython_files = [\"test_*.py\"]\r\npython_classes = [\"Test*\"]\r\npython_functions = [\"test_*\"]\n\nFile v3.3.5:pytest.ini\n\n[pytest]\r\ntestpaths = tests\r\npython_files = test_*.py\r\npython_classes = Test*\r\npython_functions = test_*\n\nFile v3.3.5:requirements.txt\n\npandas==2.0.3\r\nnumpy==1.24.3\r\nrequests==2.31.0\r\ntenacity==8.2.0\r\npython-dotenv==1.0.0\r\nscikit-learn==1.3.0\r\nscipy==1.11.0\r\nbacktrader==1.9.78.123\r\nmatplotlib==3.7.0\r\nakshare>=1.10.0\n\nArchive v3.3.4: 57 files, 133595 bytes\n\nFiles: AGENTS.md (6527b), config.example.env (723b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1748b), pytest.ini (106b), README.md (13977b), requirements.txt (183b), risk-reference.md (3628b), skill.json (5358b), SKILL.md (6440b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4236b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (19626b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9394b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (16389b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nFile v3.3.4:SKILL.md\n\n---\r\nname: beergaao\r\ndescription: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\r\nversion: 3.2.6\r\nmetadata: {\"openclaw\": {\"requires\": {\"env\": [\"TUSHARE_TOKEN\"]}, \"primaryEnv\": \"TUSHARE_TOKEN\"}}\r\n---\r\n\r\n# BeerGaao 股票量化分析师\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n## BeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合 Tushare、东方财富、Yahoo Finance（选装）、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n## 可用工具\r\n\r\n| 工具 | 功能 | 参数 |\r\n|------|------|------|\r\n| `analyze_stock` | 完整技术分析（策略+集成+ML+IC+校准） | `code` |\r\n| `get_quote` | 实时行情报价 | `code` |\r\n| `analyze_market` | 大盘环境分析 | — |\r\n| `get_money_flow` | 资金流向 | `code` |\r\n| `get_sector_flow` | 板块资金排名 | `limit` |\r\n| `get_dragon_tiger` | 龙虎榜数据 | — |\r\n| `full_review` | 完整复盘 | `watchlist` |\r\n| `backtest_bt` | Backtrader 专业回测 | `code,strategy,start,end,cash` |\r\n| `strategy_attribution` | 策略归因分析 | `days` |\r\n| `check_correlation` | 相关性检查 | `codes` |\r\n| `circuit_breaker_check` | 熔断检查 | — |\r\n| `get_market_breadth` | 市场广度指标 | — |\r\n\r\n## 调用示例\r\n\r\n**用户：\"分析一下贵州茅台的走势\"**\r\n→ 调用 `analyze_stock(\"600519.SH\")`\r\n\r\n**用户：\"今天大盘怎么样\"**\r\n→ 调用 `analyze_market()`\r\n\r\n**用户：\"招商银行资金流向\"**\r\n→ 调用 `get_money_flow(\"600036.SH\")`\r\n\r\n**用户：\"复盘一下\"**\r\n→ 调用 `full_review()`\r\n\r\n**用户：\"用MACD策略回测招商银行\"**\r\n→ 调用 `backtest_bt(\"600036.SH\", \"MACDStrategy\", \"2023-01-01\", \"2026-04-30\")`\r\n\r\n## 信号类型\r\n\r\n- **买入** — 多源共识置信度 ≥ 0.6\r\n- **卖出** — 卖出信号共识 > 买入信号\r\n- **观察** — 有买入信号但置信度 0.4-0.6\r\n- **持有** — 无明确方向信号\r\n\r\n## 支持的股票代码格式\r\n\r\n- A股：`600036.SH`（上海）、`000001.SZ`（深圳）、`300750.SZ`（创业板）\r\n- 港股：`0700.HK`\r\n- 美股：`AAPL.US`\r\n\r\n## 安装使用\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入 TUSHARE_TOKEN\r\n```\r\n\r\n## 配置要求\r\n\r\n| 变量 | 说明 | 必需 |\r\n|------|------|------|\r\n| `TUSHARE_TOKEN` | Tushare API token（只读） | 是 |\r\n| `LONGPORT_APP_KEY` | 长桥 App Key | 否 |\r\n| `LONGPORT_APP_SECRET` | 长桥 App Secret | 否 |\r\n| `LONGPORT_ACCESS_TOKEN` | 长桥 Access Token（建议只读） | 否 |\r\n\r\n## 安全说明\r\n\r\n> ⚠️ **重要安全提示**\r\n\r\n**凭证安全（强制要求）：**\r\n- 所有 API 凭证**必须**通过环境变量提供，代码中**不包含**任何硬编码的 token 或 secret\r\n- `providers.py` 中所有凭证均通过 `self._config.longport_access_token` 等配置属性读取，最终来源为环境变量\r\n- 东方财富 API 的 `ut` 参数通过 `EASTMONEY_UT` 环境变量配置（有默认值，通常无需修改）\r\n- 使用前请确保已设置以下环境变量：\r\n  - `TUSHARE_TOKEN`：Tushare API token（必填）\r\n  - `LONGPORT_APP_KEY`：长桥 App Key（可选）\r\n  - `LONGPORT_APP_SECRET`：长桥 App Secret（可选）\r\n  - `LONGPORT_ACCESS_TOKEN`：长桥 Access Token（可选，建议只读权限）\r\n- 技能启动时会自动检查必填凭证是否存在，缺失时会抛出明确的错误提示\r\n- `config.env` 已被 `.gitignore` 排除，**绝不提交到版本控制系统**\r\n\r\n**数据安全：**\r\n- 本工具仅读取公开市场数据，**不执行实际交易**\r\n- SQLite 数据库默认存储在项目 `.data/` 目录下（可通过 `DB_PATH` 环境变量自定义），已被 `.gitignore` 排除\r\n- 数据库文件权限已设置为仅 owner 可读写（600），目录权限设置为 700\r\n- 如需清除历史分析数据，删除 `.data/` 目录或指定的 `DB_PATH` 文件即可\r\n- 不要加载来源不明的模型文件，模型加载有路径白名单保护\r\n\r\n**模型安全：**\r\n- 仅加载项目 `models/` 目录内本地生成的模型文件\r\n- 禁止加载外部输入、网络下载或用户提供的任意模型文件\r\n- 所有模型加载均通过 `load_model_safe()` 安全函数，自动执行路径白名单校验和文件完整性检查\r\n- joblib 底层使用 pickle，存在反序列化风险，请勿加载不可信文件\r\n\r\n**运行环境：**\r\n- 建议在虚拟环境中安装运行\r\n- 仅从官方仓库克隆代码：`https://github.com/GanJiaKouN16/BeerGaao.git`\r\n- 定期轮换 API 密钥，移除不再使用的旧凭证\r\n\r\n## 输出格式\r\n\r\n所有工具返回统一格式：\r\n\r\n```json\r\n{\"tool\": \"工具名\", \"status\": \"success | error\", \"data\": {...}}\r\n```\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.4:README.md\n\n# BeerGaao\r\n\r\n**胜率总是倍儿高，收益也嘛倍儿好**\r\n\r\n股票量化分析 Agent 工具集\r\n\r\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/beergaao-blue.svg)](https://pypi.org/project/beergaao/)\r\n[![Downloads](https://img.shields.io/pypi/dm/beergaao.svg)](https://pypi.org/project/beergaao/)\r\n\r\n---\r\n\r\n## 🌟 Introduction\r\n\r\n[![BeerGaao](https://img.shields.io/badge/BeerGaao-股票量化分析-blue)](https://github.com/GanJiaKouN16/BeerGaao)\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\nBeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n---\r\n\r\n## 🏆 Backtest Results\r\n\r\n三年回测验证（2023-04-30 ~ 2026-04-30）：\r\n\r\n| 指标 | 600036.SH 招商银行 | 000858.SZ 五粮液 | 688702.SH 盛科通信 |\r\n|------|-------------------|-----------------|-------------------|\r\n| 总收益率 | **+28.64%** | **+19.39%** | **+57.22%** |\r\n| 年化收益率 | **+8.76%** | **+6.09%** | **+20.45%** |\r\n| 最大回撤 | **12.31%** | 18.74% | 29.83% |\r\n| 胜率 | **58.21%** | **54.68%** | 52.24% |\r\n| 盈亏比 | **1.86:1** | **1.63:1** | **1.78:1** |\r\n| 夏普比率 | 1.28 | 0.87 | **1.54** |\r\n| 超额收益 | **+33.56%** | **+24.31%** | **+62.14%** |\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n### 🐍 环境要求\r\n\r\n- Python 3.10+\r\n- 操作系统：Windows / macOS / Linux\r\n\r\n### 📦 安装\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入配置\r\n```\r\n\r\n### ⚙️ 配置\r\n\r\n编辑 `config.env` 文件，填入以下配置：\r\n\r\n```bash\r\n# Tushare（可选，历史K线数据源）\r\n# 安装：pip install tushare 或 pip install -e \".[tushare]\"\r\nTUSHARE_TOKEN=your_tushare_token_here\r\n\r\n# 长桥 OpenAPI（可选，支持美股/港股）\r\nLONGPORT_APP_KEY=your_longport_app_key_here\r\nLONGPORT_APP_SECRET=your_longport_app_secret_here\r\nLONGPORT_ACCESS_TOKEN=your_longport_access_token_here\r\n```\r\n\r\n> ⚠️ **安全提示**：`config.env` 包含敏感 Token，已被 `.gitignore` 排除，请勿提交到版本库。\r\n\r\n### 🚀 运行\r\n\r\n#### 命令行模式\r\n\r\n```bash\r\npython -m stock_skill                              # 完整复盘\r\npython -m stock_skill --analyze 600036.SH           # 技术分析\r\npython -m stock_skill --market                      # 大盘环境\r\npython -m stock_skill --quote 300750.SZ             # 实时行情\r\npython -m stock_skill --flow 600036.SH              # 资金流向\r\npython -m stock_skill --breadth                     # 市场广度\r\npython -m stock_skill --positions                   # 持仓查询\r\npython -m stock_skill --perf                        # 回填信号绩效\r\npython -m stock_skill --attribution                 # 策略归因分析\r\npython -m stock_skill --monitor                     # 轮询监控\r\npython -m stock_skill \"招商银行怎么分析\"             # 自然语言\r\n```\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom stock_skill.tools.tools import StockTools\r\n\r\ntools = StockTools()\r\n\r\n# 分析（自动集成：传统策略 + 集成引擎 + ML + 因子IC + 参数校准）\r\nresult = tools.analyze_stock(\"600036.SH\")\r\n\r\n# 返回数据包含\r\n# - signal:     最终交易信号（BUY/SELL/HOLD/WATCH）\r\n# - ensemble:   集成引擎结果（市场状态/共识度/策略同意数）\r\n# - ml_signal:  ML策略结果\r\n# - factor_ic:  因子IC分析（各因子预测能力）\r\n# - calibration: 参数校准结果\r\n# - backtest:   回测指标（胜率/夏普/盈亏比）\r\n\r\n# 策略归因\r\nattribution = tools.strategy_attribution(days=30)\r\n\r\n# 完整复盘\r\nreport = tools.full_review()\r\n```\r\n\r\n#### 多数据源使用\r\n\r\n```python\r\nfrom stock_skill.providers.providers import DataGateway\r\n\r\ngateway = DataGateway()\r\n\r\n# 使用 Tushare（需安装：pip install tushare）\r\ndf = gateway.get_kline(\"600036.SH\", source=\"tushare\")\r\n\r\n# 使用 Yahoo Finance（支持美股/港股）\r\ndf = gateway.get_kline(\"AAPL.US\", source=\"yahoo\")\r\n\r\n# 使用长桥 OpenAPI\r\nquote = gateway.get_realtime_quote(\"700.HK\", source=\"longport\")\r\n```\r\n\r\n#### Agent 集成\r\n\r\n`TOOL_SCHEMAS` 可直接用于 OpenAI Function Calling / Claude Tool Use：\r\n\r\n```python\r\nfrom stock_skill.tools.tools import TOOL_SCHEMAS\r\n```\r\n\r\n### 🧪 测试\r\n\r\n```bash\r\npython -m pytest tests/ -v\r\n```\r\n\r\n---\r\n\r\n## 🏭 Scenarios\r\n\r\n### 🎯 目标：股票量化分析 Agent\r\n\r\nBeerGaao 旨在构建一个 股票量化分析 Agent，能够：\r\n\r\n- 📊 **数据获取**：整合多数据源（东方财富（必装）、Tushare、Yahoo、长桥（选装）），获取实时行情、历史 K 线、资金流向\r\n- 🔍 **技术分析**：自动计算 MA、MACD、RSI、KDJ、布林带等技术指标\r\n- 🤖 **策略生成**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 📈 **回测验证**：三年历史数据回测，评估策略胜率、夏普比率、最大回撤\r\n- 🛡️ **风险控制**：仓位管理、止损止盈、熔断机制、相关性检查\r\n\r\n### 📈 支持场景\r\n\r\n| 场景 | 功能 | 命令 |\r\n|------|------|------|\r\n| 💹 技术分析 | 单股深度分析，生成交易信号 | `--analyze 600036.SH` |\r\n| 🌍 大盘环境 | 市场情绪、涨跌统计、量能分析 | `--market` |\r\n| 📊 实时行情 | 多数据源实时报价 | `--quote 300750.SZ` |\r\n| 💰 资金流向 | 主力资金、板块资金、龙虎榜 | `--flow 600036.SH` |\r\n| 📋 完整复盘 | 一键生成当日复盘报告 | 无参数 |\r\n| 🤖 自然语言 | 支持中文自然语言交互 | `\"招商银行怎么分析\"` |\r\n\r\n---\r\n\r\n## ⚙️ Framework\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                      BeerGaao 架构                          │\r\n├─────────────────────────────────────────────────────────────┤\r\n│                                                             │\r\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │\r\n│  │  Tushare    │  │  东方财富   │  │  Yahoo      │  选装   │\r\n│  │  Provider   │  │  Provider   │  │  Provider   │         │\r\n│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │\r\n│         │                │                │                 │\r\n│         └────────────────┼────────────────┘                 │\r\n│                          │                                  │\r\n│                    ┌─────▼─────┐                            │\r\n│                    │   Data    │                            │\r\n│                    │  Gateway  │                            │\r\n│                    └─────┬─────┘                            │\r\n│                          │                                  │\r\n│  ┌───────────────────────┼───────────────────────┐         │\r\n│  │                       │                       │         │\r\n│  ▼                       ▼                       ▼         │\r\n│ ┌─────────┐      ┌──────────────┐      ┌─────────────┐    │\r\n│ │ 技术指标 │      │   策略引擎   │      │  ML 策略    │    │\r\n│ │ MA/MACD │      │ 10+ 传统策略 │      │ XGBoost/    │    │\r\n│ │ RSI/KDJ │      │ + 集成引擎   │      │ LightGBM    │    │\r\n│ └────┬────┘      └──────┬──────┘      └──────┬──────┘    │\r\n│      │                  │                     │           │\r\n│      └──────────────────┼─────────────────────┘           │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  信号融合  │                            │\r\n│                   │  去冗余    │                            │\r\n│                   │  IC 过滤   │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  风险控制  │                            │\r\n│                   │  仓位管理  │                            │\r\n│                   │  止损止盈  │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  交易信号  │                            │\r\n│                   │ BUY/SELL  │                            │\r\n│                   │ HOLD/WATCH│                            │\r\n│                   └───────────┘                            │\r\n│                                                             │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### 核心模块\r\n\r\n| 模块 | 职责 | 文件 |\r\n|------|------|------|\r\n| `providers/` | 数据源层，整合多数据源 | `providers.py` |\r\n| `indicators.py` | 技术指标计算 | `indicators.py` |\r\n| `strategies/` | 策略引擎，10+ 传统策略 + 集成 | `strategies.py`, `ensemble.py` |\r\n| `factors/` | 因子分析，IC 评估 | `base.py`, `fundamental.py` |\r\n| `backtest/` | 回测引擎 | `engine.py` |\r\n| `risk.py` | 风险控制 | `risk.py` |\r\n| `tools/` | Agent 工具层 | `tools.py` |\r\n\r\n---\r\n\r\n## 📃 Data Sources\r\n\r\n| 数据源 | 覆盖范围 | 配置要求 | 用途 | 安装方式 |\r\n|--------|---------|---------|------|---------|\r\n| Tushare | 股票 | `TUSHARE_TOKEN` | 历史 K 线、基本面 | 必装 |\r\n| 东方财富 | 股票 | 无需配置 | 实时行情、资金流向 | 必装 |\r\n| Yahoo Finance | 全球 | 无需配置 | 美股/港股行情 | 选装：`pip install yfinance` |\r\n| 长桥 OpenAPI | 美股/港股/股票 | `LONGPORT_*` | 实时行情（建议只读） | 选装：`pip install longport` |\r\n\r\n---\r\n\r\n## 🔒 Security\r\n\r\n**凭证安全：**\r\n- ✅ 所有凭证通过环境变量配置，代码中无硬编码 token\r\n- ✅ `config.env` 已被 `.gitignore` 排除\r\n- ⚠️ 建议使用只读 API Token，避免提供交易凭证\r\n\r\n**数据安全：**\r\n- ✅ 仅读取公开市场数据，不执行实际交易\r\n- ⚠️ SQLite 数据库存储在本地，请妥善保管\r\n- ⚠️ 不要加载来源不明的模型文件\r\n\r\n**运行环境：**\r\n- ⚠️ 建议在虚拟环境中安装运行\r\n- ✅ 仅从官方仓库克隆代码\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\n欢迎贡献代码！请遵循以下步骤：\r\n\r\n1. Fork 本仓库\r\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\r\n5. 创建 Pull Request\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\n本项目采用 MIT License - 详见 [LICENSE](LICENSE) 文件\r\n\r\n---\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cfx0y2qzfavg4yz1dj76a5n85v46w\",\n  \"slug\": \"beergaao\",\n  \"version\": \"3.3.4\",\n  \"publishedAt\": 1779064372836\n}\n\nFile v3.3.4:AGENTS.md\n\n# AGENTS.md — BeerGaao 项目规范\r\n\r\n## 1. 项目概述\r\n\r\nBeerGaao 是一个 A 股量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n技术栈：Python 3.10+，pandas/numpy 数据处理，requests/akshare 必装，tushare（选装）/yfinance（选装）/longport（选装）多数据源，scikit-learn/xgboost/lightgbm 机器学习，backtrader 回测引擎，SQLite 状态持久化。\r\n\r\n仓库结构：\r\n```\r\nBeerGaao/\r\n├── stock_skill/           # 主包\r\n│   ├── __main__.py        # CLI 入口（--analyze, --market, --backtest-bt 等）\r\n│   ├── config.py          # 配置管理（环境变量加载）\r\n│   ├── models.py          # 数据模型定义\r\n│   ├── state.py           # SQLite 状态持久化\r\n│   ├── risk.py            # 风控计算\r\n│   ├── indicators.py      # 技术指标计算\r\n│   ├── semantic.py        # 自然语言查询解析\r\n│   ├── monitor.py         # 轮询监控\r\n│   ├── tools/             # Agent 工具层（串联所有模块）\r\n│   ├── strategies/        # 策略定义 + 参数校准 + Backtrader 适配\r\n│   ├── factors/           # 因子基类 + 合成引擎\r\n│   ├── backtest/          # 回测引擎\r\n│   ├── providers/         # 数据源 + 缓存\r\n│   ├── attribution/       # 策略归因\r\n│   └── execution/         # 执行层\r\n├── tests/                 # 测试套件\r\n├── .env.example           # 环境变量模板\r\n├── pyproject.toml         # 项目配置\r\n└── requirements.txt       # 依赖清单\r\n```\r\n\r\n## 2. 快速命令\r\n\r\n```bash\r\n# 安装依赖\r\npip install -e \".[ml,dev]\"\r\n\r\n# 可选：安装 Tushare 数据源\r\npip install -e \".[tushare]\"\r\n\r\n# 配置环境变量\r\ncp .env.example .env\r\n# 编辑 .env 填入配置（TUSHARE_TOKEN 为可选，仅 Tushare 数据源需要）\r\n\r\n# 运行主程序\r\npython -m stock_skill                    # 完整复盘\r\npython -m stock_skill --analyze 600036.SH  # 分析个股\r\npython -m stock_skill --market           # 市场概览\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy\r\n\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 日志\r\ntail -f stock_skill.log\r\n```\r\n\r\n环境变量配置：\r\n- `.env` 文件位于项目根目录\r\n- 启动脚本通过 `python-dotenv` 自动加载\r\n- 关键变量：`TUSHARE_TOKEN`（可选，仅 Tushare 数据源需要）, `LOG_LEVEL`, `DB_PATH`\r\n\r\n## 3. 后端架构\r\n\r\n```\r\nstock_skill/\r\n├── tools/tools.py         # Agent 工具层，串联所有模块，返回标准化 JSON\r\n├── strategies/            # 策略层\r\n│   ├── strategies.py      # 策略定义 + @register 装饰器注册\r\n│   ├── ensemble.py        # 集成引擎 + 市场状态\r\n│   └── backtrader_adapters.py  # Backtrader 策略适配\r\n├── factors/               # 因子层\r\n│   ├── base.py            # 因子基类 + @register_factor 注册\r\n│   └── *.py               # 具体因子实现\r\n├── backtest/engine.py     # 回测引擎（三年历史数据回测）\r\n├── providers/providers.py # 多数据源网关（tushare/东财 必装，yfinance/长桥 选装）\r\n├── config.py              # 配置管理\r\n├── state.py               # SQLite 持久化（信号历史、持仓）\r\n├── risk.py                # 风控计算（止损、仓位）\r\n├── models.py              # 数据模型（Signal, Position, FactorResult）\r\n└── semantic.py            # 自然语言查询解析\r\n```\r\n\r\n核心子系统：\r\n- **策略引擎**：10+ 传统策略 + ML 策略 + 集成引擎，支持参数自动校准\r\n- **因子平台**：因子 IC 分析、策略归因、因子合成\r\n- **数据网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装），带缓存\r\n- **回测系统**：基于 Backtrader，支持三年历史数据回测\r\n\r\n## 4. 前端架构\r\n\r\n本项目为纯后端 CLI 工具，无前端。通过 CLI 命令或自然语言查询交互。\r\n\r\n## 5. 关键约定\r\n\r\n1. **返回格式**：所有工具方法返回 `{\"tool\": \"name\", \"status\": \"success|error\", \"data\": {...}}`\r\n2. **异常处理**：捕获 Exception，返回 error 状态，不抛出到调用方\r\n3. **类型注解**：使用 `Dict[str, float]` 而非 `dict[str, float]`（兼容 Python 3.9-）\r\n4. **延迟注解**：所有文件使用 `from __future__ import annotations`\r\n5. **日志规范**：使用 `logging.getLogger(__name__)`，不使用 print\r\n6. **策略注册**：新策略必须使用 `@register` 装饰器，继承 `Strategy`\r\n7. **因子注册**：新因子必须使用 `@register_factor` 装饰器，继承 `Factor`\r\n8. **配置管理**：所有配置通过环境变量或 `config.env`，硬编码禁止\r\n\r\n## 6. 本地开发及验证流程\r\n\r\n```\r\n改 → 构建 → 启动 → 验证\r\n1. 修改代码（遵循命名约定）\r\n2. 运行测试：python -m pytest tests/ -v\r\n3. 启动 CLI：python -m stock_skill --analyze <股票代码>\r\n4. 检查日志：tail -f stock_skill.log\r\n5. 验证输出：检查 JSON 格式和数据正确性\r\n```\r\n\r\n验证模板：\r\n```bash\r\n# 分析个股\r\npython -m stock_skill --analyze 600036.SH\r\n\r\n# 市场概览\r\npython -m stock_skill --market\r\n\r\n# 回测验证\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy --start 2023-01-01 --end 2026-04-30\r\n```\r\n\r\n## 7. 质量检查\r\n\r\n```bash\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 类型检查（可选）\r\nmypy stock_skill/\r\n\r\n# 代码格式（可选）\r\nblack stock_skill/ tests/\r\nisort stock_skill/ tests/\r\n```\r\n\r\n## 8. 参考项目约定\r\n\r\n- 策略类命名：`PascalCase` + `Strategy` 后缀（如 `MABreakoutStrategy`）\r\n- 因子类命名：`PascalCase` + `Factor` 后缀（如 `PEFactor`）\r\n- 工具方法命名：`snake_case`（如 `analyze_stock`）\r\n- 配置项命名：`UPPER_SNAKE_CASE`（如 `STOP_LOSS_RATE`）\r\n- 内部方法：`_` 前缀（如 `_run_backtest`）\r\n\r\n## 9. 文档导航\r\n\r\n| 文档 | 位置 | 说明 |\r\n|------|------|------|\r\n| 项目说明 | `README.md` | 完整功能介绍、回测结果、使用示例 |\r\n| 因子参考 | `factor-reference.md` | 因子定义和计算方法 |\r\n| 策略参考 | `strategy-reference.md` | 策略逻辑和参数说明 |\r\n| 风控参考 | `risk-reference.md` | 风控规则和止损策略 |\r\n| 技能定义 | `SKILL.md` | AI Agent 技能接口定义 |\r\n| 配置模板 | `.env.example` | 环境变量配置示例 |\n\nFile v3.3.4:factor-reference.md\n\n# 因子体系参考\r\n\r\n## 因子列表（19个）\r\n\r\n### 基本面因子（7个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `pe_ttm` | 市盈率（TTM） |\r\n| `pb` | 市净率 |\r\n| `roe` | 净资产收益率 |\r\n| `dividend_yield` | 股息率 |\r\n| `revenue_growth` | 营收增长率 |\r\n| `profit_growth` | 净利润增长率 |\r\n| eps_ttm | 每股收益动量 |\r\n\r\n### 资金面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `main_net_inflow` | 近5日主力净流入均值 |\r\n| `northbound` | 北向资金持股比例变化 |\r\n| `margin` | 融资余额变化率 |\r\n| `vpt` | 量价趋势指标（20日斜率） |\r\n| `mf_strength` | 大单净流入/总成交额 |\r\n| `inst_holding` | 机构持仓比例变化 |\r\n\r\n### 情绪面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `turnover` | 换手率 |\r\n| `volatility` | 波动率 |\r\n| `limit_up_momentum` | 涨停动量 |\r\n| `price_strength` | 价格强度 |\r\n| `consecutive_up` | 连续上涨天数 |\r\n| `news_sentiment` | 新闻情绪（东方财富股吧爬虫） |\r\n\r\n## 因子合成\r\n\r\n```python\r\nfrom stock_skill.factors.base import FactorCombiner\r\n\r\n# 等权合成\r\nscores = FactorCombiner.equal_weight(factors)\r\n\r\n# IC加权\r\nscores = FactorCombiner.ic_weight(factors, ic_data)\r\n\r\n# 最大化IC_IR（二次规划优化）\r\nscores = FactorCombiner.maximize_ic_ir(factors, returns)\r\n```\r\n\r\n## 增强IC分析\r\n\r\n`EnhancedFactorAnalyzer` 提供：\r\n\r\n- **滚动IC** — 60日窗口滚动计算Spearman秩相关\r\n- **IC衰减** — 计算1-20天延迟的IC，检测半衰期和持续性\r\n- **因子换手率** — 衡量因子持仓稳定性\r\n- **t统计量 + p值** — 判断IC是否显著\r\n\r\n主流程中自动对 ma5/ma10/ma20/rsi/dif/dea/macd/k/d/boll_mid/atr 计算IC：\r\n\r\n```json\r\n{\r\n  \"rsi\": {\"ic\": 0.035, \"ic_ir\": 0.42, \"significant\": true},\r\n  \"ma20\": {\"ic\": 0.012, \"ic_ir\": 0.15, \"significant\": false}\r\n}\r\n```\r\n\r\n显著性标准：|IC| > 0.02 且 |ICIR| > 0.3\r\n\r\n## IC过滤机制\r\n\r\n策略依赖的因子如果不显著，该策略的置信度自动降权：\r\n\r\n| 情况 | 乘数 |\r\n|------|------|\r\n| 所有依赖因子显著 | ×1.0 |\r\n| 部分因子不显著 | ×0.8 |\r\n| 全部因子不显著 | ×0.6 |\r\n| 无因子映射 | ×1.0 |\r\n\r\n策略→因子映射：`rsi_oversold`→`rsi`, `kdj_cross`→`k,d`, `macd_cross`→`dif,dea,macd` 等\r\n\r\n## 自定义因子\r\n\r\n```python\r\nfrom stock_skill.factors.base import Factor, register_factor\r\n\r\n@register_factor\r\nclass MyFactor(Factor):\r\n    name = \"my_factor\"\r\n    category = \"custom\"\r\n    description = \"自定义因子\"\r\n\r\n    def compute(self, df, **kwargs):\r\n        return some_value\r\n```\n\nFile v3.3.4:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理\r\n\r\n```\r\n仓位 = 基础仓位 × 市场因子 × 置信度因子 × ATR因子\r\n```\r\n\r\n| 因子 | 计算 |\r\n|------|------|\r\n| 基础仓位 | MAX_SINGLE_POSITION / 信号数 |\r\n| 市场因子 | 情绪≥8→1.3, ≥6→1.1, ≥4→0.8, ≥2→0.5 |\r\n| 置信度因子 | min(置信度/0.6, 1.5) |\r\n| ATR因子 | ATR/价格>4%→0.7, >3%→0.85 |\r\n\r\n### 相关性风控\r\n\r\n检测组合内资产相关系数，超过阈值（默认0.7）时告警\r\n\r\n### 熔断机制\r\n\r\n| 触发条件 | 说明 |\r\n|---------|------|\r\n| 跌停潮 | 跌停股数 > 30 |\r\n| 极端弱势 | 情绪分 < 2/10 |\r\n| 普跌 | 下跌占比 > 90% |\r\n\r\n## 专业回测引擎\r\n\r\n`BacktestEngine` 支持：\r\n\r\n| 特性 | 说明 |\r\n|------|------|\r\n| 复权处理 | 前复权/后复权（需adj_factor列） |\r\n| 涨跌停限制 | 涨停封板不可买入，跌停封板不可卖出 |\r\n| T+1约束 | 今日买入明日才能卖出 |\r\n| 成交量约束 | 最大参与率10% |\r\n| 成交本模型 | 佣金万三（最低5元）+ 印花税千一 + 滑点（固定/百分比/成交量冲击） |\r\n| 基准对比 | Alpha/Beta/信息比率/跟踪误差 |\r\n| 指标 | 总收益/年化收益/最大回撤/夏普/索提诺/卡尔马/胜率/盈亏比 |\r\n\r\n### 快速回测\r\n\r\n`_run_backtest(df)` — 在 `analyze_stock` 中自动运行，返回胜率/夏普/盈亏比\r\n\r\n### 专业回测\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import BacktestEngine, BacktestConfig, CostModel\r\n\r\nconfig = BacktestConfig(\r\n    initial_capital=1_000_000,\r\n    cost_model=CostModel(commission_rate=0.0003, stamp_tax_rate=0.001),\r\n    enforce_t1=True,\r\n    enforce_limit=True,\r\n    enforce_volume=True,\r\n)\r\nengine = BacktestEngine(config)\r\nmetrics = engine.run(stock_data, signal_func, benchmark_data=bm_df)\r\n```\r\n\r\n## 绩效追踪\r\n\r\n### 信号回填\r\n\r\n`evaluate_signal_performance` — 回填近10天未记录的信号实际收益：\r\n\r\n- 计算 1d/3d/5d/10d 收益率\r\n- 判断是否触发止损/止盈\r\n- 写入 `signal_performance` 表\r\n- 刷新集成引擎的策略权重\r\n\r\n### 策略归因\r\n\r\n`strategy_attribution(days=30)` — 追踪收益来源：\r\n\r\n```json\r\n{\r\n  \"attributions\": [\r\n    {\"strategy\": \"macd_cross\", \"signals\": 15, \"win_rate\": 0.67, \"avg_return_5d\": 0.023, \"contribution\": 0.23},\r\n    {\"strategy\": \"rsi_oversold\", \"signals\": 8, \"win_rate\": 0.75, \"avg_return_5d\": 0.018, \"contribution\": 0.11}\r\n  ]\r\n}\r\n```\r\n\r\n贡献度 = 胜率 × 均收益 × 信号数\r\n\r\n## 交易成本\r\n\r\n| 项目 | 费率 |\r\n|------|------|\r\n| 佣金 | 万三（双向，最低5元） |\r\n| 印花税 | 千一（卖出） |\r\n| 滑点 | 固定/百分比/成交量冲击 三种模型 |\r\n\r\n## Brinson归因\r\n\r\n```python\r\nfrom stock_skill.attribution.brinson import BrinsonModel\r\n\r\nresult = BrinsonModel.single_period(\r\n    portfolio_weights={\"tech\": 0.4, \"finance\": 0.3},\r\n    benchmark_weights={\"tech\": 0.3, \"finance\": 0.4},\r\n    portfolio_returns={\"tech\": 0.05, \"finance\": 0.02},\r\n    benchmark_returns={\"tech\": 0.03, \"finance\": 0.04},\r\n)\r\n# 配置效应 + 选择效应 + 交互效应\r\n```\n\nFile v3.3.4:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2) |\r\n\r\n### 集成ML策略\r\n\r\n```python\r\nfrom stock_skill.strategies.ml_strategies import EnsembleMLStrategy\r\n\r\nml = EnsembleMLStrategy()\r\nml.train(df, forward_periods=5, threshold=0.02)\r\nsignal = ml.predict(df)  # 返回 MLSignal(direction, confidence, ...)\r\n```\r\n\r\n集成策略自动：\r\n1. 训练4个模型并计算准确率\r\n2. 按准确率分配投票权重\r\n3. 加权投票融合，阈值 > 0.3 才输出信号\r\n\r\n## 集成引擎\r\n\r\n- **市场状态检测** — ADX趋势强度 + 波动率，自动识别 trend_up/trend_down/range/volatile\r\n- **动态权重** — 按市场状态和历史胜率调整各策略权重\r\n- **信号去冗余** — 同族策略（如MA系3个）只取最高置信度代表\r\n- **IC过滤** — 因子显著性评估，低质量因子对应的策略自动降权（×0.6~1.0）\r\n\r\n## 参数校准\r\n\r\n`StrategyCalibrator` 基于历史K线自动搜索最优参数：\r\n\r\n```python\r\nfrom stock_skill.strategies.strategies import StrategyCalibrator\r\n\r\n# 全量校准\r\nresults = StrategyCalibrator.calibrate(df)\r\n\r\n# 按市场状态分别校准\r\nresults = StrategyCalibrator.calibrate(df, regime=\"trend\")\r\nresults = StrategyCalibrator.calibrate_all_regimes(df)\r\n```\r\n\r\n可校准参数：RSI阈值(20-40)、KDJ阈值(30-60)、成交量倍数(1.2-2.3)、布林收口比(0.90-0.99)等\r\n\r\n## 信号融合权重\r\n\r\n| 信号源 | 权重 | 说明 |\r\n|--------|------|------|\r\n| 传统策略(去重后) | 0.45 | 按历史胜率动态调权 |\r\n| 集成引擎 | 0.30 | 市场状态检测+动态权重 |\r\n| ML策略 | 0.25 | 4模型集成投票 |\r\n\r\n## 策略相关性分组\r\n\r\n```\r\nma_family:  {ma_breakout, double_ma, volume_shrink}\r\nmacd_family: {macd_cross}\r\nboll_family: {boll_squeeze}\r\nrsi_family:  {rsi_oversold}\r\nkdj_family:  {kdj_cross}\r\nvol_family:  {vol_price_divergence, obv_trend}\r\nsupport_family: {support_bounce}\r\n```\r\n\r\n同族策略同时触发时只计1票，避免信号膨胀。\r\n\r\n## 参数优化\r\n\r\n```python\r\nfrom stock_skill.strategies.optimizer import StrategyOptimizer, WalkForwardOptimizer\r\n\r\noptimizer = StrategyOptimizer(MABreakoutStrategy)\r\noptimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\nresult = optimizer.bayesian_optimization(df, n_trials=50)\r\n```\r\n\r\n支持：网格搜索、随机搜索、贝叶斯优化、遗传算法、Walk-Forward、集成优化\r\n\r\n## 滚动窗口回测\r\n\r\nWalk-Forward 分析：在训练窗口调参，在测试窗口验证，滚动推进评估策略稳定性。\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import RollingBacktestEngine, BacktestConfig\r\n\r\n# 初始化滚动回测引擎\r\nengine = RollingBacktestEngine(\r\n    window_size_days=252,  # 训练窗口：1年\r\n    step_days=21,          # 滚动步长：1个月\r\n    config=BacktestConfig(initial_capital=1_000_000),\r\n)\r\n\r\n# 定义参数优化器（在训练窗口内调参）\r\ndef optimize_params(train_data):\r\n    # 使用 StrategyOptimizer 优化参数\r\n    from stock_skill.strategies.strategies import MABreakoutStrategy\r\n    from stock_skill.strategies.optimizer import StrategyOptimizer\r\n\r\n    optimizer = StrategyOptimizer(MABreakoutStrategy)\r\n    optimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\n    result = optimizer.bayesian_optimization(train_data[\"600036.SH\"], n_trials=20)\r\n    return result.best_params, result.best_score\r\n\r\n# 运行滚动回测\r\nresult = engine.run(\r\n    stock_data=stock_data,\r\n    signal_func=my_signal_func,\r\n    param_optimizer=optimize_params,\r\n    start_date=\"2023-01-01\",\r\n    end_date=\"2026-01-01\",\r\n)\r\n\r\n# 输出结果\r\nprint(result.summary())\r\nprint(result.to_dict())\r\n```\r\n\r\n### 输出指标\r\n\r\n| 指标 | 说明 |\r\n|------|------|\r\n| avg_sharpe | 所有窗口的平均夏普比率 |\r\n| avg_win_rate | 所有窗口的平均胜率 |\r\n| avg_return | 所有窗口的平均收益 |\r\n| avg_max_drawdown | 所有窗口的平均最大回撤 |\r\n| sharpe_std | 夏普比率标准差（越小越稳定） |\r\n| win_rate_std | 胜率标准差 |\r\n| drawdown_std | 回撤标准差 |\r\n| best_window | 表现最好的窗口 |\r\n| worst_window | 表现最差的窗口 |\n\nFile v3.3.4:skill.json\n\n{\r\n  \"name\": \"BeerGaao_Quant\",\r\n  \"display_name\": \"BeerGaao 专业量化交易\",\r\n  \"version\": \"3.3.1\",\r\n  \"description\": \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\",\r\n  \"author\": \"GanJiaKouN16\",\r\n  \"type\": \"package\",\r\n  \"tags\": [\r\n    \"quant\",\r\n    \"量化交易\",\r\n    \"策略回测\",\r\n    \"交易信号\",\r\n    \"股票\",\r\n    \"agent\"\r\n  ],\r\n  \"entry\": \"stock_skill.__main__:main\",\r\n  \"install_spec\": {\r\n    \"type\": \"pip\",\r\n    \"command\": \"pip install -e .\",\r\n    \"requires\": \"Python >=3.10\",\r\n    \"description\": \"克隆仓库后使用 pip 安装：git clone https://github.com/GanJiaKouN16/BeerGaao.git && cd BeerGaao && pip install -e .\"\r\n  },\r\n  \"dependencies\": [\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\"\r\n  ],\r\n  \"required_env_vars\": [],\r\n  \"optional_env_vars\": [\r\n    {\r\n      \"name\": \"TUSHARE_TOKEN\",\r\n      \"description\": \"Tushare API token（可选），用于获取A股历史数据\",\r\n      \"url\": \"https://tushare.pro/register\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_SINGLE_POSITION\",\r\n      \"description\": \"单个持仓最大比例\",\r\n      \"default\": \"0.30\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_TOTAL_POSITION\",\r\n      \"description\": \"总持仓最大比例\",\r\n      \"default\": \"0.80\"\r\n    },\r\n    {\r\n      \"name\": \"MIN_MARKET_SCORE\",\r\n      \"description\": \"最低市场评分\",\r\n      \"default\": \"4.0\"\r\n    },\r\n    {\r\n      \"name\": \"VOL_MULTI\",\r\n      \"description\": \"成交量倍数\",\r\n      \"default\": \"1.8\"\r\n    },\r\n    {\r\n      \"name\": \"TARGET_RATE\",\r\n      \"description\": \"目标收益率\",\r\n      \"default\": \"0.06\"\r\n    },\r\n    {\r\n      \"name\": \"STOP_LOSS_RATE\",\r\n      \"description\": \"止损率\",\r\n      \"default\": \"-0.04\"\r\n    },\r\n    {\r\n      \"name\": \"HOLD_DAYS\",\r\n      \"description\": \"持仓天数\",\r\n      \"default\": \"5\"\r\n    },\r\n    {\r\n      \"name\": \"BACKTEST_DAYS\",\r\n      \"description\": \"回测天数\",\r\n      \"default\": \"250\"\r\n    },\r\n    {\r\n      \"name\": \"COMMISSION_RATE\",\r\n      \"description\": \"佣金率\",\r\n      \"default\": \"0.0003\"\r\n    },\r\n    {\r\n      \"name\": \"STAMP_TAX_RATE\",\r\n      \"description\": \"印花税率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"SLIPPAGE_RATE\",\r\n      \"description\": \"滑点率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"CIRCUIT_BREAKER_DROP\",\r\n      \"description\": \"熔断跌幅\",\r\n      \"default\": \"-0.05\"\r\n    },\r\n    {\r\n      \"name\": \"CORRELATION_THRESHOLD\",\r\n      \"description\": \"相关性阈值\",\r\n      \"default\": \"0.7\"\r\n    },\r\n    {\r\n      \"name\": \"POLL_INTERVAL\",\r\n      \"description\": \"轮询间隔秒数\",\r\n      \"default\": \"60\"\r\n    },\r\n    {\r\n      \"name\": \"HTTP_TIMEOUT\",\r\n      \"description\": \"HTTP超时秒数\",\r\n      \"default\": \"10\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_RETRIES\",\r\n      \"description\": \"最大重试次数\",\r\n      \"default\": \"3\"\r\n    },\r\n    {\r\n      \"name\": \"DB_PATH\",\r\n      \"description\": \"数据库路径（默认存储在项目 .data/ 目录下，避免意外暴露）\",\r\n      \"default\": \".data/stock_skill.db\"\r\n    },\r\n    {\r\n      \"name\": \"EASTMONEY_UT\",\r\n      \"description\": \"东方财富 API 用户标识（通常无需修改）\",\r\n      \"default\": \"fa5fd1943c7b386f172d6893dbbd1131\"\r\n    },\r\n    {\r\n      \"name\": \"LOG_LEVEL\",\r\n      \"description\": \"日志级别\",\r\n      \"default\": \"INFO\"\r\n    }\r\n  ],\r\n  \"external_services\": [\r\n    {\r\n      \"name\": \"Tushare API\",\r\n      \"url\": \"https://api.tushare.pro\",\r\n      \"purpose\": \"获取A股历史行情、实时数据、龙虎榜等\"\r\n    },\r\n    {\r\n      \"name\": \"东方财富 EastMoney API\",\r\n      \"url\": \"https://push2.eastmoney.com\",\r\n      \"purpose\": \"获取实时行情、资金流向、板块数据\"\r\n    }\r\n  ],\r\n  \"persistence\": {\r\n    \"database\": {\r\n      \"path_env\": \"DB_PATH\",\r\n      \"default\": \"stock_skill.db\",\r\n      \"description\": \"SQLite数据库，存储信号历史、持仓、绩效数据\"\r\n    },\r\n    \"models\": {\r\n      \"path\": \"models/\",\r\n      \"description\": \"机器学习模型文件（joblib格式），使用joblib安全序列化\"\r\n    }\r\n  },\r\n  \"security\": {\r\n    \"model_serialization\": \"使用 joblib（依赖 pickle）加载模型，所有模型加载均通过 load_model_safe() 安全函数，自动执行路径白名单校验和文件完整性检查；禁用从外部输入、网络下载或用户提供的任意模型文件；推荐使用 safetensors 或 JSON 格式替代 pickle 序列化\",\r\n    \"credential_storage\": \"所有凭证通过环境变量提供，providers.py 中所有 API 参数均通过 config 对象或环境变量读取，无硬编码 token；启动时自动验证必填凭证\",\r\n    \"sandbox_recommended\": true,\r\n    \"data_scope\": \"仅读取公开市场数据，不执行实际交易\",\r\n    \"longport_credentials\": \"建议使用只读 API Token，避免提供交易凭证\",\r\n    \"database_protection\": \"SQLite 数据库存储在项目 .data/ 目录下（可通过 DB_PATH 自定义），文件权限设置为 600（仅 owner 可读写），目录权限设置为 700；如需清除历史分析数据，删除 .data/ 目录或指定的 DB_PATH 文件即可\",\r\n    \"token_validation\": \"自动检测占位符 token，防止使用示例值\"\r\n  },\r\n  \"auto_test\": true,\r\n  \"report_enabled\": true,\r\n  \"support_platform\": [\r\n    \"linux\",\r\n    \"windows\"\r\n  ]\r\n}\n\nFile v3.3.4:pyproject.toml\n\n[build-system]\r\nrequires = [\"setuptools>=68.0\", \"wheel\"]\r\nbuild-backend = \"setuptools.build_meta\"\r\n\r\n[project]\r\nname = \"BeerGaao\"\r\nversion = \"3.3.1\"\r\ndescription = \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\"\r\nreadme = \"README.md\"\r\nlicense = {text = \"MIT\"}\r\nrequires-python = \">=3.10\"\r\nauthors = [\r\n    {name = \"GanJiaKouN16\"},\r\n]\r\nkeywords = [\"stock\", \"quantitative\", \"trading\", \"agent\", \"a-share\"]\r\nclassifiers = [\r\n    \"Development Status :: 4 - Beta\",\r\n    \"Intended Audience :: Financial and Insurance Industry\",\r\n    \"License :: OSI Approved :: MIT License\",\r\n    \"Programming Language :: Python :: 3\",\r\n    \"Programming Language :: Python :: 3.10\",\r\n    \"Programming Language :: Python :: 3.11\",\r\n    \"Programming Language :: Python :: 3.12\",\r\n    \"Topic :: Office/Business :: Financial :: Investment\",\r\n]\r\ndependencies = [\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\",\r\n    \"backtrader>=1.9.78.123\",\r\n    \"matplotlib>=3.7.0\",\r\n    \"akshare>=1.10.0\",\r\n]\r\n\r\n[project.optional-dependencies]\r\ntushare = [\r\n    \"tushare==1.4.0\",\r\n]\r\nml = [\r\n    \"xgboost==2.0.0\",\r\n    \"lightgbm==4.0.0\",\r\n]\r\ndev = [\r\n    \"pytest==7.4.0\",\r\n]\r\n\r\n[project.urls]\r\nHomepage = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nRepository = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nIssues = \"https://github.com/GanJiaKouN16/BeerGaao/issues\"\r\n\r\n[project.scripts]\r\nbeer-gaao = \"stock_skill.__main__:main\"\r\n\r\n[tool.setuptools.packages.find]\r\ninclude = [\"stock_skill*\"]\r\n\r\n[tool.pytest.ini_options]\r\ntestpaths = [\"tests\"]\r\npython_files = [\"test_*.py\"]\r\npython_classes = [\"Test*\"]\r\npython_functions = [\"test_*\"]\n\nFile v3.3.4:pytest.ini\n\n[pytest]\r\ntestpaths = tests\r\npython_files = test_*.py\r\npython_classes = Test*\r\npython_functions = test_*\n\nFile v3.3.4:requirements.txt\n\npandas==2.0.3\r\nnumpy==1.24.3\r\nrequests==2.31.0\r\ntenacity==8.2.0\r\npython-dotenv==1.0.0\r\nscikit-learn==1.3.0\r\nscipy==1.11.0\r\nbacktrader==1.9.78.123\r\nmatplotlib==3.7.0\r\nakshare>=1.10.0\n\nArchive v3.3.3: 57 files, 133581 bytes\n\nFiles: AGENTS.md (6527b), config.example.env (723b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1748b), pytest.ini (106b), README.md (13977b), requirements.txt (216b), risk-reference.md (3628b), skill.json (5388b), SKILL.md (6440b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4236b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (19609b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9646b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (16342b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nFile v3.3.3:SKILL.md\n\n---\r\nname: beergaao\r\ndescription: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\r\nversion: 3.2.6\r\nmetadata: {\"openclaw\": {\"requires\": {\"env\": [\"TUSHARE_TOKEN\"]}, \"primaryEnv\": \"TUSHARE_TOKEN\"}}\r\n---\r\n\r\n# BeerGaao 股票量化分析师\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n## BeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合 Tushare、东方财富、Yahoo Finance（选装）、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n## 可用工具\r\n\r\n| 工具 | 功能 | 参数 |\r\n|------|------|------|\r\n| `analyze_stock` | 完整技术分析（策略+集成+ML+IC+校准） | `code` |\r\n| `get_quote` | 实时行情报价 | `code` |\r\n| `analyze_market` | 大盘环境分析 | — |\r\n| `get_money_flow` | 资金流向 | `code` |\r\n| `get_sector_flow` | 板块资金排名 | `limit` |\r\n| `get_dragon_tiger` | 龙虎榜数据 | — |\r\n| `full_review` | 完整复盘 | `watchlist` |\r\n| `backtest_bt` | Backtrader 专业回测 | `code,strategy,start,end,cash` |\r\n| `strategy_attribution` | 策略归因分析 | `days` |\r\n| `check_correlation` | 相关性检查 | `codes` |\r\n| `circuit_breaker_check` | 熔断检查 | — |\r\n| `get_market_breadth` | 市场广度指标 | — |\r\n\r\n## 调用示例\r\n\r\n**用户：\"分析一下贵州茅台的走势\"**\r\n→ 调用 `analyze_stock(\"600519.SH\")`\r\n\r\n**用户：\"今天大盘怎么样\"**\r\n→ 调用 `analyze_market()`\r\n\r\n**用户：\"招商银行资金流向\"**\r\n→ 调用 `get_money_flow(\"600036.SH\")`\r\n\r\n**用户：\"复盘一下\"**\r\n→ 调用 `full_review()`\r\n\r\n**用户：\"用MACD策略回测招商银行\"**\r\n→ 调用 `backtest_bt(\"600036.SH\", \"MACDStrategy\", \"2023-01-01\", \"2026-04-30\")`\r\n\r\n## 信号类型\r\n\r\n- **买入** — 多源共识置信度 ≥ 0.6\r\n- **卖出** — 卖出信号共识 > 买入信号\r\n- **观察** — 有买入信号但置信度 0.4-0.6\r\n- **持有** — 无明确方向信号\r\n\r\n## 支持的股票代码格式\r\n\r\n- A股：`600036.SH`（上海）、`000001.SZ`（深圳）、`300750.SZ`（创业板）\r\n- 港股：`0700.HK`\r\n- 美股：`AAPL.US`\r\n\r\n## 安装使用\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入 TUSHARE_TOKEN\r\n```\r\n\r\n## 配置要求\r\n\r\n| 变量 | 说明 | 必需 |\r\n|------|------|------|\r\n| `TUSHARE_TOKEN` | Tushare API token（只读） | 是 |\r\n| `LONGPORT_APP_KEY` | 长桥 App Key | 否 |\r\n| `LONGPORT_APP_SECRET` | 长桥 App Secret | 否 |\r\n| `LONGPORT_ACCESS_TOKEN` | 长桥 Access Token（建议只读） | 否 |\r\n\r\n## 安全说明\r\n\r\n> ⚠️ **重要安全提示**\r\n\r\n**凭证安全（强制要求）：**\r\n- 所有 API 凭证**必须**通过环境变量提供，代码中**不包含**任何硬编码的 token 或 secret\r\n- `providers.py` 中所有凭证均通过 `self._config.longport_access_token` 等配置属性读取，最终来源为环境变量\r\n- 东方财富 API 的 `ut` 参数通过 `EASTMONEY_UT` 环境变量配置（有默认值，通常无需修改）\r\n- 使用前请确保已设置以下环境变量：\r\n  - `TUSHARE_TOKEN`：Tushare API token（必填）\r\n  - `LONGPORT_APP_KEY`：长桥 App Key（可选）\r\n  - `LONGPORT_APP_SECRET`：长桥 App Secret（可选）\r\n  - `LONGPORT_ACCESS_TOKEN`：长桥 Access Token（可选，建议只读权限）\r\n- 技能启动时会自动检查必填凭证是否存在，缺失时会抛出明确的错误提示\r\n- `config.env` 已被 `.gitignore` 排除，**绝不提交到版本控制系统**\r\n\r\n**数据安全：**\r\n- 本工具仅读取公开市场数据，**不执行实际交易**\r\n- SQLite 数据库默认存储在项目 `.data/` 目录下（可通过 `DB_PATH` 环境变量自定义），已被 `.gitignore` 排除\r\n- 数据库文件权限已设置为仅 owner 可读写（600），目录权限设置为 700\r\n- 如需清除历史分析数据，删除 `.data/` 目录或指定的 `DB_PATH` 文件即可\r\n- 不要加载来源不明的模型文件，模型加载有路径白名单保护\r\n\r\n**模型安全：**\r\n- 仅加载项目 `models/` 目录内本地生成的模型文件\r\n- 禁止加载外部输入、网络下载或用户提供的任意模型文件\r\n- 所有模型加载均通过 `load_model_safe()` 安全函数，自动执行路径白名单校验和文件完整性检查\r\n- joblib 底层使用 pickle，存在反序列化风险，请勿加载不可信文件\r\n\r\n**运行环境：**\r\n- 建议在虚拟环境中安装运行\r\n- 仅从官方仓库克隆代码：`https://github.com/GanJiaKouN16/BeerGaao.git`\r\n- 定期轮换 API 密钥，移除不再使用的旧凭证\r\n\r\n## 输出格式\r\n\r\n所有工具返回统一格式：\r\n\r\n```json\r\n{\"tool\": \"工具名\", \"status\": \"success | error\", \"data\": {...}}\r\n```\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.3:README.md\n\n# BeerGaao\r\n\r\n**胜率总是倍儿高，收益也嘛倍儿好**\r\n\r\n股票量化分析 Agent 工具集\r\n\r\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/beergaao-blue.svg)](https://pypi.org/project/beergaao/)\r\n[![Downloads](https://img.shields.io/pypi/dm/beergaao.svg)](https://pypi.org/project/beergaao/)\r\n\r\n---\r\n\r\n## 🌟 Introduction\r\n\r\n[![BeerGaao](https://img.shields.io/badge/BeerGaao-股票量化分析-blue)](https://github.com/GanJiaKouN16/BeerGaao)\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\nBeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n---\r\n\r\n## 🏆 Backtest Results\r\n\r\n三年回测验证（2023-04-30 ~ 2026-04-30）：\r\n\r\n| 指标 | 600036.SH 招商银行 | 000858.SZ 五粮液 | 688702.SH 盛科通信 |\r\n|------|-------------------|-----------------|-------------------|\r\n| 总收益率 | **+28.64%** | **+19.39%** | **+57.22%** |\r\n| 年化收益率 | **+8.76%** | **+6.09%** | **+20.45%** |\r\n| 最大回撤 | **12.31%** | 18.74% | 29.83% |\r\n| 胜率 | **58.21%** | **54.68%** | 52.24% |\r\n| 盈亏比 | **1.86:1** | **1.63:1** | **1.78:1** |\r\n| 夏普比率 | 1.28 | 0.87 | **1.54** |\r\n| 超额收益 | **+33.56%** | **+24.31%** | **+62.14%** |\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n### 🐍 环境要求\r\n\r\n- Python 3.10+\r\n- 操作系统：Windows / macOS / Linux\r\n\r\n### 📦 安装\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入配置\r\n```\r\n\r\n### ⚙️ 配置\r\n\r\n编辑 `config.env` 文件，填入以下配置：\r\n\r\n```bash\r\n# Tushare（可选，历史K线数据源）\r\n# 安装：pip install tushare 或 pip install -e \".[tushare]\"\r\nTUSHARE_TOKEN=your_tushare_token_here\r\n\r\n# 长桥 OpenAPI（可选，支持美股/港股）\r\nLONGPORT_APP_KEY=your_longport_app_key_here\r\nLONGPORT_APP_SECRET=your_longport_app_secret_here\r\nLONGPORT_ACCESS_TOKEN=your_longport_access_token_here\r\n```\r\n\r\n> ⚠️ **安全提示**：`config.env` 包含敏感 Token，已被 `.gitignore` 排除，请勿提交到版本库。\r\n\r\n### 🚀 运行\r\n\r\n#### 命令行模式\r\n\r\n```bash\r\npython -m stock_skill                              # 完整复盘\r\npython -m stock_skill --analyze 600036.SH           # 技术分析\r\npython -m stock_skill --market                      # 大盘环境\r\npython -m stock_skill --quote 300750.SZ             # 实时行情\r\npython -m stock_skill --flow 600036.SH              # 资金流向\r\npython -m stock_skill --breadth                     # 市场广度\r\npython -m stock_skill --positions                   # 持仓查询\r\npython -m stock_skill --perf                        # 回填信号绩效\r\npython -m stock_skill --attribution                 # 策略归因分析\r\npython -m stock_skill --monitor                     # 轮询监控\r\npython -m stock_skill \"招商银行怎么分析\"             # 自然语言\r\n```\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom stock_skill.tools.tools import StockTools\r\n\r\ntools = StockTools()\r\n\r\n# 分析（自动集成：传统策略 + 集成引擎 + ML + 因子IC + 参数校准）\r\nresult = tools.analyze_stock(\"600036.SH\")\r\n\r\n# 返回数据包含\r\n# - signal:     最终交易信号（BUY/SELL/HOLD/WATCH）\r\n# - ensemble:   集成引擎结果（市场状态/共识度/策略同意数）\r\n# - ml_signal:  ML策略结果\r\n# - factor_ic:  因子IC分析（各因子预测能力）\r\n# - calibration: 参数校准结果\r\n# - backtest:   回测指标（胜率/夏普/盈亏比）\r\n\r\n# 策略归因\r\nattribution = tools.strategy_attribution(days=30)\r\n\r\n# 完整复盘\r\nreport = tools.full_review()\r\n```\r\n\r\n#### 多数据源使用\r\n\r\n```python\r\nfrom stock_skill.providers.providers import DataGateway\r\n\r\ngateway = DataGateway()\r\n\r\n# 使用 Tushare（需安装：pip install tushare）\r\ndf = gateway.get_kline(\"600036.SH\", source=\"tushare\")\r\n\r\n# 使用 Yahoo Finance（支持美股/港股）\r\ndf = gateway.get_kline(\"AAPL.US\", source=\"yahoo\")\r\n\r\n# 使用长桥 OpenAPI\r\nquote = gateway.get_realtime_quote(\"700.HK\", source=\"longport\")\r\n```\r\n\r\n#### Agent 集成\r\n\r\n`TOOL_SCHEMAS` 可直接用于 OpenAI Function Calling / Claude Tool Use：\r\n\r\n```python\r\nfrom stock_skill.tools.tools import TOOL_SCHEMAS\r\n```\r\n\r\n### 🧪 测试\r\n\r\n```bash\r\npython -m pytest tests/ -v\r\n```\r\n\r\n---\r\n\r\n## 🏭 Scenarios\r\n\r\n### 🎯 目标：股票量化分析 Agent\r\n\r\nBeerGaao 旨在构建一个 股票量化分析 Agent，能够：\r\n\r\n- 📊 **数据获取**：整合多数据源（东方财富（必装）、Tushare、Yahoo、长桥（选装）），获取实时行情、历史 K 线、资金流向\r\n- 🔍 **技术分析**：自动计算 MA、MACD、RSI、KDJ、布林带等技术指标\r\n- 🤖 **策略生成**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 📈 **回测验证**：三年历史数据回测，评估策略胜率、夏普比率、最大回撤\r\n- 🛡️ **风险控制**：仓位管理、止损止盈、熔断机制、相关性检查\r\n\r\n### 📈 支持场景\r\n\r\n| 场景 | 功能 | 命令 |\r\n|------|------|------|\r\n| 💹 技术分析 | 单股深度分析，生成交易信号 | `--analyze 600036.SH` |\r\n| 🌍 大盘环境 | 市场情绪、涨跌统计、量能分析 | `--market` |\r\n| 📊 实时行情 | 多数据源实时报价 | `--quote 300750.SZ` |\r\n| 💰 资金流向 | 主力资金、板块资金、龙虎榜 | `--flow 600036.SH` |\r\n| 📋 完整复盘 | 一键生成当日复盘报告 | 无参数 |\r\n| 🤖 自然语言 | 支持中文自然语言交互 | `\"招商银行怎么分析\"` |\r\n\r\n---\r\n\r\n## ⚙️ Framework\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                      BeerGaao 架构                          │\r\n├─────────────────────────────────────────────────────────────┤\r\n│                                                             │\r\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │\r\n│  │  Tushare    │  │  东方财富   │  │  Yahoo      │  选装   │\r\n│  │  Provider   │  │  Provider   │  │  Provider   │         │\r\n│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │\r\n│         │                │                │                 │\r\n│         └────────────────┼────────────────┘                 │\r\n│                          │                                  │\r\n│                    ┌─────▼─────┐                            │\r\n│                    │   Data    │                            │\r\n│                    │  Gateway  │                            │\r\n│                    └─────┬─────┘                            │\r\n│                          │                                  │\r\n│  ┌───────────────────────┼───────────────────────┐         │\r\n│  │                       │                       │         │\r\n│  ▼                       ▼                       ▼         │\r\n│ ┌─────────┐      ┌──────────────┐      ┌─────────────┐    │\r\n│ │ 技术指标 │      │   策略引擎   │      │  ML 策略    │    │\r\n│ │ MA/MACD │      │ 10+ 传统策略 │      │ XGBoost/    │    │\r\n│ │ RSI/KDJ │      │ + 集成引擎   │      │ LightGBM    │    │\r\n│ └────┬────┘      └──────┬──────┘      └──────┬──────┘    │\r\n│      │                  │                     │           │\r\n│      └──────────────────┼─────────────────────┘           │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  信号融合  │                            │\r\n│                   │  去冗余    │                            │\r\n│                   │  IC 过滤   │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  风险控制  │                            │\r\n│                   │  仓位管理  │                            │\r\n│                   │  止损止盈  │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  交易信号  │                            │\r\n│                   │ BUY/SELL  │                            │\r\n│                   │ HOLD/WATCH│                            │\r\n│                   └───────────┘                            │\r\n│                                                             │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### 核心模块\r\n\r\n| 模块 | 职责 | 文件 |\r\n|------|------|------|\r\n| `providers/` | 数据源层，整合多数据源 | `providers.py` |\r\n| `indicators.py` | 技术指标计算 | `indicators.py` |\r\n| `strategies/` | 策略引擎，10+ 传统策略 + 集成 | `strategies.py`, `ensemble.py` |\r\n| `factors/` | 因子分析，IC 评估 | `base.py`, `fundamental.py` |\r\n| `backtest/` | 回测引擎 | `engine.py` |\r\n| `risk.py` | 风险控制 | `risk.py` |\r\n| `tools/` | Agent 工具层 | `tools.py` |\r\n\r\n---\r\n\r\n## 📃 Data Sources\r\n\r\n| 数据源 | 覆盖范围 | 配置要求 | 用途 | 安装方式 |\r\n|--------|---------|---------|------|---------|\r\n| Tushare | 股票 | `TUSHARE_TOKEN` | 历史 K 线、基本面 | 必装 |\r\n| 东方财富 | 股票 | 无需配置 | 实时行情、资金流向 | 必装 |\r\n| Yahoo Finance | 全球 | 无需配置 | 美股/港股行情 | 选装：`pip install yfinance` |\r\n| 长桥 OpenAPI | 美股/港股/股票 | `LONGPORT_*` | 实时行情（建议只读） | 选装：`pip install longport` |\r\n\r\n---\r\n\r\n## 🔒 Security\r\n\r\n**凭证安全：**\r\n- ✅ 所有凭证通过环境变量配置，代码中无硬编码 token\r\n- ✅ `config.env` 已被 `.gitignore` 排除\r\n- ⚠️ 建议使用只读 API Token，避免提供交易凭证\r\n\r\n**数据安全：**\r\n- ✅ 仅读取公开市场数据，不执行实际交易\r\n- ⚠️ SQLite 数据库存储在本地，请妥善保管\r\n- ⚠️ 不要加载来源不明的模型文件\r\n\r\n**运行环境：**\r\n- ⚠️ 建议在虚拟环境中安装运行\r\n- ✅ 仅从官方仓库克隆代码\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\n欢迎贡献代码！请遵循以下步骤：\r\n\r\n1. Fork 本仓库\r\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\r\n5. 创建 Pull Request\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\n本项目采用 MIT License - 详见 [LICENSE](LICENSE) 文件\r\n\r\n---\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cfx0y2qzfavg4yz1dj76a5n85v46w\",\n  \"slug\": \"beergaao\",\n  \"version\": \"3.3.3\",\n  \"publishedAt\": 1778315812842\n}\n\nFile v3.3.3:AGENTS.md\n\n# AGENTS.md — BeerGaao 项目规范\r\n\r\n## 1. 项目概述\r\n\r\nBeerGaao 是一个 A 股量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n技术栈：Python 3.10+，pandas/numpy 数据处理，requests/akshare 必装，tushare（选装）/yfinance（选装）/longport（选装）多数据源，scikit-learn/xgboost/lightgbm 机器学习，backtrader 回测引擎，SQLite 状态持久化。\r\n\r\n仓库结构：\r\n```\r\nBeerGaao/\r\n├── stock_skill/           # 主包\r\n│   ├── __main__.py        # CLI 入口（--analyze, --market, --backtest-bt 等）\r\n│   ├── config.py          # 配置管理（环境变量加载）\r\n│   ├── models.py          # 数据模型定义\r\n│   ├── state.py           # SQLite 状态持久化\r\n│   ├── risk.py            # 风控计算\r\n│   ├── indicators.py      # 技术指标计算\r\n│   ├── semantic.py        # 自然语言查询解析\r\n│   ├── monitor.py         # 轮询监控\r\n│   ├── tools/             # Agent 工具层（串联所有模块）\r\n│   ├── strategies/        # 策略定义 + 参数校准 + Backtrader 适配\r\n│   ├── factors/           # 因子基类 + 合成引擎\r\n│   ├── backtest/          # 回测引擎\r\n│   ├── providers/         # 数据源 + 缓存\r\n│   ├── attribution/       # 策略归因\r\n│   └── execution/         # 执行层\r\n├── tests/                 # 测试套件\r\n├── .env.example           # 环境变量模板\r\n├── pyproject.toml         # 项目配置\r\n└── requirements.txt       # 依赖清单\r\n```\r\n\r\n## 2. 快速命令\r\n\r\n```bash\r\n# 安装依赖\r\npip install -e \".[ml,dev]\"\r\n\r\n# 可选：安装 Tushare 数据源\r\npip install -e \".[tushare]\"\r\n\r\n# 配置环境变量\r\ncp .env.example .env\r\n# 编辑 .env 填入配置（TUSHARE_TOKEN 为可选，仅 Tushare 数据源需要）\r\n\r\n# 运行主程序\r\npython -m stock_skill                    # 完整复盘\r\npython -m stock_skill --analyze 600036.SH  # 分析个股\r\npython -m stock_skill --market           # 市场概览\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy\r\n\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 日志\r\ntail -f stock_skill.log\r\n```\r\n\r\n环境变量配置：\r\n- `.env` 文件位于项目根目录\r\n- 启动脚本通过 `python-dotenv` 自动加载\r\n- 关键变量：`TUSHARE_TOKEN`（可选，仅 Tushare 数据源需要）, `LOG_LEVEL`, `DB_PATH`\r\n\r\n## 3. 后端架构\r\n\r\n```\r\nstock_skill/\r\n├── tools/tools.py         # Agent 工具层，串联所有模块，返回标准化 JSON\r\n├── strategies/            # 策略层\r\n│   ├── strategies.py      # 策略定义 + @register 装饰器注册\r\n│   ├── ensemble.py        # 集成引擎 + 市场状态\r\n│   └── backtrader_adapters.py  # Backtrader 策略适配\r\n├── factors/               # 因子层\r\n│   ├── base.py            # 因子基类 + @register_factor 注册\r\n│   └── *.py               # 具体因子实现\r\n├── backtest/engine.py     # 回测引擎（三年历史数据回测）\r\n├── providers/providers.py # 多数据源网关（tushare/东财 必装，yfinance/长桥 选装）\r\n├── config.py              # 配置管理\r\n├── state.py               # SQLite 持久化（信号历史、持仓）\r\n├── risk.py                # 风控计算（止损、仓位）\r\n├── models.py              # 数据模型（Signal, Position, FactorResult）\r\n└── semantic.py            # 自然语言查询解析\r\n```\r\n\r\n核心子系统：\r\n- **策略引擎**：10+ 传统策略 + ML 策略 + 集成引擎，支持参数自动校准\r\n- **因子平台**：因子 IC 分析、策略归因、因子合成\r\n- **数据网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装），带缓存\r\n- **回测系统**：基于 Backtrader，支持三年历史数据回测\r\n\r\n## 4. 前端架构\r\n\r\n本项目为纯后端 CLI 工具，无前端。通过 CLI 命令或自然语言查询交互。\r\n\r\n## 5. 关键约定\r\n\r\n1. **返回格式**：所有工具方法返回 `{\"tool\": \"name\", \"status\": \"success|error\", \"data\": {...}}`\r\n2. **异常处理**：捕获 Exception，返回 error 状态，不抛出到调用方\r\n3. **类型注解**：使用 `Dict[str, float]` 而非 `dict[str, float]`（兼容 Python 3.9-）\r\n4. **延迟注解**：所有文件使用 `from __future__ import annotations`\r\n5. **日志规范**：使用 `logging.getLogger(__name__)`，不使用 print\r\n6. **策略注册**：新策略必须使用 `@register` 装饰器，继承 `Strategy`\r\n7. **因子注册**：新因子必须使用 `@register_factor` 装饰器，继承 `Factor`\r\n8. **配置管理**：所有配置通过环境变量或 `config.env`，硬编码禁止\r\n\r\n## 6. 本地开发及验证流程\r\n\r\n```\r\n改 → 构建 → 启动 → 验证\r\n1. 修改代码（遵循命名约定）\r\n2. 运行测试：python -m pytest tests/ -v\r\n3. 启动 CLI：python -m stock_skill --analyze <股票代码>\r\n4. 检查日志：tail -f stock_skill.log\r\n5. 验证输出：检查 JSON 格式和数据正确性\r\n```\r\n\r\n验证模板：\r\n```bash\r\n# 分析个股\r\npython -m stock_skill --analyze 600036.SH\r\n\r\n# 市场概览\r\npython -m stock_skill --market\r\n\r\n# 回测验证\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy --start 2023-01-01 --end 2026-04-30\r\n```\r\n\r\n## 7. 质量检查\r\n\r\n```bash\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 类型检查（可选）\r\nmypy stock_skill/\r\n\r\n# 代码格式（可选）\r\nblack stock_skill/ tests/\r\nisort stock_skill/ tests/\r\n```\r\n\r\n## 8. 参考项目约定\r\n\r\n- 策略类命名：`PascalCase` + `Strategy` 后缀（如 `MABreakoutStrategy`）\r\n- 因子类命名：`PascalCase` + `Factor` 后缀（如 `PEFactor`）\r\n- 工具方法命名：`snake_case`（如 `analyze_stock`）\r\n- 配置项命名：`UPPER_SNAKE_CASE`（如 `STOP_LOSS_RATE`）\r\n- 内部方法：`_` 前缀（如 `_run_backtest`）\r\n\r\n## 9. 文档导航\r\n\r\n| 文档 | 位置 | 说明 |\r\n|------|------|------|\r\n| 项目说明 | `README.md` | 完整功能介绍、回测结果、使用示例 |\r\n| 因子参考 | `factor-reference.md` | 因子定义和计算方法 |\r\n| 策略参考 | `strategy-reference.md` | 策略逻辑和参数说明 |\r\n| 风控参考 | `risk-reference.md` | 风控规则和止损策略 |\r\n| 技能定义 | `SKILL.md` | AI Agent 技能接口定义 |\r\n| 配置模板 | `.env.example` | 环境变量配置示例 |\n\nFile v3.3.3:factor-reference.md\n\n# 因子体系参考\r\n\r\n## 因子列表（19个）\r\n\r\n### 基本面因子（7个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `pe_ttm` | 市盈率（TTM） |\r\n| `pb` | 市净率 |\r\n| `roe` | 净资产收益率 |\r\n| `dividend_yield` | 股息率 |\r\n| `revenue_growth` | 营收增长率 |\r\n| `profit_growth` | 净利润增长率 |\r\n| eps_ttm | 每股收益动量 |\r\n\r\n### 资金面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `main_net_inflow` | 近5日主力净流入均值 |\r\n| `northbound` | 北向资金持股比例变化 |\r\n| `margin` | 融资余额变化率 |\r\n| `vpt` | 量价趋势指标（20日斜率） |\r\n| `mf_strength` | 大单净流入/总成交额 |\r\n| `inst_holding` | 机构持仓比例变化 |\r\n\r\n### 情绪面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `turnover` | 换手率 |\r\n| `volatility` | 波动率 |\r\n| `limit_up_momentum` | 涨停动量 |\r\n| `price_strength` | 价格强度 |\r\n| `consecutive_up` | 连续上涨天数 |\r\n| `news_sentiment` | 新闻情绪（东方财富股吧爬虫） |\r\n\r\n## 因子合成\r\n\r\n```python\r\nfrom stock_skill.factors.base import FactorCombiner\r\n\r\n# 等权合成\r\nscores = FactorCombiner.equal_weight(factors)\r\n\r\n# IC加权\r\nscores = FactorCombiner.ic_weight(factors, ic_data)\r\n\r\n# 最大化IC_IR（二次规划优化）\r\nscores = FactorCombiner.maximize_ic_ir(factors, returns)\r\n```\r\n\r\n## 增强IC分析\r\n\r\n`EnhancedFactorAnalyzer` 提供：\r\n\r\n- **滚动IC** — 60日窗口滚动计算Spearman秩相关\r\n- **IC衰减** — 计算1-20天延迟的IC，检测半衰期和持续性\r\n- **因子换手率** — 衡量因子持仓稳定性\r\n- **t统计量 + p值** — 判断IC是否显著\r\n\r\n主流程中自动对 ma5/ma10/ma20/rsi/dif/dea/macd/k/d/boll_mid/atr 计算IC：\r\n\r\n```json\r\n{\r\n  \"rsi\": {\"ic\": 0.035, \"ic_ir\": 0.42, \"significant\": true},\r\n  \"ma20\": {\"ic\": 0.012, \"ic_ir\": 0.15, \"significant\": false}\r\n}\r\n```\r\n\r\n显著性标准：|IC| > 0.02 且 |ICIR| > 0.3\r\n\r\n## IC过滤机制\r\n\r\n策略依赖的因子如果不显著，该策略的置信度自动降权：\r\n\r\n| 情况 | 乘数 |\r\n|------|------|\r\n| 所有依赖因子显著 | ×1.0 |\r\n| 部分因子不显著 | ×0.8 |\r\n| 全部因子不显著 | ×0.6 |\r\n| 无因子映射 | ×1.0 |\r\n\r\n策略→因子映射：`rsi_oversold`→`rsi`, `kdj_cross`→`k,d`, `macd_cross`→`dif,dea,macd` 等\r\n\r\n## 自定义因子\r\n\r\n```python\r\nfrom stock_skill.factors.base import Factor, register_factor\r\n\r\n@register_factor\r\nclass MyFactor(Factor):\r\n    name = \"my_factor\"\r\n    category = \"custom\"\r\n    description = \"自定义因子\"\r\n\r\n    def compute(self, df, **kwargs):\r\n        return some_value\r\n```\n\nFile v3.3.3:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理\r\n\r\n```\r\n仓位 = 基础仓位 × 市场因子 × 置信度因子 × ATR因子\r\n```\r\n\r\n| 因子 | 计算 |\r\n|------|------|\r\n| 基础仓位 | MAX_SINGLE_POSITION / 信号数 |\r\n| 市场因子 | 情绪≥8→1.3, ≥6→1.1, ≥4→0.8, ≥2→0.5 |\r\n| 置信度因子 | min(置信度/0.6, 1.5) |\r\n| ATR因子 | ATR/价格>4%→0.7, >3%→0.85 |\r\n\r\n### 相关性风控\r\n\r\n检测组合内资产相关系数，超过阈值（默认0.7）时告警\r\n\r\n### 熔断机制\r\n\r\n| 触发条件 | 说明 |\r\n|---------|------|\r\n| 跌停潮 | 跌停股数 > 30 |\r\n| 极端弱势 | 情绪分 < 2/10 |\r\n| 普跌 | 下跌占比 > 90% |\r\n\r\n## 专业回测引擎\r\n\r\n`BacktestEngine` 支持：\r\n\r\n| 特性 | 说明 |\r\n|------|------|\r\n| 复权处理 | 前复权/后复权（需adj_factor列） |\r\n| 涨跌停限制 | 涨停封板不可买入，跌停封板不可卖出 |\r\n| T+1约束 | 今日买入明日才能卖出 |\r\n| 成交量约束 | 最大参与率10% |\r\n| 成交本模型 | 佣金万三（最低5元）+ 印花税千一 + 滑点（固定/百分比/成交量冲击） |\r\n| 基准对比 | Alpha/Beta/信息比率/跟踪误差 |\r\n| 指标 | 总收益/年化收益/最大回撤/夏普/索提诺/卡尔马/胜率/盈亏比 |\r\n\r\n### 快速回测\r\n\r\n`_run_backtest(df)` — 在 `analyze_stock` 中自动运行，返回胜率/夏普/盈亏比\r\n\r\n### 专业回测\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import BacktestEngine, BacktestConfig, CostModel\r\n\r\nconfig = BacktestConfig(\r\n    initial_capital=1_000_000,\r\n    cost_model=CostModel(commission_rate=0.0003, stamp_tax_rate=0.001),\r\n    enforce_t1=True,\r\n    enforce_limit=True,\r\n    enforce_volume=True,\r\n)\r\nengine = BacktestEngine(config)\r\nmetrics = engine.run(stock_data, signal_func, benchmark_data=bm_df)\r\n```\r\n\r\n## 绩效追踪\r\n\r\n### 信号回填\r\n\r\n`evaluate_signal_performance` — 回填近10天未记录的信号实际收益：\r\n\r\n- 计算 1d/3d/5d/10d 收益率\r\n- 判断是否触发止损/止盈\r\n- 写入 `signal_performance` 表\r\n- 刷新集成引擎的策略权重\r\n\r\n### 策略归因\r\n\r\n`strategy_attribution(days=30)` — 追踪收益来源：\r\n\r\n```json\r\n{\r\n  \"attributions\": [\r\n    {\"strategy\": \"macd_cross\", \"signals\": 15, \"win_rate\": 0.67, \"avg_return_5d\": 0.023, \"contribution\": 0.23},\r\n    {\"strategy\": \"rsi_oversold\", \"signals\": 8, \"win_rate\": 0.75, \"avg_return_5d\": 0.018, \"contribution\": 0.11}\r\n  ]\r\n}\r\n```\r\n\r\n贡献度 = 胜率 × 均收益 × 信号数\r\n\r\n## 交易成本\r\n\r\n| 项目 | 费率 |\r\n|------|------|\r\n| 佣金 | 万三（双向，最低5元） |\r\n| 印花税 | 千一（卖出） |\r\n| 滑点 | 固定/百分比/成交量冲击 三种模型 |\r\n\r\n## Brinson归因\r\n\r\n```python\r\nfrom stock_skill.attribution.brinson import BrinsonModel\r\n\r\nresult = BrinsonModel.single_period(\r\n    portfolio_weights={\"tech\": 0.4, \"finance\": 0.3},\r\n    benchmark_weights={\"tech\": 0.3, \"finance\": 0.4},\r\n    portfolio_returns={\"tech\": 0.05, \"finance\": 0.02},\r\n    benchmark_returns={\"tech\": 0.03, \"finance\": 0.04},\r\n)\r\n# 配置效应 + 选择效应 + 交互效应\r\n```\n\nFile v3.3.3:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2) |\r\n\r\n### 集成ML策略\r\n\r\n```python\r\nfrom stock_skill.strategies.ml_strategies import EnsembleMLStrategy\r\n\r\nml = EnsembleMLStrategy()\r\nml.train(df, forward_periods=5, threshold=0.02)\r\nsignal = ml.predict(df)  # 返回 MLSignal(direction, confidence, ...)\r\n```\r\n\r\n集成策略自动：\r\n1. 训练4个模型并计算准确率\r\n2. 按准确率分配投票权重\r\n3. 加权投票融合，阈值 > 0.3 才输出信号\r\n\r\n## 集成引擎\r\n\r\n- **市场状态检测** — ADX趋势强度 + 波动率，自动识别 trend_up/trend_down/range/volatile\r\n- **动态权重** — 按市场状态和历史胜率调整各策略权重\r\n- **信号去冗余** — 同族策略（如MA系3个）只取最高置信度代表\r\n- **IC过滤** — 因子显著性评估，低质量因子对应的策略自动降权（×0.6~1.0）\r\n\r\n## 参数校准\r\n\r\n`StrategyCalibrator` 基于历史K线自动搜索最优参数：\r\n\r\n```python\r\nfrom stock_skill.strategies.strategies import StrategyCalibrator\r\n\r\n# 全量校准\r\nresults = StrategyCalibrator.calibrate(df)\r\n\r\n# 按市场状态分别校准\r\nresults = StrategyCalibrator.calibrate(df, regime=\"trend\")\r\nresults = StrategyCalibrator.calibrate_all_regimes(df)\r\n```\r\n\r\n可校准参数：RSI阈值(20-40)、KDJ阈值(30-60)、成交量倍数(1.2-2.3)、布林收口比(0.90-0.99)等\r\n\r\n## 信号融合权重\r\n\r\n| 信号源 | 权重 | 说明 |\r\n|--------|------|------|\r\n| 传统策略(去重后) | 0.45 | 按历史胜率动态调权 |\r\n| 集成引擎 | 0.30 | 市场状态检测+动态权重 |\r\n| ML策略 | 0.25 | 4模型集成投票 |\r\n\r\n## 策略相关性分组\r\n\r\n```\r\nma_family:  {ma_breakout, double_ma, volume_shrink}\r\nmacd_family: {macd_cross}\r\nboll_family: {boll_squeeze}\r\nrsi_family:  {rsi_oversold}\r\nkdj_family:  {kdj_cross}\r\nvol_family:  {vol_price_divergence, obv_trend}\r\nsupport_family: {support_bounce}\r\n```\r\n\r\n同族策略同时触发时只计1票，避免信号膨胀。\r\n\r\n## 参数优化\r\n\r\n```python\r\nfrom stock_skill.strategies.optimizer import StrategyOptimizer, WalkForwardOptimizer\r\n\r\noptimizer = StrategyOptimizer(MABreakoutStrategy)\r\noptimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\nresult = optimizer.bayesian_optimization(df, n_trials=50)\r\n```\r\n\r\n支持：网格搜索、随机搜索、贝叶斯优化、遗传算法、Walk-Forward、集成优化\r\n\r\n## 滚动窗口回测\r\n\r\nWalk-Forward 分析：在训练窗口调参，在测试窗口验证，滚动推进评估策略稳定性。\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import RollingBacktestEngine, BacktestConfig\r\n\r\n# 初始化滚动回测引擎\r\nengine = RollingBacktestEngine(\r\n    window_size_days=252,  # 训练窗口：1年\r\n    step_days=21,          # 滚动步长：1个月\r\n    config=BacktestConfig(initial_capital=1_000_000),\r\n)\r\n\r\n# 定义参数优化器（在训练窗口内调参）\r\ndef optimize_params(train_data):\r\n    # 使用 StrategyOptimizer 优化参数\r\n    from stock_skill.strategies.strategies import MABreakoutStrategy\r\n    from stock_skill.strategies.optimizer import StrategyOptimizer\r\n\r\n    optimizer = StrategyOptimizer(MABreakoutStrategy)\r\n    optimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\n    result = optimizer.bayesian_optimization(train_data[\"600036.SH\"], n_trials=20)\r\n    return result.best_params, result.best_score\r\n\r\n# 运行滚动回测\r\nresult = engine.run(\r\n    stock_data=stock_data,\r\n    signal_func=my_signal_func,\r\n    param_optimizer=optimize_params,\r\n    start_date=\"2023-01-01\",\r\n    end_date=\"2026-01-01\",\r\n)\r\n\r\n# 输出结果\r\nprint(result.summary())\r\nprint(result.to_dict())\r\n```\r\n\r\n### 输出指标\r\n\r\n| 指标 | 说明 |\r\n|------|------|\r\n| avg_sharpe | 所有窗口的平均夏普比率 |\r\n| avg_win_rate | 所有窗口的平均胜率 |\r\n| avg_return | 所有窗口的平均收益 |\r\n| avg_max_drawdown | 所有窗口的平均最大回撤 |\r\n| sharpe_std | 夏普比率标准差（越小越稳定） |\r\n| win_rate_std | 胜率标准差 |\r\n| drawdown_std | 回撤标准差 |\r\n| best_window | 表现最好的窗口 |\r\n| worst_window | 表现最差的窗口 |\n\nFile v3.3.3:skill.json\n\n{\r\n  \"name\": \"BeerGaao_Quant\",\r\n  \"display_name\": \"BeerGaao 专业量化交易\",\r\n  \"version\": \"3.3.3\",\r\n  \"description\": \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\",\r\n  \"author\": \"GanJiaKouN16\",\r\n  \"type\": \"package\",\r\n  \"tags\": [\r\n    \"quant\",\r\n    \"量化交易\",\r\n    \"策略回测\",\r\n    \"交易信号\",\r\n    \"股票\",\r\n    \"agent\"\r\n  ],\r\n  \"entry\": \"stock_skill.__main__:main\",\r\n  \"install_spec\": {\r\n    \"type\": \"pip\",\r\n    \"command\": \"pip install -e .\",\r\n    \"requires\": \"Python >=3.10\",\r\n    \"description\": \"克隆仓库后使用 pip 安装：git clone https://github.com/GanJiaKouN16/BeerGaao.git && cd BeerGaao && pip install -e .\"\r\n  },\r\n  \"dependencies\": [\r\n    \"tushare==1.4.0\",\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\",\r\n    \"joblib==1.3.0\"\r\n  ],\r\n  \"required_env_vars\": [\r\n    {\r\n      \"name\": \"TUSHARE_TOKEN\",\r\n      \"description\": \"Tushare API token，用于获取A股数据\",\r\n      \"url\": \"https://tushare.pro/register\"\r\n    }\r\n  ],\r\n  \"optional_env_vars\": [\r\n    {\r\n      \"name\": \"MAX_SINGLE_POSITION\",\r\n      \"description\": \"单个持仓最大比例\",\r\n      \"default\": \"0.30\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_TOTAL_POSITION\",\r\n      \"description\": \"总持仓最大比例\",\r\n      \"default\": \"0.80\"\r\n    },\r\n    {\r\n      \"name\": \"MIN_MARKET_SCORE\",\r\n      \"description\": \"最低市场评分\",\r\n      \"default\": \"4.0\"\r\n    },\r\n    {\r\n      \"name\": \"VOL_MULTI\",\r\n      \"description\": \"成交量倍数\",\r\n      \"default\": \"1.8\"\r\n    },\r\n    {\r\n      \"name\": \"TARGET_RATE\",\r\n      \"description\": \"目标收益率\",\r\n      \"default\": \"0.06\"\r\n    },\r\n    {\r\n      \"name\": \"STOP_LOSS_RATE\",\r\n      \"description\": \"止损率\",\r\n      \"default\": \"-0.04\"\r\n    },\r\n    {\r\n      \"name\": \"HOLD_DAYS\",\r\n      \"description\": \"持仓天数\",\r\n      \"default\": \"5\"\r\n    },\r\n    {\r\n      \"name\": \"BACKTEST_DAYS\",\r\n      \"description\": \"回测天数\",\r\n      \"default\": \"250\"\r\n    },\r\n    {\r\n      \"name\": \"COMMISSION_RATE\",\r\n      \"description\": \"佣金率\",\r\n      \"default\": \"0.0003\"\r\n    },\r\n    {\r\n      \"name\": \"STAMP_TAX_RATE\",\r\n      \"description\": \"印花税率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"SLIPPAGE_RATE\",\r\n      \"description\": \"滑点率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"CIRCUIT_BREAKER_DROP\",\r\n      \"description\": \"熔断跌幅\",\r\n      \"default\": \"-0.05\"\r\n    },\r\n    {\r\n      \"name\": \"CORRELATION_THRESHOLD\",\r\n      \"description\": \"相关性阈值\",\r\n      \"default\": \"0.7\"\r\n    },\r\n    {\r\n      \"name\": \"POLL_INTERVAL\",\r\n      \"description\": \"轮询间隔秒数\",\r\n      \"default\": \"60\"\r\n    },\r\n    {\r\n      \"name\": \"HTTP_TIMEOUT\",\r\n      \"description\": \"HTTP超时秒数\",\r\n      \"default\": \"10\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_RETRIES\",\r\n      \"description\": \"最大重试次数\",\r\n      \"default\": \"3\"\r\n    },\r\n    {\r\n      \"name\": \"DB_PATH\",\r\n      \"description\": \"数据库路径（默认存储在项目 .data/ 目录下，避免意外暴露）\",\r\n      \"default\": \".data/stock_skill.db\"\r\n    },\r\n    {\r\n      \"name\": \"EASTMONEY_UT\",\r\n      \"description\": \"东方财富 API 用户标识（通常无需修改）\",\r\n      \"default\": \"fa5fd1943c7b386f172d6893dbbd1131\"\r\n    },\r\n    {\r\n      \"name\": \"LOG_LEVEL\",\r\n      \"description\": \"日志级别\",\r\n      \"default\": \"INFO\"\r\n    }\r\n  ],\r\n  \"external_services\": [\r\n    {\r\n      \"name\": \"Tushare API\",\r\n      \"url\": \"https://api.tushare.pro\",\r\n      \"purpose\": \"获取A股历史行情、实时数据、龙虎榜等\"\r\n    },\r\n    {\r\n      \"name\": \"东方财富 EastMoney API\",\r\n      \"url\": \"https://push2.eastmoney.com\",\r\n      \"purpose\": \"获取实时行情、资金流向、板块数据\"\r\n    }\r\n  ],\r\n  \"persistence\": {\r\n    \"database\": {\r\n      \"path_env\": \"DB_PATH\",\r\n      \"default\": \"stock_skill.db\",\r\n      \"description\": \"SQLite数据库，存储信号历史、持仓、绩效数据\"\r\n    },\r\n    \"models\": {\r\n      \"path\": \"models/\",\r\n      \"description\": \"机器学习模型文件（joblib格式），使用joblib安全序列化\"\r\n    }\r\n  },\r\n  \"security\": {\r\n    \"model_serialization\": \"使用 joblib（依赖 pickle）加载模型，所有模型加载均通过 load_model_safe() 安全函数，自动执行路径白名单校验和文件完整性检查；禁用从外部输入、网络下载或用户提供的任意模型文件；推荐使用 safetensors 或 JSON 格式替代 pickle 序列化\",\r\n    \"credential_storage\": \"所有凭证通过环境变量提供，providers.py 中所有 API 参数均通过 config 对象或环境变量读取，无硬编码 token；启动时自动验证必填凭证\",\r\n    \"sandbox_recommended\": true,\r\n    \"data_scope\": \"仅读取公开市场数据，不执行实际交易\",\r\n    \"longport_credentials\": \"建议使用只读 API Token，避免提供交易凭证\",\r\n    \"database_protection\": \"SQLite 数据库存储在项目 .data/ 目录下（可通过 DB_PATH 自定义），文件权限设置为 600（仅 owner 可读写），目录权限设置为 700；如需清除历史分析数据，删除 .data/ 目录或指定的 DB_PATH 文件即可\",\r\n    \"token_validation\": \"自动检测占位符 token，防止使用示例值\"\r\n  },\r\n  \"auto_test\": true,\r\n  \"report_enabled\": true,\r\n  \"support_platform\": [\r\n    \"linux\",\r\n    \"windows\"\r\n  ]\r\n}\n\nFile v3.3.3:pyproject.toml\n\n[build-system]\r\nrequires = [\"setuptools>=68.0\", \"wheel\"]\r\nbuild-backend = \"setuptools.build_meta\"\r\n\r\n[project]\r\nname = \"BeerGaao\"\r\nversion = \"3.2.2\"\r\ndescription = \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\"\r\nreadme = \"README.md\"\r\nlicense = {text = \"MIT\"}\r\nrequires-python = \">=3.10\"\r\nauthors = [\r\n    {name = \"GanJiaKouN16\"},\r\n]\r\nkeywords = [\"stock\", \"quantitative\", \"trading\", \"agent\", \"a-share\"]\r\nclassifiers = [\r\n    \"Development Status :: 4 - Beta\",\r\n    \"Intended Audience :: Financial and Insurance Industry\",\r\n    \"License :: OSI Approved :: MIT License\",\r\n    \"Programming Language :: Python :: 3\",\r\n    \"Programming Language :: Python :: 3.10\",\r\n    \"Programming Language :: Python :: 3.11\",\r\n    \"Programming Language :: Python :: 3.12\",\r\n    \"Topic :: Office/Business :: Financial :: Investment\",\r\n]\r\ndependencies = [\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\",\r\n    \"backtrader>=1.9.78.123\",\r\n    \"matplotlib>=3.7.0\",\r\n    \"akshare>=1.10.0\",\r\n]\r\n\r\n[project.optional-dependencies]\r\ntushare = [\r\n    \"tushare==1.4.0\",\r\n]\r\nml = [\r\n    \"xgboost==2.0.0\",\r\n    \"lightgbm==4.0.0\",\r\n]\r\ndev = [\r\n    \"pytest==7.4.0\",\r\n]\r\n\r\n[project.urls]\r\nHomepage = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nRepository = \"https://github.com/GanJiaKouN16/BeerGaao\"\r\nIssues = \"https://github.com/GanJiaKouN16/BeerGaao/issues\"\r\n\r\n[project.scripts]\r\nbeer-gaao = \"stock_skill.__main__:main\"\r\n\r\n[tool.setuptools.packages.find]\r\ninclude = [\"stock_skill*\"]\r\n\r\n[tool.pytest.ini_options]\r\ntestpaths = [\"tests\"]\r\npython_files = [\"test_*.py\"]\r\npython_classes = [\"Test*\"]\r\npython_functions = [\"test_*\"]\n\nFile v3.3.3:pytest.ini\n\n[pytest]\r\ntestpaths = tests\r\npython_files = test_*.py\r\npython_classes = Test*\r\npython_functions = test_*\n\nFile v3.3.3:requirements.txt\n\npandas==2.0.3\r\nnumpy==1.24.3\r\nrequests==2.31.0\r\ntenacity==8.2.0\r\npython-dotenv==1.0.0\r\nscikit-learn==1.3.0\r\nscipy==1.11.0\r\nxgboost==2.0.0\r\nlightgbm==4.0.0\r\nbacktrader==1.9.78.123\r\nmatplotlib==3.7.0\r\nakshare>=1.10.0\n\nArchive v3.3.2: 57 files, 133522 bytes\n\nFiles: AGENTS.md (6527b), config.example.env (723b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1748b), pytest.ini (106b), README.md (13977b), requirements.txt (216b), risk-reference.md (3628b), skill.json (5388b), SKILL.md (6440b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4236b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (19609b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9581b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (16342b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nFile v3.3.2:SKILL.md\n\n---\r\nname: beergaao\r\ndescription: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\r\nversion: 3.2.6\r\nmetadata: {\"openclaw\": {\"requires\": {\"env\": [\"TUSHARE_TOKEN\"]}, \"primaryEnv\": \"TUSHARE_TOKEN\"}}\r\n---\r\n\r\n# BeerGaao 股票量化分析师\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n## BeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合 Tushare、东方财富、Yahoo Finance（选装）、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n## 可用工具\r\n\r\n| 工具 | 功能 | 参数 |\r\n|------|------|------|\r\n| `analyze_stock` | 完整技术分析（策略+集成+ML+IC+校准） | `code` |\r\n| `get_quote` | 实时行情报价 | `code` |\r\n| `analyze_market` | 大盘环境分析 | — |\r\n| `get_money_flow` | 资金流向 | `code` |\r\n| `get_sector_flow` | 板块资金排名 | `limit` |\r\n| `get_dragon_tiger` | 龙虎榜数据 | — |\r\n| `full_review` | 完整复盘 | `watchlist` |\r\n| `backtest_bt` | Backtrader 专业回测 | `code,strategy,start,end,cash` |\r\n| `strategy_attribution` | 策略归因分析 | `days` |\r\n| `check_correlation` | 相关性检查 | `codes` |\r\n| `circuit_breaker_check` | 熔断检查 | — |\r\n| `get_market_breadth` | 市场广度指标 | — |\r\n\r\n## 调用示例\r\n\r\n**用户：\"分析一下贵州茅台的走势\"**\r\n→ 调用 `analyze_stock(\"600519.SH\")`\r\n\r\n**用户：\"今天大盘怎么样\"**\r\n→ 调用 `analyze_market()`\r\n\r\n**用户：\"招商银行资金流向\"**\r\n→ 调用 `get_money_flow(\"600036.SH\")`\r\n\r\n**用户：\"复盘一下\"**\r\n→ 调用 `full_review()`\r\n\r\n**用户：\"用MACD策略回测招商银行\"**\r\n→ 调用 `backtest_bt(\"600036.SH\", \"MACDStrategy\", \"2023-01-01\", \"2026-04-30\")`\r\n\r\n## 信号类型\r\n\r\n- **买入** — 多源共识置信度 ≥ 0.6\r\n- **卖出** — 卖出信号共识 > 买入信号\r\n- **观察** — 有买入信号但置信度 0.4-0.6\r\n- **持有** — 无明确方向信号\r\n\r\n## 支持的股票代码格式\r\n\r\n- A股：`600036.SH`（上海）、`000001.SZ`（深圳）、`300750.SZ`（创业板）\r\n- 港股：`0700.HK`\r\n- 美股：`AAPL.US`\r\n\r\n## 安装使用\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入 TUSHARE_TOKEN\r\n```\r\n\r\n## 配置要求\r\n\r\n| 变量 | 说明 | 必需 |\r\n|------|------|------|\r\n| `TUSHARE_TOKEN` | Tushare API token（只读） | 是 |\r\n| `LONGPORT_APP_KEY` | 长桥 App Key | 否 |\r\n| `LONGPORT_APP_SECRET` | 长桥 App Secret | 否 |\r\n| `LONGPORT_ACCESS_TOKEN` | 长桥 Access Token（建议只读） | 否 |\r\n\r\n## 安全说明\r\n\r\n> ⚠️ **重要安全提示**\r\n\r\n**凭证安全（强制要求）：**\r\n- 所有 API 凭证**必须**通过环境变量提供，代码中**不包含**任何硬编码的 token 或 secret\r\n- `providers.py` 中所有凭证均通过 `self._config.longport_access_token` 等配置属性读取，最终来源为环境变量\r\n- 东方财富 API 的 `ut` 参数通过 `EASTMONEY_UT` 环境变量配置（有默认值，通常无需修改）\r\n- 使用前请确保已设置以下环境变量：\r\n  - `TUSHARE_TOKEN`：Tushare API token（必填）\r\n  - `LONGPORT_APP_KEY`：长桥 App Key（可选）\r\n  - `LONGPORT_APP_SECRET`：长桥 App Secret（可选）\r\n  - `LONGPORT_ACCESS_TOKEN`：长桥 Access Token（可选，建议只读权限）\r\n- 技能启动时会自动检查必填凭证是否存在，缺失时会抛出明确的错误提示\r\n- `config.env` 已被 `.gitignore` 排除，**绝不提交到版本控制系统**\r\n\r\n**数据安全：**\r\n- 本工具仅读取公开市场数据，**不执行实际交易**\r\n- SQLite 数据库默认存储在项目 `.data/` 目录下（可通过 `DB_PATH` 环境变量自定义），已被 `.gitignore` 排除\r\n- 数据库文件权限已设置为仅 owner 可读写（600），目录权限设置为 700\r\n- 如需清除历史分析数据，删除 `.data/` 目录或指定的 `DB_PATH` 文件即可\r\n- 不要加载来源不明的模型文件，模型加载有路径白名单保护\r\n\r\n**模型安全：**\r\n- 仅加载项目 `models/` 目录内本地生成的模型文件\r\n- 禁止加载外部输入、网络下载或用户提供的任意模型文件\r\n- 所有模型加载均通过 `load_model_safe()` 安全函数，自动执行路径白名单校验和文件完整性检查\r\n- joblib 底层使用 pickle，存在反序列化风险，请勿加载不可信文件\r\n\r\n**运行环境：**\r\n- 建议在虚拟环境中安装运行\r\n- 仅从官方仓库克隆代码：`https://github.com/GanJiaKouN16/BeerGaao.git`\r\n- 定期轮换 API 密钥，移除不再使用的旧凭证\r\n\r\n## 输出格式\r\n\r\n所有工具返回统一格式：\r\n\r\n```json\r\n{\"tool\": \"工具名\", \"status\": \"success | error\", \"data\": {...}}\r\n```\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.2:README.md\n\n# BeerGaao\r\n\r\n**胜率总是倍儿高，收益也嘛倍儿好**\r\n\r\n股票量化分析 Agent 工具集\r\n\r\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/beergaao-blue.svg)](https://pypi.org/project/beergaao/)\r\n[![Downloads](https://img.shields.io/pypi/dm/beergaao.svg)](https://pypi.org/project/beergaao/)\r\n\r\n---\r\n\r\n## 🌟 Introduction\r\n\r\n[![BeerGaao](https://img.shields.io/badge/BeerGaao-股票量化分析-blue)](https://github.com/GanJiaKouN16/BeerGaao)\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\nBeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n---\r\n\r\n## 🏆 Backtest Results\r\n\r\n三年回测验证（2023-04-30 ~ 2026-04-30）：\r\n\r\n| 指标 | 600036.SH 招商银行 | 000858.SZ 五粮液 | 688702.SH 盛科通信 |\r\n|------|-------------------|-----------------|-------------------|\r\n| 总收益率 | **+28.64%** | **+19.39%** | **+57.22%** |\r\n| 年化收益率 | **+8.76%** | **+6.09%** | **+20.45%** |\r\n| 最大回撤 | **12.31%** | 18.74% | 29.83% |\r\n| 胜率 | **58.21%** | **54.68%** | 52.24% |\r\n| 盈亏比 | **1.86:1** | **1.63:1** | **1.78:1** |\r\n| 夏普比率 | 1.28 | 0.87 | **1.54** |\r\n| 超额收益 | **+33.56%** | **+24.31%** | **+62.14%** |\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n### 🐍 环境要求\r\n\r\n- Python 3.10+\r\n- 操作系统：Windows / macOS / Linux\r\n\r\n### 📦 安装\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入配置\r\n```\r\n\r\n### ⚙️ 配置\r\n\r\n编辑 `config.env` 文件，填入以下配置：\r\n\r\n```bash\r\n# Tushare（可选，历史K线数据源）\r\n# 安装：pip install tushare 或 pip install -e \".[tushare]\"\r\nTUSHARE_TOKEN=your_tushare_token_here\r\n\r\n# 长桥 OpenAPI（可选，支持美股/港股）\r\nLONGPORT_APP_KEY=your_longport_app_key_here\r\nLONGPORT_APP_SECRET=your_longport_app_secret_here\r\nLONGPORT_ACCESS_TOKEN=your_longport_access_token_here\r\n```\r\n\r\n> ⚠️ **安全提示**：`config.env` 包含敏感 Token，已被 `.gitignore` 排除，请勿提交到版本库。\r\n\r\n### 🚀 运行\r\n\r\n#### 命令行模式\r\n\r\n```bash\r\npython -m stock_skill                              # 完整复盘\r\npython -m stock_skill --analyze 600036.SH           # 技术分析\r\npython -m stock_skill --market                      # 大盘环境\r\npython -m stock_skill --quote 300750.SZ             # 实时行情\r\npython -m stock_skill --flow 600036.SH              # 资金流向\r\npython -m stock_skill --breadth                     # 市场广度\r\npython -m stock_skill --positions                   # 持仓查询\r\npython -m stock_skill --perf                        # 回填信号绩效\r\npython -m stock_skill --attribution                 # 策略归因分析\r\npython -m stock_skill --monitor                     # 轮询监控\r\npython -m stock_skill \"招商银行怎么分析\"             # 自然语言\r\n```\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom stock_skill.tools.tools import StockTools\r\n\r\ntools = StockTools()\r\n\r\n# 分析（自动集成：传统策略 + 集成引擎 + ML + 因子IC + 参数校准）\r\nresult = tools.analyze_stock(\"600036.SH\")\r\n\r\n# 返回数据包含\r\n# - signal:     最终交易信号（BUY/SELL/HOLD/WATCH）\r\n# - ensemble:   集成引擎结果（市场状态/共识度/策略同意数）\r\n# - ml_signal:  ML策略结果\r\n# - factor_ic:  因子IC分析（各因子预测能力）\r\n# - calibration: 参数校准结果\r\n# - backtest:   回测指标（胜率/夏普/盈亏比）\r\n\r\n# 策略归因\r\nattribution = tools.strategy_attribution(days=30)\r\n\r\n# 完整复盘\r\nreport = tools.full_review()\r\n```\r\n\r\n#### 多数据源使用\r\n\r\n```python\r\nfrom stock_skill.providers.providers import DataGateway\r\n\r\ngateway = DataGateway()\r\n\r\n# 使用 Tushare（需安装：pip install tushare）\r\ndf = gateway.get_kline(\"600036.SH\", source=\"tushare\")\r\n\r\n# 使用 Yahoo Finance（支持美股/港股）\r\ndf = gateway.get_kline(\"AAPL.US\", source=\"yahoo\")\r\n\r\n# 使用长桥 OpenAPI\r\nquote = gateway.get_realtime_quote(\"700.HK\", source=\"longport\")\r\n```\r\n\r\n#### Agent 集成\r\n\r\n`TOOL_SCHEMAS` 可直接用于 OpenAI Function Calling / Claude Tool Use：\r\n\r\n```python\r\nfrom stock_skill.tools.tools import TOOL_SCHEMAS\r\n```\r\n\r\n### 🧪 测试\r\n\r\n```bash\r\npython -m pytest tests/ -v\r\n```\r\n\r\n---\r\n\r\n## 🏭 Scenarios\r\n\r\n### 🎯 目标：股票量化分析 Agent\r\n\r\nBeerGaao 旨在构建一个 股票量化分析 Agent，能够：\r\n\r\n- 📊 **数据获取**：整合多数据源（东方财富（必装）、Tushare、Yahoo、长桥（选装）），获取实时行情、历史 K 线、资金流向\r\n- 🔍 **技术分析**：自动计算 MA、MACD、RSI、KDJ、布林带等技术指标\r\n- 🤖 **策略生成**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 📈 **回测验证**：三年历史数据回测，评估策略胜率、夏普比率、最大回撤\r\n- 🛡️ **风险控制**：仓位管理、止损止盈、熔断机制、相关性检查\r\n\r\n### 📈 支持场景\r\n\r\n| 场景 | 功能 | 命令 |\r\n|------|------|------|\r\n| 💹 技术分析 | 单股深度分析，生成交易信号 | `--analyze 600036.SH` |\r\n| 🌍 大盘环境 | 市场情绪、涨跌统计、量能分析 | `--market` |\r\n| 📊 实时行情 | 多数据源实时报价 | `--quote 300750.SZ` |\r\n| 💰 资金流向 | 主力资金、板块资金、龙虎榜 | `--flow 600036.SH` |\r\n| 📋 完整复盘 | 一键生成当日复盘报告 | 无参数 |\r\n| 🤖 自然语言 | 支持中文自然语言交互 | `\"招商银行怎么分析\"` |\r\n\r\n---\r\n\r\n## ⚙️ Framework\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                      BeerGaao 架构                          │\r\n├─────────────────────────────────────────────────────────────┤\r\n│                                                             │\r\n│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │\r\n│  │  Tushare    │  │  东方财富   │  │  Yahoo      │  选装   │\r\n│  │  Provider   │  │  Provider   │  │  Provider   │         │\r\n│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │\r\n│         │                │                │                 │\r\n│         └────────────────┼────────────────┘                 │\r\n│                          │                                  │\r\n│                    ┌─────▼─────┐                            │\r\n│                    │   Data    │                            │\r\n│                    │  Gateway  │                            │\r\n│                    └─────┬─────┘                            │\r\n│                          │                                  │\r\n│  ┌───────────────────────┼───────────────────────┐         │\r\n│  │                       │                       │         │\r\n│  ▼                       ▼                       ▼         │\r\n│ ┌─────────┐      ┌──────────────┐      ┌─────────────┐    │\r\n│ │ 技术指标 │      │   策略引擎   │      │  ML 策略    │    │\r\n│ │ MA/MACD │      │ 10+ 传统策略 │      │ XGBoost/    │    │\r\n│ │ RSI/KDJ │      │ + 集成引擎   │      │ LightGBM    │    │\r\n│ └────┬────┘      └──────┬──────┘      └──────┬──────┘    │\r\n│      │                  │                     │           │\r\n│      └──────────────────┼─────────────────────┘           │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  信号融合  │                            │\r\n│                   │  去冗余    │                            │\r\n│                   │  IC 过滤   │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  风险控制  │                            │\r\n│                   │  仓位管理  │                            │\r\n│                   │  止损止盈  │                            │\r\n│                   └─────┬─────┘                            │\r\n│                         │                                  │\r\n│                   ┌─────▼─────┐                            │\r\n│                   │  交易信号  │                            │\r\n│                   │ BUY/SELL  │                            │\r\n│                   │ HOLD/WATCH│                            │\r\n│                   └───────────┘                            │\r\n│                                                             │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### 核心模块\r\n\r\n| 模块 | 职责 | 文件 |\r\n|------|------|------|\r\n| `providers/` | 数据源层，整合多数据源 | `providers.py` |\r\n| `indicators.py` | 技术指标计算 | `indicators.py` |\r\n| `strategies/` | 策略引擎，10+ 传统策略 + 集成 | `strategies.py`, `ensemble.py` |\r\n| `factors/` | 因子分析，IC 评估 | `base.py`, `fundamental.py` |\r\n| `backtest/` | 回测引擎 | `engine.py` |\r\n| `risk.py` | 风险控制 | `risk.py` |\r\n| `tools/` | Agent 工具层 | `tools.py` |\r\n\r\n---\r\n\r\n## 📃 Data Sources\r\n\r\n| 数据源 | 覆盖范围 | 配置要求 | 用途 | 安装方式 |\r\n|--------|---------|---------|------|---------|\r\n| Tushare | 股票 | `TUSHARE_TOKEN` | 历史 K 线、基本面 | 必装 |\r\n| 东方财富 | 股票 | 无需配置 | 实时行情、资金流向 | 必装 |\r\n| Yahoo Finance | 全球 | 无需配置 | 美股/港股行情 | 选装：`pip install yfinance` |\r\n| 长桥 OpenAPI | 美股/港股/股票 | `LONGPORT_*` | 实时行情（建议只读） | 选装：`pip install longport` |\r\n\r\n---\r\n\r\n## 🔒 Security\r\n\r\n**凭证安全：**\r\n- ✅ 所有凭证通过环境变量配置，代码中无硬编码 token\r\n- ✅ `config.env` 已被 `.gitignore` 排除\r\n- ⚠️ 建议使用只读 API Token，避免提供交易凭证\r\n\r\n**数据安全：**\r\n- ✅ 仅读取公开市场数据，不执行实际交易\r\n- ⚠️ SQLite 数据库存储在本地，请妥善保管\r\n- ⚠️ 不要加载来源不明的模型文件\r\n\r\n**运行环境：**\r\n- ⚠️ 建议在虚拟环境中安装运行\r\n- ✅ 仅从官方仓库克隆代码\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\n欢迎贡献代码！请遵循以下步骤：\r\n\r\n1. Fork 本仓库\r\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\r\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\r\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\r\n5. 创建 Pull Request\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\n本项目采用 MIT License - 详见 [LICENSE](LICENSE) 文件\r\n\r\n---\r\n\r\n## ⚖️ Legal Disclaimer\r\n\r\nThe BeerGaao is provided \"as is\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringence. The BeerGaao is aimed to facilitate research and development process in the financial industry and not ready-to-use for any financial investment or advice. Users shall independently assess and test the risks of the BeerGaao in a specific use scenario, ensure the responsible use of AI technology, including but not limited to developing and integrating risk mitigation measures, and comply with all applicable laws and regulations in all applicable jurisdictions. The BeerGaao does not provide financial opinions or reflect the opinions of GanJiaKouN16, nor is it designed to replace the role of qualified financial professionals in formulating, assessing, and approving finance products. The inputs and outputs of the BeerGaao belong to the users and users shall assume all liability under any theory of liability, whether in contract, torts, regulatory, negligence, products liability, or otherwise, associated with use of the BeerGaao and any inputs and outputs thereof.\n\nFile v3.3.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cfx0y2qzfavg4yz1dj76a5n85v46w\",\n  \"slug\": \"beergaao\",\n  \"version\": \"3.3.2\",\n  \"publishedAt\": 1778311453853\n}\n\nFile v3.3.2:AGENTS.md\n\n# AGENTS.md — BeerGaao 项目规范\r\n\r\n## 1. 项目概述\r\n\r\nBeerGaao 是一个 A 股量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n技术栈：Python 3.10+，pandas/numpy 数据处理，requests/akshare 必装，tushare（选装）/yfinance（选装）/longport（选装）多数据源，scikit-learn/xgboost/lightgbm 机器学习，backtrader 回测引擎，SQLite 状态持久化。\r\n\r\n仓库结构：\r\n```\r\nBeerGaao/\r\n├── stock_skill/           # 主包\r\n│   ├── __main__.py        # CLI 入口（--analyze, --market, --backtest-bt 等）\r\n│   ├── config.py          # 配置管理（环境变量加载）\r\n│   ├── models.py          # 数据模型定义\r\n│   ├── state.py           # SQLite 状态持久化\r\n│   ├── risk.py            # 风控计算\r\n│   ├── indicators.py      # 技术指标计算\r\n│   ├── semantic.py        # 自然语言查询解析\r\n│   ├── monitor.py         # 轮询监控\r\n│   ├── tools/             # Agent 工具层（串联所有模块）\r\n│   ├── strategies/        # 策略定义 + 参数校准 + Backtrader 适配\r\n│   ├── factors/           # 因子基类 + 合成引擎\r\n│   ├── backtest/          # 回测引擎\r\n│   ├── providers/         # 数据源 + 缓存\r\n│   ├── attribution/       # 策略归因\r\n│   └── execution/         # 执行层\r\n├── tests/                 # 测试套件\r\n├── .env.example           # 环境变量模板\r\n├── pyproject.toml         # 项目配置\r\n└── requirements.txt       # 依赖清单\r\n```\r\n\r\n## 2. 快速命令\r\n\r\n```bash\r\n# 安装依赖\r\npip install -e \".[ml,dev]\"\r\n\r\n# 可选：安装 Tushare 数据源\r\npip install -e \".[tushare]\"\r\n\r\n# 配置环境变量\r\ncp .env.example .env\r\n# 编辑 .env 填入配置（TUSHARE_TOKEN 为可选，仅 Tushare 数据源需要）\r\n\r\n# 运行主程序\r\npython -m stock_skill                    # 完整复盘\r\npython -m stock_skill --analyze 600036.SH  # 分析个股\r\npython -m stock_skill --market           # 市场概览\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy\r\n\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 日志\r\ntail -f stock_skill.log\r\n```\r\n\r\n环境变量配置：\r\n- `.env` 文件位于项目根目录\r\n- 启动脚本通过 `python-dotenv` 自动加载\r\n- 关键变量：`TUSHARE_TOKEN`（可选，仅 Tushare 数据源需要）, `LOG_LEVEL`, `DB_PATH`\r\n\r\n## 3. 后端架构\r\n\r\n```\r\nstock_skill/\r\n├── tools/tools.py         # Agent 工具层，串联所有模块，返回标准化 JSON\r\n├── strategies/            # 策略层\r\n│   ├── strategies.py      # 策略定义 + @register 装饰器注册\r\n│   ├── ensemble.py        # 集成引擎 + 市场状态\r\n│   └── backtrader_adapters.py  # Backtrader 策略适配\r\n├── factors/               # 因子层\r\n│   ├── base.py            # 因子基类 + @register_factor 注册\r\n│   └── *.py               # 具体因子实现\r\n├── backtest/engine.py     # 回测引擎（三年历史数据回测）\r\n├── providers/providers.py # 多数据源网关（tushare/东财 必装，yfinance/长桥 选装）\r\n├── config.py              # 配置管理\r\n├── state.py               # SQLite 持久化（信号历史、持仓）\r\n├── risk.py                # 风控计算（止损、仓位）\r\n├── models.py              # 数据模型（Signal, Position, FactorResult）\r\n└── semantic.py            # 自然语言查询解析\r\n```\r\n\r\n核心子系统：\r\n- **策略引擎**：10+ 传统策略 + ML 策略 + 集成引擎，支持参数自动校准\r\n- **因子平台**：因子 IC 分析、策略归因、因子合成\r\n- **数据网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装），带缓存\r\n- **回测系统**：基于 Backtrader，支持三年历史数据回测\r\n\r\n## 4. 前端架构\r\n\r\n本项目为纯后端 CLI 工具，无前端。通过 CLI 命令或自然语言查询交互。\r\n\r\n## 5. 关键约定\r\n\r\n1. **返回格式**：所有工具方法返回 `{\"tool\": \"name\", \"status\": \"success|error\", \"data\": {...}}`\r\n2. **异常处理**：捕获 Exception，返回 error 状态，不抛出到调用方\r\n3. **类型注解**：使用 `Dict[str, float]` 而非 `dict[str, float]`（兼容 Python 3.9-）\r\n4. **延迟注解**：所有文件使用 `from __future__ import annotations`\r\n5. **日志规范**：使用 `logging.getLogger(__name__)`，不使用 print\r\n6. **策略注册**：新策略必须使用 `@register` 装饰器，继承 `Strategy`\r\n7. **因子注册**：新因子必须使用 `@register_factor` 装饰器，继承 `Factor`\r\n8. **配置管理**：所有配置通过环境变量或 `config.env`，硬编码禁止\r\n\r\n## 6. 本地开发及验证流程\r\n\r\n```\r\n改 → 构建 → 启动 → 验证\r\n1. 修改代码（遵循命名约定）\r\n2. 运行测试：python -m pytest tests/ -v\r\n3. 启动 CLI：python -m stock_skill --analyze <股票代码>\r\n4. 检查日志：tail -f stock_skill.log\r\n5. 验证输出：检查 JSON 格式和数据正确性\r\n```\r\n\r\n验证模板：\r\n```bash\r\n# 分析个股\r\npython -m stock_skill --analyze 600036.SH\r\n\r\n# 市场概览\r\npython -m stock_skill --market\r\n\r\n# 回测验证\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy --start 2023-01-01 --end 2026-04-30\r\n```\r\n\r\n## 7. 质量检查\r\n\r\n```bash\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 类型检查（可选）\r\nmypy stock_skill/\r\n\r\n# 代码格式（可选）\r\nblack stock_skill/ tests/\r\nisort stock_skill/ tests/\r\n```\r\n\r\n## 8. 参考项目约定\r\n\r\n- 策略类命名：`PascalCase` + `Strategy` 后缀（如 `MABreakoutStrategy`）\r\n- 因子类命名：`PascalCase` + `Factor` 后缀（如 `PEFactor`）\r\n- 工具方法命名：`snake_case`（如 `analyze_stock`）\r\n- 配置项命名：`UPPER_SNAKE_CASE`（如 `STOP_LOSS_RATE`）\r\n- 内部方法：`_` 前缀（如 `_run_backtest`）\r\n\r\n## 9. 文档导航\r\n\r\n| 文档 | 位置 | 说明 |\r\n|------|------|------|\r\n| 项目说明 | `README.md` | 完整功能介绍、回测结果、使用示例 |\r\n| 因子参考 | `factor-reference.md` | 因子定义和计算方法 |\r\n| 策略参考 | `strategy-reference.md` | 策略逻辑和参数说明 |\r\n| 风控参考 | `risk-reference.md` | 风控规则和止损策略 |\r\n| 技能定义 | `SKILL.md` | AI Agent 技能接口定义 |\r\n| 配置模板 | `.env.example` | 环境变量配置示例 |\n\nFile v3.3.2:factor-reference.md\n\n# 因子体系参考\r\n\r\n## 因子列表（19个）\r\n\r\n### 基本面因子（7个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `pe_ttm` | 市盈率（TTM） |\r\n| `pb` | 市净率 |\r\n| `roe` | 净资产收益率 |\r\n| `dividend_yield` | 股息率 |\r\n| `revenue_growth` | 营收增长率 |\r\n| `profit_growth` | 净利润增长率 |\r\n| eps_ttm | 每股收益动量 |\r\n\r\n### 资金面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `main_net_inflow` | 近5日主力净流入均值 |\r\n| `northbound` | 北向资金持股比例变化 |\r\n| `margin` | 融资余额变化率 |\r\n| `vpt` | 量价趋势指标（20日斜率） |\r\n| `mf_strength` | 大单净流入/总成交额 |\r\n| `inst_holding` | 机构持仓比例变化 |\r\n\r\n### 情绪面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `turnover` | 换手率 |\r\n| `volatility` | 波动率 |\r\n| `limit_up_momentum` | 涨停动量 |\r\n| `price_strength` | 价格强度 |\r\n| `consecutive_up` | 连续上涨天数 |\r\n| `news_sentiment` | 新闻情绪（东方财富股吧爬虫） |\r\n\r\n## 因子合成\r\n\r\n```python\r\nfrom stock_skill.factors.base import FactorCombiner\r\n\r\n# 等权合成\r\nscores = FactorCombiner.equal_weight(factors)\r\n\r\n# IC加权\r\nscores = FactorCombiner.ic_weight(factors, ic_data)\r\n\r\n# 最大化IC_IR（二次规划优化）\r\nscores = FactorCombiner.maximize_ic_ir(factors, returns)\r\n```\r\n\r\n## 增强IC分析\r\n\r\n`EnhancedFactorAnalyzer` 提供：\r\n\r\n- **滚动IC** — 60日窗口滚动计算Spearman秩相关\r\n- **IC衰减** — 计算1-20天延迟的IC，检测半衰期和持续性\r\n- **因子换手率** — 衡量因子持仓稳定性\r\n- **t统计量 + p值** — 判断IC是否显著\r\n\r\n主流程中自动对 ma5/ma10/ma20/rsi/dif/dea/macd/k/d/boll_mid/atr 计算IC：\r\n\r\n```json\r\n{\r\n  \"rsi\": {\"ic\": 0.035, \"ic_ir\": 0.42, \"significant\": true},\r\n  \"ma20\": {\"ic\": 0.012, \"ic_ir\": 0.15, \"significant\": false}\r\n}\r\n```\r\n\r\n显著性标准：|IC| > 0.02 且 |ICIR| > 0.3\r\n\r\n## IC过滤机制\r\n\r\n策略依赖的因子如果不显著，该策略的置信度自动降权：\r\n\r\n| 情况 | 乘数 |\r\n|------|------|\r\n| 所有依赖因子显著 | ×1.0 |\r\n| 部分因子不显著 | ×0.8 |\r\n| 全部因子不显著 | ×0.6 |\r\n| 无因子映射 | ×1.0 |\r\n\r\n策略→因子映射：`rsi_oversold`→`rsi`, `kdj_cross`→`k,d`, `macd_cross`→`dif,dea,macd` 等\r\n\r\n## 自定义因子\r\n\r\n```python\r\nfrom stock_skill.factors.base import Factor, register_factor\r\n\r\n@register_factor\r\nclass MyFactor(Factor):\r\n    name = \"my_factor\"\r\n    category = \"custom\"\r\n    description = \"自定义因子\"\r\n\r\n    def compute(self, df, **kwargs):\r\n        return some_value\r\n```\n\nFile v3.3.2:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理\r\n\r\n```\r\n仓位 = 基础仓位 × 市场因子 × 置信度因子 × ATR因子\r\n```\r\n\r\n| 因子 | 计算 |\r\n|------|------|\r\n| 基础仓位 | MAX_SINGLE_POSITION / 信号数 |\r\n| 市场因子 | 情绪≥8→1.3, ≥6→1.1, ≥4→0.8, ≥2→0.5 |\r\n| 置信度因子 | min(置信度/0.6, 1.5) |\r\n| ATR因子 | ATR/价格>4%→0.7, >3%→0.85 |\r\n\r\n### 相关性风控\r\n\r\n检测组合内资产相关系数，超过阈值（默认0.7）时告警\r\n\r\n### 熔断机制\r\n\r\n| 触发条件 | 说明 |\r\n|---------|------|\r\n| 跌停潮 | 跌停股数 > 30 |\r\n| 极端弱势 | 情绪分 < 2/10 |\r\n| 普跌 | 下跌占比 > 90% |\r\n\r\n## 专业回测引擎\r\n\r\n`BacktestEngine` 支持：\r\n\r\n| 特性 | 说明 |\r\n|------|------|\r\n| 复权处理 | 前复权/后复权（需adj_factor列） |\r\n| 涨跌停限制 | 涨停封板不可买入，跌停封板不可卖出 |\r\n| T+1约束 | 今日买入明日才能卖出 |\r\n| 成交量约束 | 最大参与率10% |\r\n| 成交本模型 | 佣金万三（最低5元）+ 印花税千一 + 滑点（固定/百分比/成交量冲击） |\r\n| 基准对比 | Alpha/Beta/信息比率/跟踪误差 |\r\n| 指标 | 总收益/年化收益/最大回撤/夏普/索提诺/卡尔马/胜率/盈亏比 |\r\n\r\n### 快速回测\r\n\r\n`_run_backtest(df)` — 在 `analyze_stock` 中自动运行，返回胜率/夏普/盈亏比\r\n\r\n### 专业回测\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import BacktestEngine, BacktestConfig, CostModel\r\n\r\nconfig = BacktestConfig(\r\n    initial_capital=1_000_000,\r\n    cost_model=CostModel(commission_rate=0.0003, stamp_tax_rate=0.001),\r\n    enforce_t1=True,\r\n    enforce_limit=True,\r\n    enforce_volume=True,\r\n)\r\nengine = BacktestEngine(config)\r\nmetrics = engine.run(stock_data, signal_func, benchmark_data=bm_df)\r\n```\r\n\r\n## 绩效追踪\r\n\r\n### 信号回填\r\n\r\n`evaluate_signal_performance` — 回填近10天未记录的信号实际收益：\r\n\r\n- 计算 1d/3d/5d/10d 收益率\r\n- 判断是否触发止损/止盈\r\n- 写入 `signal_performance` 表\r\n- 刷新集成引擎的策略权重\r\n\r\n### 策略归因\r\n\r\n`strategy_attribution(days=30)` — 追踪收益来源：\r\n\r\n```json\r\n{\r\n  \"attributions\": [\r\n    {\"strategy\": \"macd_cross\", \"signals\": 15, \"win_rate\": 0.67, \"avg_return_5d\": 0.023, \"contribution\": 0.23},\r\n    {\"strategy\": \"rsi_oversold\", \"signals\": 8, \"win_rate\": 0.75, \"avg_return_5d\": 0.018, \"contribution\": 0.11}\r\n  ]\r\n}\r\n```\r\n\r\n贡献度 = 胜率 × 均收益 × 信号数\r\n\r\n## 交易成本\r\n\r\n| 项目 | 费率 |\r\n|------|------|\r\n| 佣金 | 万三（双向，最低5元） |\r\n| 印花税 | 千一（卖出） |\r\n| 滑点 | 固定/百分比/成交量冲击 三种模型 |\r\n\r\n## Brinson归因\r\n\r\n```python\r\nfrom stock_skill.attribution.brinson import BrinsonModel\r\n\r\nresult = BrinsonModel.single_period(\r\n    portfolio_weights={\"tech\": 0.4, \"finance\": 0.3},\r\n    benchmark_weights={\"tech\": 0.3, \"finance\": 0.4},\r\n    portfolio_returns={\"tech\": 0.05, \"finance\": 0.02},\r\n    benchmark_returns={\"tech\": 0.03, \"finance\": 0.04},\r\n)\r\n# 配置效应 + 选择效应 + 交互效应\r\n```\n\nFile v3.3.2:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2) |\r\n\r\n### 集成ML策略\r\n\r\n```python\r\nfrom stock_skill.strategies.ml_strategies import EnsembleMLStrategy\r\n\r\nml = EnsembleMLStrategy()\r\nml.train(df, forward_periods=5, threshold=0.02)\r\nsignal = ml.predict(df)  # 返回 MLSignal(direction, confidence, ...)\r\n```\r\n\r\n集成策略自动：\r\n1. 训练4个模型并计算准确率\r\n2. 按准确率分配投票权重\r\n3. 加权投票融合，阈值 > 0.3 才输出信号\r\n\r\n## 集成引擎\r\n\r\n- **市场状态检测** — ADX趋势强度 + 波动率，自动识别 trend_up/trend_down/range/volatile\r\n- **动态权重** — 按市场状态和历史胜率调整各策略权重\r\n- **信号去冗余** — 同族策略（如MA系3个）只取最高置信度代表\r\n- **IC过滤** — 因子显著性评估，低质量因子对应的策略自动降权（×0.6~1.0）\r\n\r\n## 参数校准\r\n\r\n`StrategyCalibrator` 基于历史K线自动搜索最优参数：\r\n\r\n```python\r\nfrom stock_skill.strategies.strategies import StrategyCalibrator\r\n\r\n# 全量校准\r\nresults = StrategyCalibrator.calibrate(df)\r\n\r\n# 按市场状态分别校准\r\nresults = StrategyCalibrator.calibrate(df, regime=\"trend\")\r\nresults = StrategyCalibrator.calibrate_all_regimes(df)\r\n```\r\n\r\n可校准参数：RSI阈值(20-40)、KDJ阈值(30-60)、成交量倍数(1.2-2.3)、布林收口比(0.90-0.99)等\r\n\r\n## 信号融合权重\r\n\r\n| 信号源 | 权重 | 说明 |\r\n|--------|------|------|\r\n| 传统策略(去重后) | 0.45 | 按历史胜率动态调权 |\r\n| 集成引擎 | 0.30 | 市场状态检测+动态权重 |\r\n| ML策略 | 0.25 | 4模型集成投票 |\r\n\r\n## 策略相关性分组\r\n\r\n```\r\nma_family:  {ma_breakout, double_ma, volume_shrink}\r\nmacd_family: {macd_cross}\r\nboll_family: {boll_squeeze}\r\nrsi_family:  {rsi_oversold}\r\nkdj_family:  {kdj_cross}\r\nvol_family:  {vol_price_divergence, obv_trend}\r\nsupport_family: {support_bounce}\r\n```\r\n\r\n同族策略同时触发时只计1票，避免信号膨胀。\r\n\r\n## 参数优化\r\n\r\n```python\r\nfrom stock_skill.strategies.optimizer import StrategyOptimizer, WalkForwardOptimizer\r\n\r\noptimizer = StrategyOptimizer(MABreakoutStrategy)\r\noptimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\nresult = optimizer.bayesian_optimization(df, n_trials=50)\r\n```\r\n\r\n支持：网格搜索、随机搜索、贝叶斯优化、遗传算法、Walk-Forward、集成优化\r\n\r\n## 滚动窗口回测\r\n\r\nWalk-Forward 分析：在训练窗口调参，在测试窗口验证，滚动推进评估策略稳定性。\r\n\r\n```python\r\nfrom stock_skill.backtest.engine import RollingBacktestEngine, BacktestConfig\r\n\r\n# 初始化滚动回测引擎\r\nengine = RollingBacktestEngine(\r\n    window_size_days=252,  # 训练窗口：1年\r\n    step_days=21,          # 滚动步长：1个月\r\n    config=BacktestConfig(initial_capital=1_000_000),\r\n)\r\n\r\n# 定义参数优化器（在训练窗口内调参）\r\ndef optimize_params(train_data):\r\n    # 使用 StrategyOptimizer 优化参数\r\n    from stock_skill.strategies.strategies import MABreakoutStrategy\r\n    from stock_skill.strategies.optimizer import StrategyOptimizer\r\n\r\n    optimizer = StrategyOptimizer(MABreakoutStrategy)\r\n    optimizer.add_param(\"vol_multiplier\", \"float\", low=1.0, high=3.0)\r\n    result = optimizer.bayesian_optimization(train_data[\"600036.SH\"], n_trials=20)\r\n    return result.best_params, result.best_score\r\n\r\n# 运行滚动回测\r\nresult = engine.run(\r\n    stock_data=stock_data,\r\n    signal_func=my_signal_func,\r\n    param_optimizer=optimize_params,\r\n    start_date=\"2023-01-01\",\r\n    end_date=\"2026-01-01\",\r\n)\r\n\r\n# 输出结果\r\nprint(result.summary())\r\nprint(result.to_dict())\r\n```\r\n\r\n### 输出指标\r\n\r\n| 指标 | 说明 |\r\n|------|------|\r\n| avg_sharpe | 所有窗口的平均夏普比率 |\r\n| avg_win_rate | 所有窗口的平均胜率 |\r\n| avg_return | 所有窗口的平均收益 |\r\n| avg_max_drawdown | 所有窗口的平均最大回撤 |\r\n| sharpe_std | 夏普比率标准差（越小越稳定） |\r\n| win_rate_std | 胜率标准差 |\r\n| drawdown_std | 回撤标准差 |\r\n| best_window | 表现最好的窗口 |\r\n| worst_window | 表现最差的窗口 |\n\nFile v3.3.2:skill.json\n\n{\r\n  \"name\": \"BeerGaao_Quant\",\r\n  \"display_name\": \"BeerGaao 专业量化交易\",\r\n  \"version\": \"3.3.1\",\r\n  \"description\": \"胜率总是倍儿高，收益也嘛倍儿好 - A股量化分析 Agent 工具集\",\r\n  \"author\": \"GanJiaKouN16\",\r\n  \"type\": \"package\",\r\n  \"tags\": [\r\n    \"quant\",\r\n    \"量化交易\",\r\n    \"策略回测\",\r\n    \"交易信号\",\r\n    \"股票\",\r\n    \"agent\"\r\n  ],\r\n  \"entry\": \"stock_skill.__main__:main\",\r\n  \"install_spec\": {\r\n    \"type\": \"pip\",\r\n    \"command\": \"pip install -e .\",\r\n    \"requires\": \"Python >=3.10\",\r\n    \"description\": \"克隆仓库后使用 pip 安装：git clone https://github.com/GanJiaKouN16/BeerGaao.git && cd BeerGaao && pip install -e .\"\r\n  },\r\n  \"dependencies\": [\r\n    \"tushare==1.4.0\",\r\n    \"pandas==2.0.3\",\r\n    \"numpy==1.24.3\",\r\n    \"requests==2.31.0\",\r\n    \"tenacity==8.2.0\",\r\n    \"python-dotenv==1.0.0\",\r\n    \"scikit-learn==1.3.0\",\r\n    \"scipy==1.11.0\",\r\n    \"joblib==1.3.0\"\r\n  ],\r\n  \"required_env_vars\": [\r\n    {\r\n      \"name\": \"TUSHARE_TOKEN\",\r\n      \"description\": \"Tushare API token，用于获取A股数据\",\r\n      \"url\": \"https://tushare.pro/register\"\r\n    }\r\n  ],\r\n  \"optional_env_vars\": [\r\n    {\r\n      \"name\": \"MAX_SINGLE_POSITION\",\r\n      \"description\": \"单个持仓最大比例\",\r\n      \"default\": \"0.30\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_TOTAL_POSITION\",\r\n      \"description\": \"总持仓最大比例\",\r\n      \"default\": \"0.80\"\r\n    },\r\n    {\r\n      \"name\": \"MIN_MARKET_SCORE\",\r\n      \"description\": \"最低市场评分\",\r\n      \"default\": \"4.0\"\r\n    },\r\n    {\r\n      \"name\": \"VOL_MULTI\",\r\n      \"description\": \"成交量倍数\",\r\n      \"default\": \"1.8\"\r\n    },\r\n    {\r\n      \"name\": \"TARGET_RATE\",\r\n      \"description\": \"目标收益率\",\r\n      \"default\": \"0.06\"\r\n    },\r\n    {\r\n      \"name\": \"STOP_LOSS_RATE\",\r\n      \"description\": \"止损率\",\r\n      \"default\": \"-0.04\"\r\n    },\r\n    {\r\n      \"name\": \"HOLD_DAYS\",\r\n      \"description\": \"持仓天数\",\r\n      \"default\": \"5\"\r\n    },\r\n    {\r\n      \"name\": \"BACKTEST_DAYS\",\r\n      \"description\": \"回测天数\",\r\n      \"default\": \"250\"\r\n    },\r\n    {\r\n      \"name\": \"COMMISSION_RATE\",\r\n      \"description\": \"佣金率\",\r\n      \"default\": \"0.0003\"\r\n    },\r\n    {\r\n      \"name\": \"STAMP_TAX_RATE\",\r\n      \"description\": \"印花税率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"SLIPPAGE_RATE\",\r\n      \"description\": \"滑点率\",\r\n      \"default\": \"0.001\"\r\n    },\r\n    {\r\n      \"name\": \"CIRCUIT_BREAKER_DROP\",\r\n      \"description\": \"熔断跌幅\",\r\n      \"default\": \"-0.05\"\r\n    },\r\n    {\r\n      \"name\": \"CORRELATION_THRESHOLD\",\r\n      \"description\": \"相关性阈值\",\r\n      \"default\": \"0.7\"\r\n    },\r\n    {\r\n      \"name\": \"POLL_INTERVAL\",\r\n      \"description\": \"轮询间隔秒数\",\r\n      \"default\": \"60\"\r\n    },\r\n    {\r\n      \"name\": \"HTTP_TIMEOUT\",\r\n      \"description\": \"HTTP超时秒数\",\r\n      \"default\": \"10\"\r\n    },\r\n    {\r\n      \"name\": \"MAX_RETRIES\",\r\n      \"description\": \"最大重试次数\",\r\n      \"default\": \"3\"\r\n    },\r\n    {\r\n      \"name\": \"DB_PATH\",\r\n      \"description\": \"数据库路径（默认存储在项目 .data/ 目录下，避免意外暴露）\",\r\n      \"default\": \".data/stock_skill.db\"\r\n    },\r\n    {\r\n      \"name\": \"EASTMONEY_UT\",\r\n      \"description\": \"东方财富 API 用户标识（通常无需修改）\",\r\n      \"default\": \"fa5fd1943c7b386f172d6893dbbd1131\"\r\n    },\r\n    {\r\n      \"name\": \"LOG_LEVEL\",\r\n      \"description\": \"日志级别\",\r\n      \"default\": \"INFO\"\r\n    }\r\n  ],\r\n  \"external_services\": [\r\n    {\r\n      \"name\": \"Tushare API\",\r\n      \"url\": \"https://api.tushare.pro\",\r\n      \"purpose\": \"获取A股历史行情、实时数据、龙虎榜等\"\r\n    },\r\n    {\r\n      \"name\": \"东方财富 EastMoney API\",\r\n      \"url\": \"https://push2.eastmoney.com\",\r\n      \"purpose\": \"获取实时行情、资金流向、板块数据\"\r\n    }\r\n  ],\r\n  \"persistence\": {\r\n    \"database\": {\r\n      \"path_env\": \"DB_PATH\",\r\n      \"default\": \"stock_skill.db\",\r\n      \"description\": \"SQLite数据库，存储信号历史、持仓、绩效数据\"\r\n    },\r\n    \"models\": {\r\n      \"path\": \"models/\",\r\n      \"description\": \"机器学习模型文件（joblib格式），使用joblib安全序列化\"\r\n    }\r\n  },\r\n  \"security\": {\r\n    \"model_serialization\": \"使用 joblib（依赖 pickle）加载模型，所有模型加载均通过 load_model_safe() 安全函数，自动执行路径白名单校验和文件完整性检查；禁用从外部输入、网络下载或用户提供的任意模型文件；推荐使用 safetensors 或 JSON 格式替代 pickle 序列化\",\r\n    \"credential_storage\": \"所有凭证通过环境变量提\n\nArchive v3.3.1: 57 files, 132997 bytes\n\nFiles: AGENTS.md (6354b), config.example.env (562b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1771b), pytest.ini (106b), README.md (13819b), requirements.txt (400b), risk-reference.md (3628b), skill.json (5388b), SKILL.md (6440b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4387b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (18045b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9564b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (14009b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nArchive v3.3.0: 57 files, 132550 bytes\n\nFiles: AGENTS.md (6279b), config.example.env (562b), factor-reference.md (2633b), output.txt (0b), pyproject.toml (1771b), pytest.ini (106b), README.md (13706b), requirements.txt (400b), risk-reference.md (3628b), skill.json (5388b), SKILL.md (6416b), stock_skill/__init__.py (122b), stock_skill/__main__.py (4249b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8988b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12578b), stock_skill/backtest/engine.py (30055b), stock_skill/config.py (4387b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (12320b), stock_skill/factors/__init__.py (781b), stock_skill/factors/base.py (8084b), stock_skill/factors/capital.py (6853b), stock_skill/factors/enhanced_ic.py (12728b), stock_skill/factors/fundamental.py (5440b), stock_skill/factors/sentiment.py (4753b), stock_skill/indicators.py (3249b), stock_skill/models.py (3977b), stock_skill/monitor.py (2753b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (16196b), stock_skill/risk.py (5333b), stock_skill/semantic.py (3210b), stock_skill/state.py (10201b), stock_skill/strategies/__init__.py (1653b), stock_skill/strategies/backtrader_adapters.py (10600b), stock_skill/strategies/ensemble.py (16562b), stock_skill/strategies/ml_strategies.py (25642b), stock_skill/strategies/optimizer.py (18110b), stock_skill/strategies/strategies.py (24457b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (42320b), strategy-reference.md (6896b), test_auto.py (8639b), tests/__init__.py (0b), tests/conftest.py (4092b), tests/test_backtest_engine.py (13765b), tests/test_config.py (9564b), tests/test_enhanced_strategies.py (7272b), tests/test_factors_ic.py (6846b), tests/test_ml_strategies.py (4162b), tests/test_providers.py (14009b), tests/test_risk_detailed.py (15692b), tests/test_stock_skill.py (8405b), tests/test_strategies_signals.py (13129b), _meta.json (127b)\n\nArchive v3.2.6: 57 files, 129955 bytes\n\nFiles: AGENTS.md (2397b), config.example.env (540b), factor-reference.md (2533b), output.txt (0b), pyproject.toml (1692b), pytest.ini (101b), README.md (13706b), requirements.txt (236b), risk-reference.md (3498b), skill.json (5212b), SKILL.md (6286b), stock_skill/__init__.py (120b), stock_skill/__main__.py (4169b), stock_skill/attribution/__init__.py (0b), stock_skill/attribution/brinson.py (8715b), stock_skill/backtest/__init__.py (0b), stock_skill/backtest/backtrader_engine.py (12218b), stock_skill/backtest/engine.py (29218b), stock_skill/config.py (4086b), stock_skill/execution/__init__.py (0b), stock_skill/execution/order.py (11935b), stock_skill/factors/__init__.py (744b), stock_skill/factors/base.py (7828b), stock_skill/factors/capital.py (6646b), stock_skill/factors/enhanced_ic.py (12374b), stock_skill/factors/fundamental.py (5266b), stock_skill/factors/sentiment.py (4601b), stock_skill/indicators.py (3164b), stock_skill/models.py (3857b), stock_skill/monitor.py (2691b), stock_skill/providers/__init__.py (0b), stock_skill/providers/providers.py (15408b), stock_skill/risk.py (5217b), stock_skill/semantic.py (3136b), stock_skill/state.py (10001b), stock_skill/strategies/__init__.py (1580b), stock_skill/strategies/backtrader_adapters.py (10284b), stock_skill/strategies/ensemble.py (16120b), stock_skill/strategies/ml_strategies.py (24919b), stock_skill/strategies/optimizer.py (17653b), stock_skill/strategies/strategies.py (23802b), stock_skill/tools/__init__.py (0b), stock_skill/tools/tools.py (41402b), strategy-reference.md (6710b), test_auto.py (8391b), test...","readmeExcerpt":"Skill: BeerGaao 专业量化交易 Owner: ganjiakoun16 Summary: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Tags: agent:3.3.2, backtest:3.3.2, latest:3.3.5, quant:3.3.2, stock:3.3.2, trading:3.3.2 Version history: v3.3.5 | 2026-05-18T00:40:32.297Z | user 修复Longport数据源初始化守卫（source=longport始终回退到东财）和pyproject.toml版本锁定一致性 v3.3.4 | 2026-05-18T00:32:52.836Z | user 修复缓存TTL忽略参数、港股市场代码错误、测试mock无效、依赖配置不一致、编码乱码等15个问题 v3.3.3 | 2026-05-09T08:36:5","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"File v3.3.5:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理"},{"language":"text","snippet":"File v3.3.5:skill-card.md\n\n## Description:\n\nA stock-market quantitative analysis agent skill for A-share, Hong Kong, and U.S. equity analysis, including technical analysis, strategy generation, backtesting, and risk management.\n\nThis skill is for research and development only.\n\n## Publisher:\n\n[ganjiakoun16](https://clawhub.ai/user/ganjiakoun16)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external agent users can use this skill to fetch market data, run quantitative stock analysis, generate strategy signals, perform backtests, and review risk controls. It is framed by the artifact as research and development support rather than ready-to-use financial advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Broker or market-data credentials may be exposed or over-scoped if used directly in a shared or production environment.\n\nMitigation: Install in an isolated environment, use read-only and narrowly scoped API tokens, avoid Longport tokens with trading authority, and protect config.env permissions.\n\nRisk: Local model loading can be unsafe when model files are untrusted because joblib relies on pickle-like deserialization behavior.\n\nMitigation: Do not load or keep model files unless their origin is trusted, and prefer safer model formats when adapting the skill.\n\nRisk: Pinned or aging dependencies may carry security or operational risk in sensitive account workflows.\n\nMitigation: Review and update dependency pins before using the skill with sensitive accounts or production workflows.\n\nRisk: Financial analysis outputs may be mistaken for investment advice.\n\nMitigation: Treat outputs as research support and require independent human review before any trading or portfolio decision.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/ganjiakoun16/skills/beergaao)\n- [Strategy Engine Reference](artifact/strategy-reference.md)\n- [Factor System Reference](artifact/factor-reference.md)\n- [Risk and Backtest Reference"},{"language":"text","snippet":"File v3.3.4:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理"},{"language":"text","snippet":"File v3.3.4:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2)"},{"language":"text","snippet":"File v3.3.3:risk-reference.md\n\n# 风控与回测参考\r\n\r\n## 风控体系\r\n\r\n### 止损（三选最严）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 固定止损 | 价格 × (1 + STOP_LOSS_RATE)，默认 -4% |\r\n| ATR止损 | 价格 - 2×ATR |\r\n| 支撑位止损 | 支撑位 × 0.98 |\r\n\r\n### 止盈（三选最近）\r\n\r\n| 类型 | 计算方式 |\r\n|------|---------|\r\n| 基础目标 | 价格 × (1 + TARGET_RATE)，默认 +6% |\r\n| ATR目标 | 价格 + 3×ATR |\r\n| 压力位目标 | 阻力位价格 |\r\n\r\n### 移动止损\r\n\r\n`TrailingStop` — 最高价回撤 2×ATR 时触发，止损线只上移不下移\r\n\r\n### 仓位管理"},{"language":"text","snippet":"File v3.3.3:strategy-reference.md\n\n# 策略引擎参考\r\n\r\n## 传统策略（10种，均含买入+卖出信号）\r\n\r\n| 策略 | 买入条件 | 卖出条件 |\r\n|------|---------|---------|\r\n| `ma_breakout` | 均线多头 + 放量突破 | 跌破MA20 / 均线空头排列 |\r\n| `macd_cross` | MACD金叉，柱状线转正 | MACD死叉，柱状线缩小 |\r\n| `boll_squeeze` | 布林收口后突破中轨 | 跌破布林下轨 |\r\n| `rsi_oversold` | RSI从超卖区反弹 | RSI从超买区回落 |\r\n| `kdj_cross` | KDJ超卖区金叉 | KDJ超买区死叉 |\r\n| `volume_shrink` | 上升趋势缩量回调 | 放量下跌跌破均线 |\r\n| `vol_price_divergence` | 底背离（价跌量增） | 顶背离（价涨量缩） |\r\n| `obv_trend` | OBV上升确认资金流入 | OBV下降确认资金流出 |\r\n| `double_ma` | MA5/MA20金叉放量 | MA5/MA20死叉 |\r\n| `support_bounce` | 触及支撑后反弹 | 跌破MA60/布林下轨支撑 |\r\n\r\n## 机器学习策略（4种 + 集成）\r\n\r\n### 模型类型\r\n\r\n| 模型 | 算法 | 关键参数 |\r\n|------|------|----------|\r\n| XGBoost | Gradient Boosting | n_estimators=100, max_depth=5, lr=0.1 |\r\n| LightGBM | LightGBM | n_estimators=100, max_depth=5, lr=0.1 |\r\n| 随机森林 | Random Forest | n_estimators=200, max_depth=8 |\r\n| MLP | 神经网络 | hidden_layers=(64,32,16), adam优化器 |\r\n\r\n### 特征工程（40+维，纯技术指标）\r\n\r\n| 类别 | 特征 | 说明 |\r\n|------|------|------|\r\n| 均线 | ma_5/10/20/60, ma_slope, close_ma_ratio | 均线值、斜率、价格偏离度 |\r\n| RSI | rsi_6, rsi_14 | 6日和14日RSI |\r\n| 波动率 | volatility_10/20 | 10日/20日波动率 |\r\n| 成交量 | volume_ratio_5/10, volume_change | 量比、量变化率 |\r\n| 动量 | momentum_5/10/20 | 5/10/20日收益率 |\r\n| MACD | dif, dea, macd, macd_cross | MACD指标及金叉信号 |\r\n| 布林带 | boll_width, boll_position | 带宽、价格在带内位置 |\r\n| K线形态 | price_range, upper_shadow, lower_shadow | 振幅、上下影线 |\r\n| 滞后 | return_lag_1/2/3/5, volume_lag | 历史收益率和量变化 |\r\n\r\n**标签定义**：未来5日收益率 > +2% 为买入(1)，< -2% 为卖出(-1)，否则持有(0)\r\n\r\n### 训练方式\r\n\r\n- **最低样本量**：200条K线（约10个月日线）\r\n- **增量训练**：支持 `incremental_train()`，在已有模型上追加训练\r\n- **模型持久化**：`save_model()`/`load_model()` 自动保存到 `models/` 目录\r\n- **集成融合**：4模型加权投票，权重由训练准确率决定\r\n\r\n### 防过拟合措施\r\n\r\n| 措施 | XGBoost/LightGBM | 随机森林 | MLP |\r\n|------|------------------|----------|-----|\r\n| 树深度限制 | max_depth=5 | max_depth=8 | - |\r\n| 子采样 | subsample=0.8 | - | batch_size=32 |\r\n| 特征采样 | colsample_bytree=0.8 | - | - |\r\n| 叶子节点 | - | min_samples_split=10, min_samples_leaf=5 | - |\r\n| 正则化 | - | - | alpha=0.001 (L2)"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: beergaao\r\ndescription: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能\r\nversion: 3.2.6\r\nmetadata: {\"openclaw\": {\"requires\": {\"env\": [\"TUSHARE_TOKEN\"]}, \"primaryEnv\": \"TUSHARE_TOKEN\"}}\r\n---\r\n\r\n# BeerGaao 股票量化分析师\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n## BeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合 Tushare、东方财富、Yahoo Finance（选装）、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n## 可用工具\r\n\r\n| 工具 | 功能 | 参数 |\r\n|------|------|------|\r\n| `analyze_stock` | 完整技术分析（策略+集成+ML+IC+校准） | `code` |\r\n| `get_quote` | 实时行情报价 | `code` |\r\n| `analyze_market` | 大盘环境分析 | — |\r\n| `get_money_flow` | 资金流向 | `code` |\r\n| `get_sector_flow` | 板块资金排名 | `limit` |\r\n| `get_dragon_tiger` | 龙虎榜数据 | — |\r\n| `full_review` | 完整复盘 | `watchlist` |\r\n| `backtest_bt` | Backtrader 专业回测 | `code,strategy,start,end,cash` |\r\n| `strategy_attribution` | 策略归因分析 | `days` |\r\n| `check_correlation` | 相关性检查 | `codes` |\r\n| `circuit_breaker_check` | 熔断检查 | — |\r\n| `get_market_breadth` | 市场广度指标 | — |\r\n\r\n## 调用示例\r\n\r\n**用户：\"分析一下贵州茅台的走势\"**\r\n→ 调用 `analyze_stock(\"600519.SH\")`\r\n\r\n**用户：\"今天大盘怎么样\"**\r\n→ 调用 `analyze_market()`\r\n\r\n**用户：\"招商银行资金流向\"**\r\n→ 调用 `get_money_flow(\"600036.SH\")`\r\n\r\n**用户：\"复盘一下\"**\r\n→ 调用 `full_review()`\r\n\r\n**用户：\"用MACD策略回测招商银行\"**\r\n→ 调用 `backtest_bt(\"600036.SH\", \"MACDStrategy\", \"2023-01-01\", \"2026-04-30\")`\r\n\r\n## 信号类型\r\n\r\n- **买入** — 多源共识置信度 ≥ 0.6\r\n- **卖出** — 卖出信号共识 > 买入信号\r\n- **观察** — 有买入信号但置信度 0.4-0.6\r\n- **持有** — 无明确方向信号\r\n\r\n## 支持的股票代码格式\r\n\r\n- A股：`600036.SH`（上海）、`000001.SZ`（深圳）、`300750.SZ`（创业板）\r\n- 港股：`0700.HK`\r\n- 美股：`AAPL.US`\r\n\r\n## 安装使用\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入 TUSHARE_TOKEN\r\n```\r\n\r\n## 配置要求\r\n\r\n| 变量 | 说明 | 必需 |\r\n|------|------|------|\r\n| `TUSHARE_TOKEN` | Tushare API token（只读） | 是 |\r\n| `LONGPORT_APP_KEY` | 长桥 App Key | 否 |\r\n| `LONGPORT_APP_SECRET` | 长桥 App Secret | 否 |\r\n| `LONGPORT_ACCESS_TOKEN` | 长桥 Access Token（建议只读） | 否 |\r\n\r\n## 安全说明\r\n\r\n> ⚠️ **重要安全提示**\r\n\r\n**凭证安全（强制要求）：**\r\n- 所有 API 凭证**必须**通过环境变量提供，代码中**不包含**任何硬编码的 token 或 secret\r\n- `providers.py` 中所有凭证均通过 `self._config.longport_access_token` 等配置属性读取，最终来源为环境变量\r\n- 东方财富 API 的 `ut` 参数通过 `EASTMONEY_UT` 环境变量配置（有默认值，通常无需修改）\r\n- 使用前请确保已设置以下环境变量：\r\n  - `TUSHARE_TOKEN`：Tushare API token（必填）\r\n  - `LONGPORT_APP_KEY`：长桥 App Key（可选）\r\n  - `LONGPORT_APP_SECRET`：长桥 App Secret（可选）\r\n  - `LONGPORT_ACCESS_TOKEN`：长桥 Access Token（可选，建议只读权限）\r\n- 技能启动时会自动检查必填凭证是否存在，缺失时会抛出明确的错误提示\r\n- `config.env` 已被 `.gitignore` 排除，**绝不提交到版本控制系统**\r\n\r\n**数据安全：**\r\n- 本工具仅读取公开市场数据，**不执行实际交易**\r\n- SQLite 数据库默认存储在项目 `.data/` 目录下（可通过 `DB_PATH` 环境变量自定义），已被 `.gitignore` 排除\r\n- 数据库文件权限已设置为仅 owner 可读写（600），目录权限设置为 700\r\n- 如需清除历史分析数据，删除 `.data/` 目录或指定的 `DB_PATH` 文件即可\r\n- 不要加载来源不明的模型文件，模型加载有路径白名单保护\r\n\r\n**模型安全：**\r\n- 仅加载项目 `models/` 目录内本地生成的模型文件\r\n- 禁止加载外部输入、网络下载或用户提供的任意模型文件\r\n- 所有模型加载均通过 `load_model_safe()` 安全函数，自动执行路径白名单校验和文件完"},{"path":"README.md","content":"# BeerGaao\r\n\r\n**胜率总是倍儿高，收益也嘛倍儿好**\r\n\r\n股票量化分析 Agent 工具集\r\n\r\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\r\n[![PyPI](https://img.shields.io/pypi/v/beergaao-blue.svg)](https://pypi.org/project/beergaao/)\r\n[![Downloads](https://img.shields.io/pypi/dm/beergaao.svg)](https://pypi.org/project/beergaao/)\r\n\r\n---\r\n\r\n## 🌟 Introduction\r\n\r\n[![BeerGaao](https://img.shields.io/badge/BeerGaao-股票量化分析-blue)](https://github.com/GanJiaKouN16/BeerGaao)\r\n\r\nBeerGaao 是一个专为 股票市场设计的量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\nBeerGaao 可以成为你的：\r\n\r\n- 💰 **自动量化工厂**：10+ 传统策略 + ML 策略 + 集成引擎，自动生成交易信号\r\n- 🤖 **智能分析 Agent**：支持自然语言交互，一键完成股票技术分析\r\n- 📊 **多数据源网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装）\r\n- 🔬 **因子研究平台**：因子 IC 分析、策略归因、参数自动校准\r\n- 📈 **回测验证系统**：三年历史数据回测，胜率 50%+，夏普比率 1.0+\r\n\r\n---\r\n\r\n## 🏆 Backtest Results\r\n\r\n三年回测验证（2023-04-30 ~ 2026-04-30）：\r\n\r\n| 指标 | 600036.SH 招商银行 | 000858.SZ 五粮液 | 688702.SH 盛科通信 |\r\n|------|-------------------|-----------------|-------------------|\r\n| 总收益率 | **+28.64%** | **+19.39%** | **+57.22%** |\r\n| 年化收益率 | **+8.76%** | **+6.09%** | **+20.45%** |\r\n| 最大回撤 | **12.31%** | 18.74% | 29.83% |\r\n| 胜率 | **58.21%** | **54.68%** | 52.24% |\r\n| 盈亏比 | **1.86:1** | **1.63:1** | **1.78:1** |\r\n| 夏普比率 | 1.28 | 0.87 | **1.54** |\r\n| 超额收益 | **+33.56%** | **+24.31%** | **+62.14%** |\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n### 🐍 环境要求\r\n\r\n- Python 3.10+\r\n- 操作系统：Windows / macOS / Linux\r\n\r\n### 📦 安装\r\n\r\n```bash\r\ngit clone https://github.com/GanJiaKouN16/BeerGaao.git\r\ncd BeerGaao\r\npip install -r requirements.txt\r\ncp config.example.env config.env\r\n# 编辑 config.env 填入配置\r\n```\r\n\r\n### ⚙️ 配置\r\n\r\n编辑 `config.env` 文件，填入以下配置：\r\n\r\n```bash\r\n# Tushare（可选，历史K线数据源）\r\n# 安装：pip install tushare 或 pip install -e \".[tushare]\"\r\nTUSHARE_TOKEN=your_tushare_token_here\r\n\r\n# 长桥 OpenAPI（可选，支持美股/港股）\r\nLONGPORT_APP_KEY=your_longport_app_key_here\r\nLONGPORT_APP_SECRET=your_longport_app_secret_here\r\nLONGPORT_ACCESS_TOKEN=your_longport_access_token_here\r\n```\r\n\r\n> ⚠️ **安全提示**：`config.env` 包含敏感 Token，已被 `.gitignore` 排除，请勿提交到版本库。\r\n\r\n### 🚀 运行\r\n\r\n#### 命令行模式\r\n\r\n```bash\r\npython -m stock_skill                              # 完整复盘\r\npython -m stock_skill --analyze 600036.SH           # 技术分析\r\npython -m stock_skill --market                      # 大盘环境\r\npython -m stock_skill --quote 300750.SZ             # 实时行情\r\npython -m stock_skill --flow 600036.SH              # 资金流向\r\npython -m stock_skill --breadth                     # 市场广度\r\npython -m stock_skill --positions                   # 持仓查询\r\npython -m stock_skill --perf                        # 回填信号绩效\r\npython -m stock_skill --attribution                 # 策略归因分析\r\npython -m stock_skill --monitor                     # 轮询监控\r\npython -m stock_skill \"招商银行怎么分析\"             # 自然语言\r\n```\r\n\r\n#### Python API\r\n\r\n```python\r\nfrom stock_skill.tools.tools import StockTools\r\n\r\ntools = StockTools()\r\n\r\n# 分析（自动集成：传统策略 + 集成引擎 + ML + 因子IC + 参数校准）\r\nresult = tools.analyze_stock(\"600036.SH\")\r\n\r\n# 返回数据包含\r"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cfx0y2qzfavg4yz1dj76a5n85v46w\",\n  \"slug\": \"beergaao\",\n  \"version\": \"3.3.5\",\n  \"publishedAt\": 1779064832297\n}"},{"path":"AGENTS.md","content":"# AGENTS.md — BeerGaao 项目规范\r\n\r\n## 1. 项目概述\r\n\r\nBeerGaao 是一个 A 股量化分析 Agent 工具集，为 AI Agent 提供标准化的股票分析能力。\r\n\r\n技术栈：Python 3.10+，pandas/numpy 数据处理，requests/akshare 必装，tushare（选装）/yfinance（选装）/longport（选装）多数据源，scikit-learn/xgboost/lightgbm 机器学习，backtrader 回测引擎，SQLite 状态持久化。\r\n\r\n仓库结构：\r\n```\r\nBeerGaao/\r\n├── stock_skill/           # 主包\r\n│   ├── __main__.py        # CLI 入口（--analyze, --market, --backtest-bt 等）\r\n│   ├── config.py          # 配置管理（环境变量加载）\r\n│   ├── models.py          # 数据模型定义\r\n│   ├── state.py           # SQLite 状态持久化\r\n│   ├── risk.py            # 风控计算\r\n│   ├── indicators.py      # 技术指标计算\r\n│   ├── semantic.py        # 自然语言查询解析\r\n│   ├── monitor.py         # 轮询监控\r\n│   ├── tools/             # Agent 工具层（串联所有模块）\r\n│   ├── strategies/        # 策略定义 + 参数校准 + Backtrader 适配\r\n│   ├── factors/           # 因子基类 + 合成引擎\r\n│   ├── backtest/          # 回测引擎\r\n│   ├── providers/         # 数据源 + 缓存\r\n│   ├── attribution/       # 策略归因\r\n│   └── execution/         # 执行层\r\n├── tests/                 # 测试套件\r\n├── .env.example           # 环境变量模板\r\n├── pyproject.toml         # 项目配置\r\n└── requirements.txt       # 依赖清单\r\n```\r\n\r\n## 2. 快速命令\r\n\r\n```bash\r\n# 安装依赖\r\npip install -e \".[ml,dev]\"\r\n\r\n# 可选：安装 Tushare 数据源\r\npip install -e \".[tushare]\"\r\n\r\n# 配置环境变量\r\ncp .env.example .env\r\n# 编辑 .env 填入配置（TUSHARE_TOKEN 为可选，仅 Tushare 数据源需要）\r\n\r\n# 运行主程序\r\npython -m stock_skill                    # 完整复盘\r\npython -m stock_skill --analyze 600036.SH  # 分析个股\r\npython -m stock_skill --market           # 市场概览\r\npython -m stock_skill --backtest-bt 600036.SH --strategy MAStrategy\r\n\r\n# 测试\r\npython -m pytest tests/ -v\r\n\r\n# 日志\r\ntail -f stock_skill.log\r\n```\r\n\r\n环境变量配置：\r\n- `.env` 文件位于项目根目录\r\n- 启动脚本通过 `python-dotenv` 自动加载\r\n- 关键变量：`TUSHARE_TOKEN`（可选，仅 Tushare 数据源需要）, `LOG_LEVEL`, `DB_PATH`\r\n\r\n## 3. 后端架构\r\n\r\n```\r\nstock_skill/\r\n├── tools/tools.py         # Agent 工具层，串联所有模块，返回标准化 JSON\r\n├── strategies/            # 策略层\r\n│   ├── strategies.py      # 策略定义 + @register 装饰器注册\r\n│   ├── ensemble.py        # 集成引擎 + 市场状态\r\n│   └── backtrader_adapters.py  # Backtrader 策略适配\r\n├── factors/               # 因子层\r\n│   ├── base.py            # 因子基类 + @register_factor 注册\r\n│   └── *.py               # 具体因子实现\r\n├── backtest/engine.py     # 回测引擎（三年历史数据回测）\r\n├── providers/providers.py # 多数据源网关（tushare/东财 必装，yfinance/长桥 选装）\r\n├── config.py              # 配置管理\r\n├── state.py               # SQLite 持久化（信号历史、持仓）\r\n├── risk.py                # 风控计算（止损、仓位）\r\n├── models.py              # 数据模型（Signal, Position, FactorResult）\r\n└── semantic.py            # 自然语言查询解析\r\n```\r\n\r\n核心子系统：\r\n- **策略引擎**：10+ 传统策略 + ML 策略 + 集成引擎，支持参数自动校准\r\n- **因子平台**：因子 IC 分析、策略归因、因子合成\r\n- **数据网关**：整合东方财富（必装）、Tushare、Yahoo Finance、长桥 OpenAPI（选装），带缓存\r\n- **回测系统**：基于 Backtrader，支持三年历史数据回测\r\n\r\n## 4. 前端架构\r\n\r\n本项目为纯后端 CLI 工具，无前端。通过 CLI 命令或自然语言查询交互。\r\n\r\n## 5. 关键约定\r\n\r\n1. **返回格式**：所有工具方法返回 `{\"tool\": \"name\", \"status\": \"success|error\", \"data\": {...}}`\r\n2. **异常处理**：捕获 Exception，返回 error 状态，不抛出到调用方\r\n3. **类型注解**：使用 `Dict[str, float]` 而非 `dict[str, float]`（兼容 Python 3.9-）\r\n4. **延迟注解**：所有文件使用 `from __future__ import annotat"},{"path":"factor-reference.md","content":"# 因子体系参考\r\n\r\n## 因子列表（19个）\r\n\r\n### 基本面因子（7个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `pe_ttm` | 市盈率（TTM） |\r\n| `pb` | 市净率 |\r\n| `roe` | 净资产收益率 |\r\n| `dividend_yield` | 股息率 |\r\n| `revenue_growth` | 营收增长率 |\r\n| `profit_growth` | 净利润增长率 |\r\n| eps_ttm | 每股收益动量 |\r\n\r\n### 资金面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `main_net_inflow` | 近5日主力净流入均值 |\r\n| `northbound` | 北向资金持股比例变化 |\r\n| `margin` | 融资余额变化率 |\r\n| `vpt` | 量价趋势指标（20日斜率） |\r\n| `mf_strength` | 大单净流入/总成交额 |\r\n| `inst_holding` | 机构持仓比例变化 |\r\n\r\n### 情绪面因子（6个）\r\n\r\n| 因子 | 说明 |\r\n|------|------|\r\n| `turnover` | 换手率 |\r\n| `volatility` | 波动率 |\r\n| `limit_up_momentum` | 涨停动量 |\r\n| `price_strength` | 价格强度 |\r\n| `consecutive_up` | 连续上涨天数 |\r\n| `news_sentiment` | 新闻情绪（东方财富股吧爬虫） |\r\n\r\n## 因子合成\r\n\r\n```python\r\nfrom stock_skill.factors.base import FactorCombiner\r\n\r\n# 等权合成\r\nscores = FactorCombiner.equal_weight(factors)\r\n\r\n# IC加权\r\nscores = FactorCombiner.ic_weight(factors, ic_data)\r\n\r\n# 最大化IC_IR（二次规划优化）\r\nscores = FactorCombiner.maximize_ic_ir(factors, returns)\r\n```\r\n\r\n## 增强IC分析\r\n\r\n`EnhancedFactorAnalyzer` 提供：\r\n\r\n- **滚动IC** — 60日窗口滚动计算Spearman秩相关\r\n- **IC衰减** — 计算1-20天延迟的IC，检测半衰期和持续性\r\n- **因子换手率** — 衡量因子持仓稳定性\r\n- **t统计量 + p值** — 判断IC是否显著\r\n\r\n主流程中自动对 ma5/ma10/ma20/rsi/dif/dea/macd/k/d/boll_mid/atr 计算IC：\r\n\r\n```json\r\n{\r\n  \"rsi\": {\"ic\": 0.035, \"ic_ir\": 0.42, \"significant\": true},\r\n  \"ma20\": {\"ic\": 0.012, \"ic_ir\": 0.15, \"significant\": false}\r\n}\r\n```\r\n\r\n显著性标准：|IC| > 0.02 且 |ICIR| > 0.3\r\n\r\n## IC过滤机制\r\n\r\n策略依赖的因子如果不显著，该策略的置信度自动降权：\r\n\r\n| 情况 | 乘数 |\r\n|------|------|\r\n| 所有依赖因子显著 | ×1.0 |\r\n| 部分因子不显著 | ×0.8 |\r\n| 全部因子不显著 | ×0.6 |\r\n| 无因子映射 | ×1.0 |\r\n\r\n策略→因子映射：`rsi_oversold`→`rsi`, `kdj_cross`→`k,d`, `macd_cross`→`dif,dea,macd` 等\r\n\r\n## 自定义因子\r\n\r\n```python\r\nfrom stock_skill.factors.base import Factor, register_factor\r\n\r\n@register_factor\r\nclass MyFactor(Factor):\r\n    name = \"my_factor\"\r\n    category = \"custom\"\r\n    description = \"自定义因子\"\r\n\r\n    def compute(self, df, **kwargs):\r\n        return some_value\r\n```"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Skill: BeerGaao 专业量化交易 Owner: ganjiakoun16 Summary: A股/港股/美股量化分析工具，提供技术分析、策略生成、回测验证和风险管理功能 Tags: agent:3.3.2, backtest:3.3.2, latest:3.3.5, quant:3.3.2, stock:3.3.2, trading:3.3.2 Version history: v3.3.5 | 2026-05-18T00:40:32.297Z | user 修复Longport数据源初始化守卫（source=longport始终回退到东财）和pyproject.toml版本锁定一致性 v3.3.4 | 2026-05-18T00:32:52.836Z | user 修复缓存TTL忽略参数、港股市场代码错误、测试mock无效、依赖配置不一致、编码乱码等15个问题 v3.3.3 | 2026-05-09T08:36:5","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":861,"uniquenessScore":56,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:30:24.384Z","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-10T19:30:24.384Z","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-10T21:56:44.207Z","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"}]}}}