{"id":"b12a4984-11f4-44a3-9e5f-1cc84831c2f3","entityType":"agent","slug":"clawhub-jame-mei-ltp-a-stock-monitor","name":"A Stock Monitor","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jame-mei-ltp-a-stock-monitor","canonicalPath":"/agent/clawhub-jame-mei-ltp-a-stock-monitor","generatedAt":"2026-10-10T06:15:02.602Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化... Skill: A Stock Monitor Owner: jame-mei-ltp Summary: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化... Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-24T03:34:33.365Z | user 修复数据更新Bug，优化数据源性能（新浪+akshare），提升6-10倍速度 v1.1.0 | 2026-02-24T01:34:32.846Z | user 重大更新: 新增智能选股引擎（短线5策略+中长线7策略），多指标共振评分，精确买卖点计算，动态止损","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7cv05f00kdbz76tfrgzjjcrs80vm51:a-stock-monitor","sourceUrl":"https://clawhub.ai/jame-mei-ltp/a-stock-monitor","homepage":"https://clawhub.ai/jame-mei-ltp/a-stock-monitor","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jame-mei-ltp/a-stock-monitor","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","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-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":1348,"packageName":null,"latestVersion":"1.1.2","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T22:47:03.427Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T22:47:03.427Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T22:47:03.427Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.2","createdAt":"2026-02-24T03:34:33.365Z","changelog":"修复数据更新Bug，优化数据源性能（新浪+akshare），提升6-10倍速度","fileCount":27,"zipByteSize":73621},{"version":"1.1.0","createdAt":"2026-02-24T01:34:32.846Z","changelog":"重大更新: 新增智能选股引擎（短线5策略+中长线7策略），多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。","fileCount":18,"zipByteSize":56714},{"version":"1.0.3","createdAt":"2026-02-24T01:30:30.054Z","changelog":"添加作者博客链接: https://www.cnblogs.com/Jame-mei","fileCount":null,"zipByteSize":null},{"version":"1.0.2","createdAt":"2026-02-24T01:28:24.675Z","changelog":"添加MIT License文件","fileCount":null,"zipByteSize":null},{"version":"1.0.1","createdAt":"2026-02-24T01:28:06.560Z","changelog":"添加作者信息: James Mei <meijinmeng@126.com>","fileCount":null,"zipByteSize":null},{"version":"1.0.0","createdAt":"2026-02-24T01:27:06.574Z","changelog":"首次发布: 7维度市场情绪评分、实时价格监控、涨跌幅排行榜、Web可视化界面","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7cv05f00kdbz76tfrgzjjcrs80vm51:a-stock-monitor","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-jame-mei-ltp-a-stock-monitor/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T06:15:02.600Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jame-mei-ltp-a-stock-monitor/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-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: A Stock Monitor\n\nOwner: jame-mei-ltp\n\nSummary: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化...\n\nTags: latest:1.1.2\n\nVersion history:\n\nv1.1.2 | 2026-02-24T03:34:33.365Z | user\n\n修复数据更新Bug，优化数据源性能（新浪+akshare），提升6-10倍速度\n\nv1.1.0 | 2026-02-24T01:34:32.846Z | user\n\n重大更新: 新增智能选股引擎（短线5策略+中长线7策略），多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。\n\nv1.0.3 | 2026-02-24T01:30:30.054Z | user\n\n添加作者博客链接: https://www.cnblogs.com/Jame-mei\n\nv1.0.2 | 2026-02-24T01:28:24.675Z | user\n\n添加MIT License文件\n\nv1.0.1 | 2026-02-24T01:28:06.560Z | user\n\n添加作者信息: James Mei <meijinmeng@126.com>\n\nv1.0.0 | 2026-02-24T01:27:06.574Z | user\n\n首次发布: 7维度市场情绪评分、实时价格监控、涨跌幅排行榜、Web可视化界面\n\nArchive index:\n\nArchive v1.1.2: 27 files, 73621 bytes\n\nFiles: CHANGELOG.md (1459b), references/API.md (5012b), references/CHANGELOG.md (1459b), references/DATA_SOURCE_FINAL.md (4424b), references/EXAMPLES.md (6480b), references/FINAL_SUMMARY.md (4733b), references/FIX_SUMMARY.md (3496b), references/INSTALL.md (3064b), references/SINA_TEST_REPORT.md (3513b), references/STOCK_SELECTION.md (8444b), scripts/config.py (1124b), scripts/enhanced_long_term_selector.py (14102b), scripts/hybrid_data_source.py (14507b), scripts/is_trading_time.py (1452b), scripts/long_term_selector.py (15400b), scripts/market_sentiment.py (10566b), scripts/short_term_selector.py (21388b), scripts/smart_data_source.py (3763b), scripts/smart_market_updater.py (1263b), scripts/stock_async_fetcher.py (7970b), scripts/stock_cache_db.py (10311b), scripts/strategy_config.py (9211b), scripts/templates/index.html (31453b), scripts/update_all_market_data.py (2543b), scripts/web_app.py (29996b), SKILL.md (9335b), _meta.json (134b)\n\nFile v1.1.2:SKILL.md\n\n---\nname: a-stock-monitor\ndescription: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化交易、技术分析、选股决策。\nauthor: James Mei\ncontact:\n  email: meijinmeng@126.com\n  blog: https://www.cnblogs.com/Jame-mei\nmetadata:\n  openclaw:\n    requires:\n      bins: [\"python3\"]\n      packages: [\"akshare\", \"flask\", \"ccxt\"]\n---\n\n# A股量化选股和监控系统\n\n一个完整的A股量化选股、实时监控与市场情绪分析系统。\n\n**作者**: James Mei  \n**邮箱**: meijinmeng@126.com  \n**博客**: https://www.cnblogs.com/Jame-mei  \n**版本**: 1.1.2  \n**许可证**: MIT\n\n## 🆕 v1.1.2 更新 (2026-02-24)\n\n### 核心优化\n- ⚡ **性能提升6-10倍**：交易时间使用新浪财经（0.1秒 vs 1.5秒）\n- 🔧 **修复关键Bug**：全市场数据更新、选股功能\n- 📊 **数据完整性**：从8只提升到5748只（98.9%）\n- 🎯 **智能切换**：交易时间新浪优先，盘后akshare稳定\n\n### 技术改进\n- 双数据源架构（新浪+akshare）\n- 自动判断交易时间\n- 超时保护和降级机制\n- 完整的向后兼容\n\n详见：[CHANGELOG.md](references/CHANGELOG.md)\n\n---\n\n## 核心功能\n\n### 1. 市场情绪评分 (7维度)\n基于全市场5000+只A股的综合情绪评分（0-100分）：\n- 涨跌家数比 (20%)\n- 平均涨幅 (20%)\n- 涨停/跌停比 (15%)\n- 强势股占比 (15%)\n- 成交活跃度 (10%)\n- 波动率 (10%)\n- 趋势强度 (10%)\n\n### 2. 智能选股引擎\n\n#### 短线选股 (1-5天)\n**5大策略**，每日推荐3-5只短线机会股：\n- **RSI短线** - 超短线RSI策略，适合T+0或快速进出\n- **MACD短线** - MACD金叉死叉，短期趋势跟踪\n- **KDJ短线** - KDJ超买超卖，适合日内波段\n- **布林突破** - 布林带突破，捕捉短期波动\n- **放量突破** - 量价齐升，短期强势股\n\n**多指标共振评分体系** (满分100分)：\n- RSI信号 (20分)\n- KDJ信号 (20分)\n- MACD信号 (15分)\n- 布林带信号 (15分)\n- 量价异动 (15分)\n- 资金流向 (15分)\n\n**精确买卖点**：\n- 动态止损止盈（基于ATR）\n- 买入价、止损价、止盈价自动计算\n- 预期收益率、风险收益比\n\n#### 中长线选股 (20-180天)\n**7大策略**，每日推荐5-10只优质股票：\n- **MA趋势** - 均线多头排列，趋势跟踪 (20-60天)\n- **MACD趋势** - MACD趋势确认，中期持有 (15-30天)\n- **价值成长** - 长期价值投资 (60-180天)\n- **突破回踩** - 突破后回踩买入 (10-30天)\n- **底部反转** - RSI+MACD双确认 (15-30天)\n- **趋势加速** - 均线多头+放量 (10-20天)\n- **强势股回调** - 强势股回调低吸 (5-15天)\n\n**综合评分维度**：\n- 技术指标 (40%) - MA/MACD/RSI/KDJ等\n- 资金流向 (30%) - 主力资金净流入\n- 市场热度 (15%) - 换手率、振幅\n- 风险评估 (15%) - 波动率、回撤\n\n**持仓建议**：\n- 建议仓位（根据评分）\n- 预期收益率\n- 风险等级\n- 持仓周期\n\n#### 选股配置\n- 自动过滤创业板(3开头)和科创板(688开头)\n- 支持自定义监控股票池（watchlist.json）\n- 每日自动推荐，飞书/企业微信告警\n\n### 3. 实时价格监控\n- 交易时间：每5秒更新价格\n- 非交易时间：显示历史数据\n- 自动判断交易时段（9:15-11:30, 13:00-15:00）\n\n### 4. 涨跌幅排行榜\n- 实时涨幅榜（Top 5）\n- 实时跌幅榜（Top 5）\n- 支持点击查看详情\n\n### 5. Web可视化界面\n- 市场情绪仪表盘\n- 监控股票卡片展示\n- 统计数据汇总\n- 响应式设计\n\n## 使用方式\n\n### 快速开始\n\n1. **安装依赖**\n```bash\npip3 install akshare flask ccxt\n```\n\n2. **配置监控股票**\n编辑 `web_app.py`，修改 `WATCHED_STOCKS` 列表：\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    # 添加更多股票代码...\n]\n```\n\n3. **启动Web服务**\n```bash\ncd scripts/\npython3 web_app.py\n```\n访问 `http://localhost:5000`\n\n### 自动化运行\n\n**设置Cron任务**（交易时间每5分钟更新）：\n```bash\nopenclaw cron add --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'\n```\n\n替换 `<skill-path>` 为技能安装路径。\n\n### 手动执行\n\n```bash\n# 更新全市场数据\npython3 scripts/update_all_market_data.py\n\n# 计算市场情绪\npython3 scripts/market_sentiment.py\n\n# 智能更新（仅交易时间）\npython3 scripts/smart_market_updater.py\n\n# 检查交易时间\npython3 scripts/is_trading_time.py\n\n# 短线选股（每日推荐3-5只）\npython3 scripts/short_term_selector.py\n\n# 中长线选股（每日推荐5-10只）\npython3 scripts/long_term_selector.py\n\n# 增强版中长线选股\npython3 scripts/enhanced_long_term_selector.py\n```\n\n## 目录结构\n\n```\nscripts/\n├── web_app.py                      # Flask Web服务\n├── stock_cache_db.py               # SQLite数据缓存\n├── stock_async_fetcher.py          # 异步数据获取\n├── market_sentiment.py             # 市场情绪计算\n├── is_trading_time.py              # 交易时间判断\n├── smart_market_updater.py         # 智能更新器\n├── update_all_market_data.py       # 全市场数据更新\n├── short_term_selector.py          # 短线选股引擎\n├── long_term_selector.py           # 中长线选股引擎\n├── enhanced_long_term_selector.py  # 增强版中长线选股\n├── strategy_config.py              # 策略配置文件\n└── templates/\n    └── index.html                  # Web前端页面\n```\n\n## API端点\n\n### GET /api/market/sentiment\n返回全市场情绪评分\n\n**响应示例**:\n```json\n{\n  \"score\": 57,\n  \"level\": \"偏乐观\",\n  \"emoji\": \"🟢\",\n  \"description\": \"市场偏强，情绪稳定\",\n  \"stats\": {\n    \"total\": 5000,\n    \"gainers\": 2460,\n    \"losers\": 2534,\n    \"limit_up\": 15,\n    \"limit_down\": 3\n  }\n}\n```\n\n### GET /api/stocks\n返回所有监控股票数据\n\n### GET /api/stocks/realtime\n返回监控股票实时价格（轻量级）\n\n### GET /api/stock/<code>\n返回单只股票详情\n\n## 配置说明\n\n### 交易时间配置\n默认交易时间：周一至周五 9:15-15:00\n\n修改 `is_trading_time.py`：\n```python\nTRADING_HOURS = {\n    'morning': (9, 15, 11, 30),    # 9:15-11:30\n    'afternoon': (13, 0, 15, 0),   # 13:00-15:00\n}\n```\n\n### 数据缓存配置\nSQLite数据库：`stock_cache.db`\n默认缓存时间：30分钟\n\n修改 `stock_cache_db.py`：\n```python\nMAX_AGE_MINUTES = 30  # 缓存有效期\n```\n\n### 监控股票配置\n编辑 `web_app.py` 中的 `WATCHED_STOCKS` 列表\n\n### 市场情绪阈值\n修改 `market_sentiment.py`：\n```python\n# 情绪等级阈值\nLEVELS = [\n    (80, 100, '极度乐观', '🔴'),\n    (65, 79, '乐观', '🟠'),\n    (55, 64, '偏乐观', '🟢'),\n    # ...\n]\n```\n\n## 数据来源\n\n- **akshare**: 获取A股实时行情、全市场数据\n- **本地缓存**: SQLite数据库存储历史数据\n\n## 性能优化\n\n1. **分级更新**\n   - 实时价格: 5秒（仅价格+涨跌）\n   - 完整数据: 30秒（含技术指标）\n   - 后端更新: 5分钟（全市场数据）\n\n2. **智能缓存**\n   - 交易时间: 5分钟缓存\n   - 非交易时间: 显示历史数据\n\n3. **异步获取**\n   - 使用异步方式获取全市场数据\n   - 避免阻塞主线程\n\n## 故障排查\n\n### 问题1: 数据全为null\n**原因**: 非交易时间，akshare返回空数据\n**解决**: 等待交易时间，或导入演示数据\n\n### 问题2: Web界面一直转圈\n**原因**: 数据库无有效数据\n**解决**: 运行 `python3 update_all_market_data.py`\n\n### 问题3: Cron任务不执行\n**原因**: 时区配置错误\n**解决**: 确保时区设置为 `Asia/Shanghai`\n\n### 问题4: 端口被占用\n**原因**: Flask默认端口5000冲突\n**解决**: 修改 `web_app.py` 中的端口号\n\n## 扩展开发\n\n### 添加新的监控指标\n编辑 `market_sentiment.py`，添加新的评分维度：\n\n```python\ndef calculate_sentiment(stocks):\n    # 添加新维度\n    new_dimension_score = calculate_new_dimension(stocks)\n    \n    # 调整权重\n    score = (\n        gain_ratio_score * 0.18 +      # 降低原有权重\n        # ...\n        new_dimension_score * 0.10      # 新维度10%\n    )\n```\n\n### 自定义告警规则\n创建新的告警脚本：\n\n```python\ndef check_custom_alert():\n    cache = StockCache()\n    stocks = cache.get_all_stocks()\n    \n    # 自定义告警逻辑\n    alerts = []\n    for stock in stocks:\n        if stock['change_pct'] > 5:\n            alerts.append(stock)\n    \n    if alerts:\n        send_alert(alerts)\n```\n\n## 技术栈\n\n- **后端**: Python 3.9+, Flask\n- **数据**: akshare, SQLite\n- **前端**: jQuery, Bootstrap\n- **自动化**: OpenClaw Cron\n\n## 许可证\n\nMIT License\n\n## 联系作者\n\n- **邮箱**: meijinmeng@126.com\n- **博客**: https://www.cnblogs.com/Jame-mei\n\n欢迎反馈问题、建议和改进意见！\n\n## 致谢\n\n- akshare 提供A股数据接口\n- OpenClaw 提供自动化调度能力\n\nFile v1.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cv05f00kdbz76tfrgzjjcrs80vm51\",\n  \"slug\": \"a-stock-monitor\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1771904073365\n}\n\nFile v1.1.2:references/API.md\n\n# API文档\n\n## 基础信息\n\n- **基础URL**: `http://localhost:5000/api`\n- **响应格式**: JSON\n- **认证**: 需要登录（默认密码：stock2024）\n\n## 端点列表\n\n### 1. 市场情绪 - GET /api/market/sentiment\n\n获取全市场5000+只股票的综合情绪评分。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/market/sentiment\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"score\": 57,\n  \"level\": \"偏乐观\",\n  \"emoji\": \"🟢\",\n  \"description\": \"市场偏强，情绪稳定 · 涨停15只 跌停3只 · 强势股108只 弱势股104只 · 平均换手4.22% 波动率3.95%\",\n  \"stats\": {\n    \"total\": 5000,\n    \"gainers\": 2460,\n    \"losers\": 2534,\n    \"limit_up\": 15,\n    \"limit_down\": 3,\n    \"strong_stocks\": 108,\n    \"weak_stocks\": 104,\n    \"avg_change\": 0.35,\n    \"avg_turnover\": 4.22,\n    \"avg_volatility\": 3.95\n  },\n  \"is_historical\": false,\n  \"data_time\": \"2026-02-24 14:55:00\",\n  \"demo_mode\": false\n}\n```\n\n**字段说明**:\n- `score`: 情绪评分 (0-100)\n- `level`: 情绪等级 (极度悲观/悲观/偏悲观/中性/偏乐观/乐观/极度乐观)\n- `emoji`: 情绪表情\n- `is_historical`: 是否为历史数据\n- `demo_mode`: 是否为演示模式\n\n### 2. 监控股票列表 - GET /api/stocks\n\n获取所有监控股票的完整数据（含技术指标、资金流）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"volume\": 158900000,\n      \"amount\": 4267850000,\n      \"update_time\": \"2026-02-24 14:55:00\",\n      \"fund_flow\": {\n        \"main_in\": -128500000,\n        \"super_in\": -85200000,\n        \"big_in\": -43300000,\n        \"mid_in\": 45600000,\n        \"small_in\": 82900000\n      },\n      \"tech_indicators\": {\n        \"rsi\": 45.2,\n        \"macd\": -0.15,\n        \"kdj_k\": 38.5,\n        \"kdj_d\": 42.1\n      }\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n### 3. 实时价格 - GET /api/stocks/realtime\n\n获取监控股票的实时价格（轻量级，仅价格和涨跌）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks/realtime\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"update_time\": \"2026-02-24 14:55:00\"\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n**使用场景**: 前端实时轮询（每5秒）\n\n### 4. 股票详情 - GET /api/stock/<code>\n\n获取单只股票的详细信息。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stock/600900\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"code\": \"600900\",\n    \"name\": \"长江电力\",\n    \"price\": 26.85,\n    \"change_pct\": -0.52,\n    \"volume\": 158900000,\n    \"amount\": 4267850000,\n    \"turnover\": 1.25,\n    \"amplitude\": 2.18,\n    \"update_time\": \"2026-02-24 14:55:00\",\n    \"fund_flow\": {...},\n    \"tech_indicators\": {...}\n  }\n}\n```\n\n### 5. 市场总览 - GET /api/market/overview (已废弃)\n\n该端点已被移除，请使用 `/api/market/sentiment` 替代。\n\n## 错误码\n\n| 状态码 | 说明 |\n|--------|------|\n| 200 | 成功 |\n| 401 | 未授权（需要登录） |\n| 404 | 资源不存在 |\n| 500 | 服务器错误 |\n\n## 数据更新频率\n\n| 端点 | 缓存时间 | 更新频率 |\n|------|----------|----------|\n| /api/market/sentiment | 30分钟 | 交易时间每5分钟 |\n| /api/stocks | 实时 | 每次请求 |\n| /api/stocks/realtime | 实时 | 每次请求 |\n| /api/stock/<code> | 实时 | 每次请求 |\n\n## 前端集成示例\n\n### jQuery轮询\n\n```javascript\n// 每5秒更新实时价格\nsetInterval(function() {\n    $.ajax({\n        url: '/api/stocks/realtime',\n        method: 'GET',\n        success: function(response) {\n            if (response.status === 'success') {\n                updatePrices(response.data);\n            }\n        }\n    });\n}, 5000);\n```\n\n### 市场情绪展示\n\n```javascript\n$.ajax({\n    url: '/api/market/sentiment',\n    method: 'GET',\n    success: function(data) {\n        $('#sentimentScore').text(data.score);\n        $('#sentimentLevel').text(data.level);\n        $('#sentimentEmoji').text(data.emoji);\n    }\n});\n```\n\n## Python客户端示例\n\n```python\nimport requests\n\n# 获取市场情绪\nresponse = requests.get('http://localhost:5000/api/market/sentiment')\nsentiment = response.json()\nprint(f\"市场情绪: {sentiment['level']} ({sentiment['score']}分)\")\n\n# 获取监控股票\nresponse = requests.get('http://localhost:5000/api/stocks')\nstocks = response.json()['data']\nfor stock in stocks:\n    print(f\"{stock['name']}: {stock['price']} ({stock['change_pct']:+.2f}%)\")\n```\n\n## 认证\n\n默认密码：`stock2024`\n\n修改密码：编辑 `web_app.py`\n```python\nPASSWORD = \"your_new_password\"\n```\n\n## 跨域配置（CORS）\n\n如需跨域访问，添加CORS支持：\n\n```python\nfrom flask_cors import CORS\n\napp = Flask(__name__)\nCORS(app)\n```\n\nFile v1.1.2:references/CHANGELOG.md\n\n# Changelog\n\n## v1.1.2 (2026-02-24)\n\n### 🔧 Bug Fixes\n- 修复全市场数据更新失败问题（save_stock → save_stocks）\n- 修复选股功能报错（添加close()兼容方法）\n- 修复市场情绪只显示监控股票的问题\n\n### ⚡ Performance\n- 实施智能数据源切换（新浪+akshare）\n- 交易时间优先新浪财经（0.1秒，快15倍）\n- 盘后自动切换akshare历史数据（稳定）\n- 全市场数据完整性提升到98.9%（5748/5810只）\n\n### ✨ Enhancements\n- 新浪财经+akshare双数据源架构\n- 自动判断交易时间智能切换\n- 超时保护和自动降级机制\n- 数据缓存优化（30分钟有效期）\n\n### 📊 Data Quality\n- 市场情绪现基于5748只A股（之前仅8只）\n- 数据更新成功率从0%提升到98.9%\n- 实时价格更新速度提升6-10倍（交易时间）\n\n### 🎯 System Stability\n- 完整测试短线和中长线选股功能\n- Web服务稳定性提升\n- 错误处理和日志优化\n\n### 📝 Documentation\n- 新增 `SINA_TEST_REPORT.md` - 新浪性能测试\n- 新增 `DATA_SOURCE_FINAL.md` - 数据源方案\n- 新增 `FIX_SUMMARY.md` - 问题修复记录\n- 新增 `FINAL_SUMMARY.md` - 系统完整说明\n\n---\n\n## v1.1.0 (2026-02-24)\n\n### ✨ New Features\n- 短线选股引擎（5策略）\n- 中长线选股引擎（7策略）\n- 多指标共振评分系统\n\n---\n\n## v1.0.2 (2026-02-24)\n\n### Initial Release\n- 市场情绪评分系统\n- Web可视化界面\n- 基础监控功能\n\nFile v1.1.2:references/DATA_SOURCE_FINAL.md\n\n# 数据源最终配置\n\n## ✅ 采用方案：新浪财经 + akshare\n\n### 数据源架构\n\n```\n┌─────────────────────────────────────┐\n│  第一层: 新浪财经 (1-3秒)           │\n│  ✓ 最快  ✓ 免费  ✗ 可能不稳定      │\n└────────────┬────────────────────────┘\n             │ 失败/超时 ↓\n┌─────────────────────────────────────┐\n│  第二层: akshare (10-30秒)          │\n│  ✓ 稳定  ✓ 免费  ✗ 较慢            │\n└─────────────────────────────────────┘\n```\n\n**Tushare**: ❌ 不使用（需要积分，不可靠）\n\n## 📊 性能表现\n\n### 实时行情\n| 操作 | 新浪成功 | 新浪失败→akshare |\n|------|----------|-----------------|\n| 单股查询 | 1-3秒 | 10-30秒 |\n| 批量查询(50) | 3-5秒 | 30-60秒 |\n\n### 全市场更新\n- 5810只股票: **1-2分钟**\n- 平均: 约1.2秒/股\n\n## 🎯 优化策略\n\n### 1. 新浪财经优化\n- ✅ 批量查询（一次最多50只）\n- ✅ 超时控制（3秒）\n- ✅ 自动重试机制\n\n### 2. akshare优化\n- ✅ 缓存机制（30分钟有效期）\n- ✅ 批量保存（减少数据库写入）\n- ✅ 进度显示\n\n### 3. 智能切换\n- ✅ 新浪失败自动切换akshare\n- ✅ 无需人工干预\n- ✅ 完全透明\n\n## 📁 核心文件\n\n### 1. hybrid_data_source.py\n混合数据源管理器\n- 新浪财经接口\n- akshare接口\n- 自动切换逻辑\n\n### 2. smart_data_source.py\n向后兼容层\n- 统一接口\n- 现有代码无需修改\n\n### 3. update_all_market_data.py\n全市场数据更新\n- 使用akshare获取全市场\n- 批量保存到数据库\n\n### 4. config.py\n配置文件\n```python\nTUSHARE_TOKEN = None  # 不使用Tushare\nENABLE_WEBSOCKET = True  # 前端实时更新\n```\n\n## ⚙️ 当前配置\n\n### 数据更新频率\n- **交易时间**: 每5分钟更新一次\n- **前端刷新**: 每5秒查询实时价格\n- **非交易时间**: 停止更新\n\n### Cron任务\n```bash\n# A股全市场数据更新（交易时间每5分钟）\n*/5 9-15 * * 1-5\n```\n\n### Web服务\n- 端口: 5000\n- 实时API: 每5秒轮询\n- 数据源: 新浪 → akshare\n\n## 📈 性能监控\n\n### 关键指标\n- ✅ 数据完整性: 5748/5810 (98.9%)\n- ✅ 更新速度: 1-2分钟/次\n- ✅ 服务稳定性: 良好\n\n### 监控命令\n```bash\n# 查看数据库状态\ncd /Users/jamemei/.openclaw/workspace/crypto_quant_sim/stock-monitor\npython3 fix_market_sentiment.py\n\n# 查看Web日志\ntail -50 web_app.log\n\n# 测试新浪接口\npython3 test_sina_only.py\n```\n\n## 🔄 数据流程\n\n### 实时价格获取流程\n```\n用户请求\n  ↓\nSmartDataSource\n  ↓\n尝试新浪财经 (3秒超时)\n  ↓\n成功? → 返回数据 ✅\n  ↓ 失败\n尝试akshare (30秒超时)\n  ↓\n成功? → 返回数据 ✅\n  ↓ 失败\n返回缓存数据或None ❌\n```\n\n### 全市场更新流程\n```\nCron触发 (每5分钟)\n  ↓\n判断交易时间?\n  ↓ 是\nakshare获取全市场 (5810只)\n  ↓\n批量保存到数据库\n  ↓\n完成 (1-2分钟) ✅\n```\n\n## 🚀 未来优化方向\n\n### 短期（可选）\n1. **WebSocket实时推送**\n   - 真正的毫秒级更新\n   - 需要对接第三方WebSocket服务\n\n2. **增量更新**\n   - 只更新有变化的股票\n   - 减少更新时间\n\n### 长期（可选）\n1. **多数据源对比**\n   - 新浪、东方财富、腾讯财经\n   - 投票机制选择最准确的数据\n\n2. **本地缓存优化**\n   - Redis缓存\n   - 分布式缓存\n\n## ⚠️ 注意事项\n\n### 新浪财经限制\n- 可能被封IP（高频访问）\n- 非交易时间无数据\n- 偶尔返回空数据\n\n**对策**:\n- ✅ 自动切换到akshare\n- ✅ 合理控制请求频率\n- ✅ 缓存机制减少请求\n\n### akshare限制\n- 速度较慢（1-1.5秒/股）\n- 爬虫方式可能失效\n\n**对策**:\n- ✅ 批量获取提高效率\n- ✅ 缓存30分钟减少请求\n- ✅ 定期检查可用性\n\n## 📞 支持\n\n遇到问题:\n1. 查看 `INTEGRATION_STATUS.md` - 集成状态\n2. 查看 `FIX_SUMMARY.md` - 修复记录\n3. 运行 `diagnose.py` - 系统诊断\n\n---\n\n**配置时间**: 2026-02-24  \n**方案**: 新浪财经 + akshare（双数据源）  \n**状态**: ✅ 稳定运行  \n**性能**: 良好（5748只数据，1-2分钟更新）\n\nFile v1.1.2:references/EXAMPLES.md\n\n# 使用示例\n\n## 场景1: 快速监控个人持仓\n\n### 配置监控股票\n\n编辑 `web_app.py`：\n\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    '000858',  # 五粮液\n    '600519',  # 贵州茅台\n]\n```\n\n### 启动监控\n\n```bash\npython3 web_app.py\n```\n\n访问 `http://localhost:5000`，即可看到实时价格、涨跌幅排行。\n\n## 场景2: 自动化交易时段监控\n\n### 设置Cron任务\n\n```bash\nopenclaw cron add \\\n  --name \"A股数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd ~/.openclaw/skills/a-stock-monitor/scripts && python3 smart_market_updater.py\"}'\n```\n\n系统会在交易时间自动更新数据，非交易时间自动跳过。\n\n## 场景3: 市场情绪追踪\n\n### 获取情绪评分\n\n```python\nimport requests\n\nresponse = requests.get('http://localhost:5000/api/market/sentiment')\ndata = response.json()\n\nprint(f\"市场情绪: {data['level']} {data['emoji']}\")\nprint(f\"评分: {data['score']}/100\")\nprint(f\"涨停: {data['stats']['limit_up']}只\")\nprint(f\"跌停: {data['stats']['limit_down']}只\")\nprint(f\"上涨: {data['stats']['gainers']}只\")\nprint(f\"下跌: {data['stats']['losers']}只\")\n```\n\n### 输出示例\n\n```\n市场情绪: 偏乐观 🟢\n评分: 57/100\n涨停: 15只\n跌停: 3只\n上涨: 2460只\n下跌: 2534只\n```\n\n## 场景4: 结合OpenClaw创建智能告警\n\n### 创建告警脚本\n\n创建 `custom_alert.py`：\n\n```python\nimport requests\nimport subprocess\n\ndef check_alert():\n    # 获取监控股票\n    response = requests.get('http://localhost:5000/api/stocks')\n    stocks = response.json()['data']\n    \n    alerts = []\n    for stock in stocks:\n        # 涨跌超过5%告警\n        if abs(stock['change_pct']) > 5:\n            alerts.append(f\"{stock['name']} ({stock['code']}): {stock['change_pct']:+.2f}%\")\n    \n    if alerts:\n        message = \"🚨 股票异动告警\\n\\n\" + \"\\n\".join(alerts)\n        # 发送到飞书\n        webhook = \"https://open.larksuite.com/open-apis/bot/v2/hook/YOUR_WEBHOOK\"\n        subprocess.run(['curl', '-X', 'POST', webhook, \n                       '-H', 'Content-Type: application/json',\n                       '-d', f'{{\"msg_type\":\"text\",\"content\":{{\"text\":\"{message}\"}}}}'])\n\nif __name__ == '__main__':\n    check_alert()\n```\n\n### 设置告警任务\n\n```bash\nopenclaw cron add \\\n  --name \"股票异动告警\" \\\n  --schedule \"*/15 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"python3 /path/to/custom_alert.py\"}'\n```\n\n## 场景5: 导出每日数据报告\n\n### 创建报告脚本\n\n创建 `daily_report.py`：\n\n```python\nimport requests\nfrom datetime import datetime\n\ndef generate_report():\n    # 获取市场情绪\n    sentiment = requests.get('http://localhost:5000/api/market/sentiment').json()\n    \n    # 获取监控股票\n    stocks = requests.get('http://localhost:5000/api/stocks').json()['data']\n    \n    # 生成报告\n    report = f\"\"\"\n# A股监控日报 - {datetime.now().strftime('%Y-%m-%d')}\n\n## 市场情绪\n- 评分: {sentiment['score']}/100\n- 等级: {sentiment['level']} {sentiment['emoji']}\n- 涨停: {sentiment['stats']['limit_up']}只\n- 跌停: {sentiment['stats']['limit_down']}只\n\n## 持仓情况\n\"\"\"\n    \n    for stock in sorted(stocks, key=lambda x: x['change_pct'], reverse=True):\n        report += f\"- {stock['name']} ({stock['code']}): ¥{stock['price']} ({stock['change_pct']:+.2f}%)\\n\"\n    \n    # 保存报告\n    filename = f\"report_{datetime.now().strftime('%Y%m%d')}.md\"\n    with open(filename, 'w') as f:\n        f.write(report)\n    \n    print(f\"✅ 报告已生成: {filename}\")\n\nif __name__ == '__main__':\n    generate_report()\n```\n\n### 定时生成报告\n\n```bash\nopenclaw cron add \\\n  --name \"每日股市报告\" \\\n  --schedule \"0 15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"python3 /path/to/daily_report.py\"}'\n```\n\n每天收盘后自动生成报告。\n\n## 场景6: 多账户监控（分组管理）\n\n### 创建多配置文件\n\n`config_account1.py`:\n```python\nWATCHED_STOCKS = ['600900', '601985', '600905']  # 账户1持仓\n```\n\n`config_account2.py`:\n```python\nWATCHED_STOCKS = ['000858', '600519', '000333']  # 账户2持仓\n```\n\n### 启动多个监控实例\n\n```bash\n# 账户1 - 端口5001\nPORT=5001 CONFIG=config_account1.py python3 web_app.py &\n\n# 账户2 - 端口5002\nPORT=5002 CONFIG=config_account2.py python3 web_app.py &\n```\n\n修改 `web_app.py` 支持环境变量：\n\n```python\nimport os\nimport importlib\n\n# 读取配置\nconfig_file = os.getenv('CONFIG', 'config')\nconfig = importlib.import_module(config_file.replace('.py', ''))\nWATCHED_STOCKS = config.WATCHED_STOCKS\n\n# 读取端口\nport = int(os.getenv('PORT', 5000))\n\nif __name__ == '__main__':\n    app.run(debug=True, host='0.0.0.0', port=port)\n```\n\n## 场景7: 集成到交易策略\n\n### 根据市场情绪调整仓位\n\n```python\nimport requests\n\ndef adjust_position():\n    # 获取市场情绪\n    sentiment = requests.get('http://localhost:5000/api/market/sentiment').json()\n    score = sentiment['score']\n    \n    # 根据情绪调整仓位\n    if score >= 70:\n        position = 0.8  # 乐观时高仓位\n    elif score >= 50:\n        position = 0.5  # 中性时中等仓位\n    else:\n        position = 0.2  # 悲观时低仓位\n    \n    print(f\"市场情绪: {sentiment['level']} ({score}分)\")\n    print(f\"建议仓位: {position*100}%\")\n    \n    return position\n\nif __name__ == '__main__':\n    adjust_position()\n```\n\n## 场景8: 历史数据回溯\n\n### 查询历史情绪\n\n```python\nimport sqlite3\nfrom datetime import datetime, timedelta\n\ndef query_history(days=7):\n    conn = sqlite3.connect('stock_cache.db')\n    cursor = conn.cursor()\n    \n    # 获取最近N天的数据\n    start_date = datetime.now() - timedelta(days=days)\n    \n    cursor.execute('''\n        SELECT date(update_time) as date, \n               AVG(change_pct) as avg_change,\n               COUNT(*) as total\n        FROM stocks\n        WHERE update_time >= ?\n        GROUP BY date(update_time)\n        ORDER BY date DESC\n    ''', (start_date,))\n    \n    results = cursor.fetchall()\n    conn.close()\n    \n    for date, avg_change, total in results:\n        print(f\"{date}: 平均涨幅 {avg_change:.2f}%, 有效数据 {total}条\")\n\nif __name__ == '__main__':\n    query_history(7)\n```\n\n## 更多示例\n\n查看 SKILL.md 了解更多配置选项和高级用法。\n\nFile v1.1.2:references/FINAL_SUMMARY.md\n\n# 🎉 A股监控系统 - 最终配置总结\n\n## ✅ 已完成的工作\n\n### 1. 数据源整合\n- ✅ **新浪财经**（优先）- 快速实时\n- ✅ **akshare**（备用）- 稳定可靠\n- ❌ **Tushare**（禁用）- 需积分\n\n### 2. 系统修复\n- ✅ 市场情绪数据：从8只 → 5748只\n- ✅ 监控个股价格：正常显示\n- ✅ 数据更新脚本：修复保存逻辑\n- ✅ Web服务：稳定运行\n\n### 3. 性能优化\n- ✅ 混合数据源（自动切换）\n- ✅ 批量保存（提高效率）\n- ✅ 智能缓存（减少请求）\n- ✅ 前端实时更新（每5秒）\n\n## 📊 当前系统状态\n\n### 数据状态\n```\n数据库总数: 5810 只\n有效数据: 5748 只 (98.9%)\n更新时间: 2026-02-24 10:55\n数据来源: akshare（稳定）\n```\n\n### 市场统计（实时）\n```\n上涨股票: 4234 只 (78%)\n下跌股票: 1179 只 (22%)\n平均涨幅: +1.39%\n涨停: 多只\n跌停: 少量\n```\n\n### 服务状态\n```\nWeb服务: ✅ 运行中（端口5000）\n数据更新: ✅ 每5分钟自动\n前端刷新: ✅ 每5秒轮询\n混合数据源: ✅ 已集成\n```\n\n## 🎯 核心功能\n\n### 1. 市场情绪评分\n- 基于5748只A股全市场数据\n- 7维度综合评分（0-100分）\n- 实时更新市场状态\n\n### 2. 监控个股\n- 13只监控股票\n- 实时价格更新\n- 涨跌幅排行榜\n\n### 3. 智能选股\n- 短线5策略\n- 中长线7策略\n- 多指标共振评分\n\n### 4. 实时推送\n- 交易时间每5秒更新\n- WebSocket模拟轮询\n- 非交易时间显示历史数据\n\n## 📁 重要文件\n\n### 核心代码\n```\nhybrid_data_source.py          # 混合数据源\nsmart_data_source.py           # 兼容层\nupdate_all_market_data.py      # 全市场更新（已修复）\nweb_app.py                     # Web服务\nconfig.py                      # 配置文件\n```\n\n### 选股引擎\n```\nshort_term_selector.py         # 短线选股\nlong_term_selector.py          # 中长线选股\nstrategy_config.py             # 策略配置\n```\n\n### 文档\n```\nDATA_SOURCE_FINAL.md           # 数据源说明（本方案）\nINTEGRATION_STATUS.md          # 集成状态\nFIX_SUMMARY.md                 # 修复记录\nHYBRID_DATA_SOURCE_GUIDE.md    # 使用指南\n```\n\n## ⚙️ Cron任务\n\n### 当前运行的任务\n```bash\n# A股全市场数据更新（交易时间每5分钟）\n任务: */5 9-15 * * 1-5\n状态: ✅ 运行中\n```\n\n### 查看任务\n```bash\nopenclaw cron list | grep \"A股\"\n```\n\n## 🌐 访问地址\n\n**Web界面**: http://localhost:5000\n\n**默认账号**:\n- 用户名: admin\n- 密码: admin123\n\n## 📈 性能指标\n\n### 数据更新速度\n- 全市场5810只: 1-2分钟\n- 单只股票: 1-3秒（新浪）或10-30秒（akshare）\n- 批量50只: 3-5秒（新浪）或30-60秒（akshare）\n\n### 系统资源\n- CPU: 低（数据获取时会升高）\n- 内存: ~50MB\n- 磁盘: SQLite数据库约10MB\n\n## 🔧 维护命令\n\n### 数据验证\n```bash\ncd /Users/jamemei/.openclaw/workspace/crypto_quant_sim/stock-monitor\npython3 fix_market_sentiment.py\n```\n\n### 手动更新数据\n```bash\npython3 update_all_market_data.py\n```\n\n### 重启Web服务\n```bash\npkill -f web_app.py\nnohup python3 web_app.py > web_app.log 2>&1 &\n```\n\n### 查看日志\n```bash\ntail -50 web_app.log\n```\n\n## 🐛 故障排查\n\n### 问题1: 首页数据不更新\n**检查**:\n```bash\npython3 fix_market_sentiment.py\n```\n**解决**: 运行 `python3 update_all_market_data.py`\n\n### 问题2: Web服务无响应\n**检查**:\n```bash\nps aux | grep web_app.py\n```\n**解决**: 重启Web服务\n\n### 问题3: 数据全为0\n**原因**: 非交易时间akshare无数据\n**解决**: 等待交易时间或使用历史数据\n\n## 🚀 技能包发布\n\n### ClawHub技能\n- **名称**: A股量化选股和监控系统\n- **版本**: 1.1.0\n- **Slug**: a-stock-monitor\n- **链接**: https://clawhub.ai/jame-mei-ltp/a-stock-monitor\n\n### 安装方式\n```bash\nclawhub install a-stock-monitor\n```\n\n## 📝 下一步优化建议\n\n### 可选优化（按优先级）\n1. ⭐⭐⭐ 监控页面美化\n2. ⭐⭐⭐ 添加更多监控股票\n3. ⭐⭐ 选股结果推送到飞书\n4. ⭐⭐ 历史数据回溯分析\n5. ⭐ K线图展示\n\n### 不推荐\n- ❌ Tushare（需积分）\n- ❌ 高频交易（数据源限制）\n- ❌ 实时WebSocket（第三方服务）\n\n## 🎊 完成状态\n\n✅ **数据源**: 新浪+akshare双保险  \n✅ **市场情绪**: 5748只A股全覆盖  \n✅ **监控个股**: 价格正常显示  \n✅ **自动更新**: Cron任务正常  \n✅ **Web界面**: 稳定运行  \n✅ **选股引擎**: 12种策略就绪  \n✅ **技能发布**: ClawHub已上线  \n\n---\n\n**系统版本**: v2.0  \n**最后更新**: 2026-02-24 11:05  \n**状态**: ✅ 生产就绪  \n**作者**: James Mei  \n**邮箱**: meijinmeng@126.com  \n**博客**: https://www.cnblogs.com/Jame-mei\n\nFile v1.1.2:references/FIX_SUMMARY.md\n\n# 首页数据问题修复总结\n\n## 🐛 发现的问题\n\n### 1. 市场情绪数据错误\n**问题**: 只显示13只监控股票，而不是全市场5000+只\n**原因**: \n- 数据库虽有5810个股票代码，但只有8只有实际价格数据\n- 原`update_all_market_data.py`调用了不存在的`save_stock()`方法\n- 导致所有5810只股票更新都失败（成功0只）\n\n### 2. 监控个股价格显示¥0.00\n**问题**: 个股卡片显示价格为0\n**原因**: \n- 混合数据源集成后，接口兼容性问题\n- SmartDataSource缺少`get_realtime_quote()`方法\n\n## 🔧 修复方案\n\n### 修复1: 更新全市场数据脚本\n\n创建了 `update_all_market_data_v2.py`:\n- ✅ 使用正确的`save_stocks()`批量方法\n- ✅ 只保存数据库支持的字段（去掉turnover/amplitude）\n- ✅ 过滤无效数据（price=None）\n- ✅ 批量保存提高性能\n\n### 修复2: SmartDataSource兼容层\n\n已添加:\n```python\ndef get_realtime_quote(self, code):\n    \"\"\"向后兼容\"\"\"\n    return self.get_realtime_price(code)\n\ndef is_trading_day(self):\n    \"\"\"向后兼容\"\"\"\n    return self.is_trading_time()\n```\n\n## 📊 当前状态\n\n### 数据更新状态\n- ⏳ 正在运行 `update_all_market_data_v2.py`\n- ⏱️ 预计完成时间: 1-2分钟（akshare速度）\n\n### Web服务状态\n- ✅ 运行中（端口5000）\n- ✅ 混合数据源已集成\n- ✅ 接口兼容性已修复\n\n## 🎯 验证步骤\n\n### 1. 等待数据更新完成\n查看输出：\n```\n✅ 数据更新完成!\n   总数: 5810 只\n   成功: XXXX 只\n   失败: YY 只\n```\n\n### 2. 验证数据库\n```bash\ncd /Users/jamemei/.openclaw/workspace/crypto_quant_sim/stock-monitor\npython3 fix_market_sentiment.py\n```\n\n应该看到：\n```\n有效数据: 5000+ 只  ✅\n```\n\n### 3. 刷新首页\n访问 `http://localhost:5000`\n\n应该看到：\n- **市场情绪**: 显示5000+只股票统计\n- **监控个股**: 显示正确价格和涨跌\n\n## 📝 文件清单\n\n### 已修复/创建的文件\n- ✅ `update_all_market_data_v2.py` - 修复版数据更新脚本\n- ✅ `smart_data_source_v2.py` - 兼容层（已集成到smart_data_source.py）\n- ✅ `fix_market_sentiment.py` - 数据验证脚本\n- ✅ `diagnose.py` - 诊断脚本\n- ✅ `FIX_SUMMARY.md` - 本文件\n\n### 备份文件\n- ✅ `smart_data_source.py.backup` - 原SmartDataSource备份\n\n## 🚀 后续优化建议\n\n### 1. 替换akshare为Tushare（推荐）\n**原因**: akshare太慢（1-2分钟才能更新5810只股票）\n\n**步骤**:\n1. 注册Tushare: https://tushare.pro/register\n2. 获取token: https://tushare.pro/user/token\n3. 配置: 编辑`config.py`，填入TUSHARE_TOKEN\n4. 重启服务\n\n**效果**: 更新时间从1-2分钟降到5-10秒！\n\n### 2. 添加数据库字段（可选）\n如需要换手率、振幅等字段：\n```sql\nALTER TABLE stocks ADD COLUMN turnover REAL;\nALTER TABLE stocks ADD COLUMN amplitude REAL;\n```\n\n### 3. 定时更新任务\n确保Cron任务正常：\n```bash\nopenclaw cron list | grep \"全市场\"\n```\n\n## ⚠️ 注意事项\n\n1. **非交易时间**: akshare返回数据可能为空或不完整\n2. **更新频率**: 建议交易时间每5-10分钟更新一次\n3. **性能**: 5810只股票更新需要1-2分钟（akshare限制）\n\n## 📞 问题排查\n\n如首页还是不正常：\n\n1. **检查数据**\n```bash\npython3 fix_market_sentiment.py\n```\n\n2. **查看日志**\n```bash\ntail -50 web_app.log\n```\n\n3. **浏览器Console**\n按F12查看JavaScript错误\n\n---\n\n**修复时间**: 2026-02-24 10:53  \n**状态**: 🔄 数据更新中...\n\nFile v1.1.2:references/INSTALL.md\n\n# A股监控系统 - 安装指南\n\n## 系统要求\n\n- Python 3.9+\n- pip3\n- OpenClaw Gateway (可选，用于自动化任务)\n\n## 安装步骤\n\n### 1. 安装Python依赖\n\n```bash\npip3 install akshare flask ccxt\n```\n\n### 2. 初始化数据库\n\n首次运行会自动创建SQLite数据库：\n\n```bash\ncd <skill-path>/scripts\npython3 stock_cache_db.py\n```\n\n### 3. 导入演示数据（可选）\n\n非交易时间可以先导入演示数据进行测试：\n\n```python\nimport sqlite3\nfrom datetime import datetime\n\ndemo_stocks = [\n    ('600900', '长江电力', 26.85, -0.52, 158900000, 4267850000),\n    ('601985', '中国核电', 9.32, -0.64, 256800000, 2393760000),\n    ('600905', '三峡能源', 8.45, -0.71, 442100000, 3735645000),\n]\n\nconn = sqlite3.connect('stock_cache.db')\ncursor = conn.cursor()\n\nfor code, name, price, change_pct, volume, amount in demo_stocks:\n    cursor.execute('''\n        UPDATE stocks \n        SET price = ?, change_pct = ?, volume = ?, amount = ?, update_time = ?\n        WHERE code = ?\n    ''', (price, change_pct, volume, amount, datetime.now(), code))\n\nconn.commit()\nconn.close()\n```\n\n### 4. 配置监控股票\n\n编辑 `web_app.py`：\n\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    '600905',  # 三峡能源\n    # 添加你想监控的股票代码\n]\n```\n\n### 5. 启动Web服务\n\n```bash\npython3 web_app.py\n```\n\n访问 `http://localhost:5000`\n\n### 6. 设置自动化任务（可选）\n\n使用OpenClaw Cron定时更新数据：\n\n```bash\nopenclaw cron add \\\n  --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'\n```\n\n## 验证安装\n\n### 测试数据获取\n\n```bash\npython3 update_all_market_data.py\n```\n\n应该看到：\n```\n🔄 开始获取全市场A股数据...\n✅ 获取成功: 5810 只股票\n💾 保存到数据库...\n✅ 数据更新完成!\n```\n\n### 测试市场情绪\n\n```bash\npython3 market_sentiment.py\n```\n\n应该看到JSON格式的情绪评分。\n\n### 测试交易时间判断\n\n```bash\npython3 is_trading_time.py\n```\n\n显示当前是否为交易时间。\n\n## 常见问题\n\n### Q: ModuleNotFoundError: No module named 'akshare'\nA: 运行 `pip3 install akshare`\n\n### Q: 端口5000被占用\nA: 修改 `web_app.py` 中的端口号：\n```python\nif __name__ == '__main__':\n    app.run(debug=True, host='0.0.0.0', port=5001)  # 改为5001\n```\n\n### Q: 数据全部显示为null\nA: 非交易时间akshare返回空数据，等待交易时间或导入演示数据\n\n### Q: Web界面一直转圈\nA: 数据库无有效数据，运行 `python3 update_all_market_data.py`\n\n## 卸载\n\n```bash\n# 删除技能目录\nrm -rf <skill-path>\n\n# 删除数据库（可选）\nrm <skill-path>/scripts/stock_cache.db\n\n# 删除Cron任务\nopenclaw cron list  # 找到任务ID\nopenclaw cron remove <job-id>\n```\n\n## 下一步\n\n- 查看 SKILL.md 了解详细使用方法\n- 查看 API.md 了解API接口文档\n- 查看 EXAMPLES.md 了解使用示例\n\nFile v1.1.2:references/SINA_TEST_REPORT.md\n\n# 新浪财经性能测试报告\n\n## 📊 测试结果\n\n### 测试环境\n- 时间: 2026-02-24 11:07\n- 状态: 交易时间 ✅\n- 测试对象: 新浪财经API\n\n### 性能指标\n\n#### 单个股票查询\n- 测试次数: 5次\n- 成功率: 60% (3/5)\n- 平均耗时: **0.101秒** ⚡\n- 最快: 0.085秒\n- 最慢: 0.117秒\n- 失败原因: 超时(2次)\n\n#### 批量查询(10只)\n- 结果: ❌ 超时失败\n- 超时时间: 5秒\n\n#### 批量查询(50只)\n- 结果: ❌ 超时失败\n- 超时时间: 5秒\n\n## 📈 性能对比\n\n| 数据源 | 单股速度 | 批量速度 | 稳定性 | 实时性 |\n|--------|---------|----------|--------|--------|\n| **新浪财经** | 0.1秒 ⚡ | 超时 ❌ | 60% ⚠️ | 实时 ✅ |\n| **akshare** | 1-1.5秒 | 正常 ✅ | 95% ✅ | 准实时 ✅ |\n\n## 🎯 结论\n\n### 优势\n- ✅ **速度极快**: 0.1秒（比akshare快10-15倍）\n- ✅ **真正实时**: 交易时间数据实时更新\n\n### 劣势\n- ❌ **不稳定**: 40%失败率（超时）\n- ❌ **批量失败**: 批量查询经常超时\n- ⚠️ **无数据时**: 盘后返回空数据\n\n## 🔧 优化策略\n\n### 最终方案：智能混合\n\n```\n交易时间（9:15-15:00）:\n  ├─ 尝试新浪财经（0.1秒，快）\n  └─ 失败 → akshare（1.5秒，稳）\n\n盘后时间:\n  └─ 直接使用akshare历史数据\n```\n\n### 实施细节\n\n1. **单股查询**\n   - 交易时间：新浪优先（3秒超时）\n   - 失败自动切换akshare\n   - 盘后：直接akshare\n\n2. **批量查询**\n   - 交易时间：尝试新浪批量（5秒超时）\n   - 失败则逐个akshare查询\n   - 盘后：直接akshare逐个查询\n\n3. **超时控制**\n   - 新浪单股：3秒超时\n   - 新浪批量：5秒超时\n   - akshare：30秒超时\n\n## 📊 预期效果\n\n### 交易时间性能\n- 成功时: 0.1秒（新浪）⚡\n- 失败时: 1.5秒（akshare切换）\n- 综合: 约0.7秒（60%新浪 + 40%akshare）\n\n### 盘后性能\n- 稳定: 1-1.5秒（akshare）\n- 数据完整性: 高\n\n### 系统稳定性\n- 新浪不可用时自动切换\n- 用户无感知\n- 数据不中断\n\n## 🎯 代码实现\n\n已更新 `hybrid_data_source.py`:\n\n```python\ndef get_realtime_price(self, code):\n    # 判断交易时间\n    if is_trading_time():\n        # 尝试新浪（快）\n        result = self._get_sina_realtime(code)\n        if result:\n            return result\n    \n    # 盘后或失败：使用akshare\n    return self._get_akshare_realtime(code)\n```\n\n## 🚀 实际表现预测\n\n### 场景1: 交易时间顺利\n```\n用户请求 → 新浪(0.1秒) → 返回 ✅\n总耗时: 0.1秒\n```\n\n### 场景2: 交易时间新浪超时\n```\n用户请求 → 新浪超时(3秒) → akshare(1.5秒) → 返回 ✅\n总耗时: 4.5秒\n```\n\n### 场景3: 盘后查询\n```\n用户请求 → akshare(1.5秒) → 返回 ✅\n总耗时: 1.5秒\n```\n\n## 📝 建议\n\n### 短期\n- ✅ 已实施智能混合策略\n- ✅ 交易时间优先新浪\n- ✅ 盘后使用akshare\n\n### 长期（可选）\n1. 监控新浪成功率\n2. 动态调整超时时间\n3. 添加更多数据源（东方财富、腾讯财经）\n\n## ⚠️ 注意事项\n\n1. **新浪限制**\n   - 可能被封IP（高频请求）\n   - 建议控制频率 < 1次/秒\n\n2. **超时处理**\n   - 新浪3秒超时（避免长时间等待）\n   - akshare 30秒超时（稳定获取）\n\n3. **缓存策略**\n   - 相同股票5秒内不重复请求\n   - 减轻服务器压力\n\n---\n\n**测试时间**: 2026-02-24 11:07  \n**结论**: 智能混合策略（交易时间新浪优先，盘后akshare）✅  \n**状态**: 已实施\n\nFile v1.1.2:references/STOCK_SELECTION.md\n\n# 智能选股引擎文档\n\n## 概述\n\nA股量化监控系统内置强大的智能选股引擎，支持短线和中长线两种选股模式，基于多指标共振评分体系，每日自动推荐优质股票。\n\n## 短线选股引擎\n\n### 适用场景\n- 持仓周期：1-5天\n- 适合：短线交易者、日内波段操作\n- 风险等级：中高风险\n- 预期收益：5-15%\n\n### 5大短线策略\n\n#### 1. RSI短线策略\n**持仓周期**: 1-3天  \n**核心逻辑**: 超短线RSI策略，适合T+0或快速进出\n\n**参数**:\n- RSI周期: 6\n- 超卖阈值: 25\n- 超买阈值: 75\n\n**信号**:\n- 买入: RSI < 25 且开始回升\n- 卖出: RSI > 75 或止盈/止损\n\n#### 2. MACD短线策略\n**持仓周期**: 2-5天  \n**核心逻辑**: MACD金叉死叉，短期趋势跟踪\n\n**参数**:\n- 快线: 8\n- 慢线: 17\n- 信号线: 9\n\n**信号**:\n- 买入: MACD金叉\n- 卖出: MACD死叉\n\n#### 3. KDJ短线策略\n**持仓周期**: 1-3天  \n**核心逻辑**: KDJ超买超卖，适合日内波段\n\n**参数**:\n- N值: 9\n- 超卖: 20\n- 超买: 80\n\n**信号**:\n- 买入: KDJ < 20 且K线上穿D线\n- 卖出: KDJ > 80 或K线下穿D线\n\n#### 4. 布林突破策略\n**持仓周期**: 1-5天  \n**核心逻辑**: 布林带突破，捕捉短期波动\n\n**参数**:\n- 周期: 10\n- 标准差: 1.5\n\n**信号**:\n- 买入: 突破下轨后回归\n- 卖出: 触及上轨或中轨\n\n#### 5. 放量突破策略\n**持仓周期**: 1-3天  \n**核心逻辑**: 量价齐升，短期强势股\n\n**参数**:\n- 放量倍数: 2.0\n- 涨幅阈值: 3%\n\n**信号**:\n- 买入: 放量 > 2倍 且 涨幅 > 3%\n- 卖出: 缩量或止盈/止损\n\n### 短线评分体系\n\n**满分100分，推荐阈值75分以上**\n\n| 指标 | 权重 | 说明 |\n|------|------|------|\n| RSI信号 | 20分 | 超卖/超买状态 |\n| KDJ信号 | 20分 | 随机指标 |\n| MACD信号 | 15分 | 趋势确认 |\n| 布林带信号 | 15分 | 波动率突破 |\n| 量价异动 | 15分 | 成交量放大 |\n| 资金流向 | 15分 | 主力资金净流入 |\n\n### 短线买卖点\n\n**买入价**: 当前价 × (1 + 0.5%)  \n**止损价**: 买入价 - 2 × ATR  \n**止盈价**: 买入价 + 4 × ATR\n\n**预期收益率**: (止盈价 - 买入价) / 买入价  \n**风险收益比**: (止盈价 - 买入价) / (买入价 - 止损价)\n\n### 使用方法\n\n```bash\n# 运行短线选股\npython3 scripts/short_term_selector.py\n```\n\n**输出示例**:\n```\n========================================\n短线选股引擎 - 2026-02-24\n========================================\n\n推荐股票: 3 只\n\n1. 长江电力 (600900) - 评分: 85.5\n   当前价: ¥26.85\n   买入价: ¥27.00 (现价+0.5%)\n   止损价: ¥25.80 (2ATR)\n   止盈价: ¥29.40 (4ATR)\n   预期收益: +8.9%\n   风险收益比: 2.0\n   \n   强项指标:\n   ✓ RSI(28.5) 超卖后回升 [20分]\n   ✓ KDJ金叉 K(32)>D(28) [18分]\n   ✓ MACD柱状图转正 [14分]\n   ✓ 放量1.8倍 [12分]\n   \n   策略: RSI短线 + 放量突破\n   持仓周期: 1-3天\n```\n\n## 中长线选股引擎\n\n### 适用场景\n- 持仓周期：20-180天\n- 适合：价值投资者、趋势跟踪者\n- 风险等级：中低风险\n- 预期收益：15-50%\n\n### 7大中长线策略\n\n#### 1. MA趋势策略\n**持仓周期**: 20-60天  \n**核心逻辑**: 均线多头排列，趋势跟踪\n\n**参数**:\n- 短期均线: MA20\n- 长期均线: MA60\n- 趋势过滤: MA120\n\n**信号**:\n- 买入: MA20 > MA60 > MA120（多头排列）\n- 卖出: MA20下穿MA60\n\n#### 2. MACD趋势策略\n**持仓周期**: 15-30天  \n**核心逻辑**: MACD趋势确认，中期持有\n\n**参数**:\n- 快线: 12\n- 慢线: 26\n- 信号线: 9\n- 最少持仓: 15天\n\n**信号**:\n- 买入: MACD金叉 且 柱状图连续放大\n- 卖出: MACD死叉 或 到达止盈\n\n#### 3. 价值成长策略\n**持仓周期**: 60-180天  \n**核心逻辑**: 长期价值投资，价值+成长双重验证\n\n**参数**:\n- RSI阈值: 40（回调买入）\n- MA过滤: MA200\n- 最少持仓: 30天\n\n**信号**:\n- 买入: 价格回调至MA60 且 RSI < 40\n- 卖出: 严重超买或基本面恶化\n\n#### 4. 突破回踩策略\n**持仓周期**: 10-30天  \n**核心逻辑**: 突破后回踩买入，确认突破有效性\n\n**参数**:\n- 突破幅度: 3%\n- 回踩幅度: 2%\n- 最少持仓: 10天\n\n**信号**:\n- 买入: 突破新高后回踩MA20支撑\n- 卖出: 跌破MA20或止盈\n\n#### 5. 底部反转策略\n**持仓周期**: 15-30天  \n**核心逻辑**: RSI+MACD双确认，捕捉底部反转\n\n**参数**:\n- RSI阈值: 30\n- MACD: 金叉确认\n\n**信号**:\n- 买入: RSI < 30 且 MACD金叉\n- 卖出: RSI > 70 或止盈\n\n#### 6. 趋势加速策略\n**持仓周期**: 10-20天  \n**核心逻辑**: 均线多头+放量，趋势加速上涨\n\n**参数**:\n- 均线: MA5 > MA10 > MA20\n- 放量: 1.5倍\n\n**信号**:\n- 买入: 多头排列 + 放量突破\n- 卖出: 缩量或破位\n\n#### 7. 强势股回调策略\n**持仓周期**: 5-15天  \n**核心逻辑**: 强势股回调低吸，追涨强势股\n\n**参数**:\n- 近期涨幅: > 20%\n- 回调幅度: 5-10%\n\n**信号**:\n- 买入: 回调至MA10支撑\n- 卖出: 反弹至前高或止损\n\n### 中长线评分体系\n\n**满分100分，推荐阈值70分以上**\n\n| 维度 | 权重 | 子指标 |\n|------|------|--------|\n| 技术指标 | 40% | MA趋势、MACD、RSI、KDJ |\n| 资金流向 | 30% | 主力资金、北向资金 |\n| 市场热度 | 15% | 换手率、振幅 |\n| 风险评估 | 15% | 波动率、最大回撤 |\n\n### 中长线持仓建议\n\n根据综合评分给出持仓建议：\n\n| 评分 | 建议仓位 | 风险等级 |\n|------|----------|----------|\n| 90-100 | 80-100% | 低风险 |\n| 80-89 | 60-80% | 中低风险 |\n| 70-79 | 40-60% | 中等风险 |\n| 60-69 | 20-40% | 中高风险 |\n| < 60 | 不推荐 | 高风险 |\n\n### 使用方法\n\n```bash\n# 运行中长线选股\npython3 scripts/long_term_selector.py\n\n# 运行增强版（包含更多维度）\npython3 scripts/enhanced_long_term_selector.py\n```\n\n**输出示例**:\n```\n========================================\n中长线选股引擎 - 2026-02-24\n========================================\n\n推荐股票: 8 只\n\n1. 中国核电 (601985) - 评分: 88.5\n   当前价: ¥9.32\n   目标价: ¥11.50 (+23.4%)\n   止损价: ¥8.80 (-5.6%)\n   建议仓位: 70%\n   风险等级: 中低风险\n   持仓周期: 30-60天\n   \n   优势:\n   ✓ MA20/MA60/MA120多头排列 [35分]\n   ✓ MACD金叉且柱状图放大 [32分]\n   ✓ 主力资金连续3日净流入 [28分]\n   ✓ 波动率低，稳健上涨 [13分]\n   \n   策略: MA趋势 + MACD趋势\n   适合: 稳健型投资者\n```\n\n## 自动化选股\n\n### 设置每日选股任务\n\n```bash\n# 每日9:30短线选股\nopenclaw cron add \\\n  --name \"每日短线选股\" \\\n  --schedule \"30 9 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 short_term_selector.py\"}'\n\n# 每日9:30中长线选股\nopenclaw cron add \\\n  --name \"每日中长线选股\" \\\n  --schedule \"30 9 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 long_term_selector.py\"}'\n```\n\n## 配置说明\n\n### 自定义股票池\n\n创建 `watchlist.json`：\n\n```json\n[\n  \"600900\",\n  \"601985\",\n  \"600905\",\n  \"000858\",\n  \"600519\"\n]\n```\n\n### 策略参数调整\n\n编辑 `strategy_config.py` 修改策略参数：\n\n```python\nSHORT_TERM_STRATEGIES = {\n    'rsi_short': {\n        'params': {\n            'rsi_period': 6,      # 调整RSI周期\n            'oversold': 25,       # 调整超卖阈值\n        }\n    }\n}\n```\n\n## 风险提示\n\n1. **短线风险**：波动大，需要严格止损\n2. **中长线风险**：持仓周期长，需要耐心\n3. **策略失效**：市场环境变化可能导致策略失效\n4. **仅供参考**：选股结果仅供参考，不构成投资建议\n\n## 最佳实践\n\n1. **组合投资**：短线+中长线组合，分散风险\n2. **严格止损**：遵守系统给出的止损价\n3. **分批建仓**：不要一次性重仓\n4. **跟踪调整**：定期复盘，调整策略参数\n5. **控制仓位**：根据评分控制仓位大小\n\n## 常见问题\n\n### Q: 为什么过滤创业板和科创板？\nA: 创业板和科创板波动较大，风险较高，不适合通用策略。\n\n### Q: 评分多少才值得买入？\nA: 短线建议75分以上，中长线建议70分以上。\n\n### Q: 如何调整策略参数？\nA: 编辑 `strategy_config.py`，根据回测结果优化参数。\n\n### Q: 可以同时运行多个策略吗？\nA: 可以，系统支持多策略组合，会去重推荐。\n\nFile v1.1.2:CHANGELOG.md\n\n# Changelog\n\n## v1.1.2 (2026-02-24)\n\n### 🔧 Bug Fixes\n- 修复全市场数据更新失败问题（save_stock → save_stocks）\n- 修复选股功能报错（添加close()兼容方法）\n- 修复市场情绪只显示监控股票的问题\n\n### ⚡ Performance\n- 实施智能数据源切换（新浪+akshare）\n- 交易时间优先新浪财经（0.1秒，快15倍）\n- 盘后自动切换akshare历史数据（稳定）\n- 全市场数据完整性提升到98.9%（5748/5810只）\n\n### ✨ Enhancements\n- 新浪财经+akshare双数据源架构\n- 自动判断交易时间智能切换\n- 超时保护和自动降级机制\n- 数据缓存优化（30分钟有效期）\n\n### 📊 Data Quality\n- 市场情绪现基于5748只A股（之前仅8只）\n- 数据更新成功率从0%提升到98.9%\n- 实时价格更新速度提升6-10倍（交易时间）\n\n### 🎯 System Stability\n- 完整测试短线和中长线选股功能\n- Web服务稳定性提升\n- 错误处理和日志优化\n\n### 📝 Documentation\n- 新增 `SINA_TEST_REPORT.md` - 新浪性能测试\n- 新增 `DATA_SOURCE_FINAL.md` - 数据源方案\n- 新增 `FIX_SUMMARY.md` - 问题修复记录\n- 新增 `FINAL_SUMMARY.md` - 系统完整说明\n\n---\n\n## v1.1.0 (2026-02-24)\n\n### ✨ New Features\n- 短线选股引擎（5策略）\n- 中长线选股引擎（7策略）\n- 多指标共振评分系统\n\n---\n\n## v1.0.2 (2026-02-24)\n\n### Initial Release\n- 市场情绪评分系统\n- Web可视化界面\n- 基础监控功能\n\nArchive v1.1.0: 18 files, 56714 bytes\n\nFiles: references/API.md (5012b), references/EXAMPLES.md (6480b), references/INSTALL.md (3064b), references/STOCK_SELECTION.md (8444b), scripts/enhanced_long_term_selector.py (14102b), scripts/is_trading_time.py (1452b), scripts/long_term_selector.py (15400b), scripts/market_sentiment.py (10566b), scripts/short_term_selector.py (21388b), scripts/smart_market_updater.py (1263b), scripts/stock_async_fetcher.py (7970b), scripts/stock_cache_db.py (10311b), scripts/strategy_config.py (9211b), scripts/templates/index.html (31453b), scripts/update_all_market_data.py (2543b), scripts/web_app.py (29996b), SKILL.md (8774b), _meta.json (134b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: a-stock-monitor\ndescription: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化交易、技术分析、选股决策。\nauthor: James Mei\ncontact:\n  email: meijinmeng@126.com\n  blog: https://www.cnblogs.com/Jame-mei\nmetadata:\n  openclaw:\n    requires:\n      bins: [\"python3\"]\n      packages: [\"akshare\", \"flask\", \"ccxt\"]\n---\n\n# A股实时监控系统\n\n一个完整的A股实时监控与市场情绪分析系统。\n\n**作者**: James Mei  \n**邮箱**: meijinmeng@126.com  \n**博客**: https://www.cnblogs.com/Jame-mei  \n**版本**: 1.0.2  \n**许可证**: MIT\n\n## 核心功能\n\n### 1. 市场情绪评分 (7维度)\n基于全市场5000+只A股的综合情绪评分（0-100分）：\n- 涨跌家数比 (20%)\n- 平均涨幅 (20%)\n- 涨停/跌停比 (15%)\n- 强势股占比 (15%)\n- 成交活跃度 (10%)\n- 波动率 (10%)\n- 趋势强度 (10%)\n\n### 2. 智能选股引擎\n\n#### 短线选股 (1-5天)\n**5大策略**，每日推荐3-5只短线机会股：\n- **RSI短线** - 超短线RSI策略，适合T+0或快速进出\n- **MACD短线** - MACD金叉死叉，短期趋势跟踪\n- **KDJ短线** - KDJ超买超卖，适合日内波段\n- **布林突破** - 布林带突破，捕捉短期波动\n- **放量突破** - 量价齐升，短期强势股\n\n**多指标共振评分体系** (满分100分)：\n- RSI信号 (20分)\n- KDJ信号 (20分)\n- MACD信号 (15分)\n- 布林带信号 (15分)\n- 量价异动 (15分)\n- 资金流向 (15分)\n\n**精确买卖点**：\n- 动态止损止盈（基于ATR）\n- 买入价、止损价、止盈价自动计算\n- 预期收益率、风险收益比\n\n#### 中长线选股 (20-180天)\n**7大策略**，每日推荐5-10只优质股票：\n- **MA趋势** - 均线多头排列，趋势跟踪 (20-60天)\n- **MACD趋势** - MACD趋势确认，中期持有 (15-30天)\n- **价值成长** - 长期价值投资 (60-180天)\n- **突破回踩** - 突破后回踩买入 (10-30天)\n- **底部反转** - RSI+MACD双确认 (15-30天)\n- **趋势加速** - 均线多头+放量 (10-20天)\n- **强势股回调** - 强势股回调低吸 (5-15天)\n\n**综合评分维度**：\n- 技术指标 (40%) - MA/MACD/RSI/KDJ等\n- 资金流向 (30%) - 主力资金净流入\n- 市场热度 (15%) - 换手率、振幅\n- 风险评估 (15%) - 波动率、回撤\n\n**持仓建议**：\n- 建议仓位（根据评分）\n- 预期收益率\n- 风险等级\n- 持仓周期\n\n#### 选股配置\n- 自动过滤创业板(3开头)和科创板(688开头)\n- 支持自定义监控股票池（watchlist.json）\n- 每日自动推荐，飞书/企业微信告警\n\n### 3. 实时价格监控\n- 交易时间：每5秒更新价格\n- 非交易时间：显示历史数据\n- 自动判断交易时段（9:15-11:30, 13:00-15:00）\n\n### 4. 涨跌幅排行榜\n- 实时涨幅榜（Top 5）\n- 实时跌幅榜（Top 5）\n- 支持点击查看详情\n\n### 5. Web可视化界面\n- 市场情绪仪表盘\n- 监控股票卡片展示\n- 统计数据汇总\n- 响应式设计\n\n## 使用方式\n\n### 快速开始\n\n1. **安装依赖**\n```bash\npip3 install akshare flask ccxt\n```\n\n2. **配置监控股票**\n编辑 `web_app.py`，修改 `WATCHED_STOCKS` 列表：\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    # 添加更多股票代码...\n]\n```\n\n3. **启动Web服务**\n```bash\ncd scripts/\npython3 web_app.py\n```\n访问 `http://localhost:5000`\n\n### 自动化运行\n\n**设置Cron任务**（交易时间每5分钟更新）：\n```bash\nopenclaw cron add --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'\n```\n\n替换 `<skill-path>` 为技能安装路径。\n\n### 手动执行\n\n```bash\n# 更新全市场数据\npython3 scripts/update_all_market_data.py\n\n# 计算市场情绪\npython3 scripts/market_sentiment.py\n\n# 智能更新（仅交易时间）\npython3 scripts/smart_market_updater.py\n\n# 检查交易时间\npython3 scripts/is_trading_time.py\n\n# 短线选股（每日推荐3-5只）\npython3 scripts/short_term_selector.py\n\n# 中长线选股（每日推荐5-10只）\npython3 scripts/long_term_selector.py\n\n# 增强版中长线选股\npython3 scripts/enhanced_long_term_selector.py\n```\n\n## 目录结构\n\n```\nscripts/\n├── web_app.py                      # Flask Web服务\n├── stock_cache_db.py               # SQLite数据缓存\n├── stock_async_fetcher.py          # 异步数据获取\n├── market_sentiment.py             # 市场情绪计算\n├── is_trading_time.py              # 交易时间判断\n├── smart_market_updater.py         # 智能更新器\n├── update_all_market_data.py       # 全市场数据更新\n├── short_term_selector.py          # 短线选股引擎\n├── long_term_selector.py           # 中长线选股引擎\n├── enhanced_long_term_selector.py  # 增强版中长线选股\n├── strategy_config.py              # 策略配置文件\n└── templates/\n    └── index.html                  # Web前端页面\n```\n\n## API端点\n\n### GET /api/market/sentiment\n返回全市场情绪评分\n\n**响应示例**:\n```json\n{\n  \"score\": 57,\n  \"level\": \"偏乐观\",\n  \"emoji\": \"🟢\",\n  \"description\": \"市场偏强，情绪稳定\",\n  \"stats\": {\n    \"total\": 5000,\n    \"gainers\": 2460,\n    \"losers\": 2534,\n    \"limit_up\": 15,\n    \"limit_down\": 3\n  }\n}\n```\n\n### GET /api/stocks\n返回所有监控股票数据\n\n### GET /api/stocks/realtime\n返回监控股票实时价格（轻量级）\n\n### GET /api/stock/<code>\n返回单只股票详情\n\n## 配置说明\n\n### 交易时间配置\n默认交易时间：周一至周五 9:15-15:00\n\n修改 `is_trading_time.py`：\n```python\nTRADING_HOURS = {\n    'morning': (9, 15, 11, 30),    # 9:15-11:30\n    'afternoon': (13, 0, 15, 0),   # 13:00-15:00\n}\n```\n\n### 数据缓存配置\nSQLite数据库：`stock_cache.db`\n默认缓存时间：30分钟\n\n修改 `stock_cache_db.py`：\n```python\nMAX_AGE_MINUTES = 30  # 缓存有效期\n```\n\n### 监控股票配置\n编辑 `web_app.py` 中的 `WATCHED_STOCKS` 列表\n\n### 市场情绪阈值\n修改 `market_sentiment.py`：\n```python\n# 情绪等级阈值\nLEVELS = [\n    (80, 100, '极度乐观', '🔴'),\n    (65, 79, '乐观', '🟠'),\n    (55, 64, '偏乐观', '🟢'),\n    # ...\n]\n```\n\n## 数据来源\n\n- **akshare**: 获取A股实时行情、全市场数据\n- **本地缓存**: SQLite数据库存储历史数据\n\n## 性能优化\n\n1. **分级更新**\n   - 实时价格: 5秒（仅价格+涨跌）\n   - 完整数据: 30秒（含技术指标）\n   - 后端更新: 5分钟（全市场数据）\n\n2. **智能缓存**\n   - 交易时间: 5分钟缓存\n   - 非交易时间: 显示历史数据\n\n3. **异步获取**\n   - 使用异步方式获取全市场数据\n   - 避免阻塞主线程\n\n## 故障排查\n\n### 问题1: 数据全为null\n**原因**: 非交易时间，akshare返回空数据\n**解决**: 等待交易时间，或导入演示数据\n\n### 问题2: Web界面一直转圈\n**原因**: 数据库无有效数据\n**解决**: 运行 `python3 update_all_market_data.py`\n\n### 问题3: Cron任务不执行\n**原因**: 时区配置错误\n**解决**: 确保时区设置为 `Asia/Shanghai`\n\n### 问题4: 端口被占用\n**原因**: Flask默认端口5000冲突\n**解决**: 修改 `web_app.py` 中的端口号\n\n## 扩展开发\n\n### 添加新的监控指标\n编辑 `market_sentiment.py`，添加新的评分维度：\n\n```python\ndef calculate_sentiment(stocks):\n    # 添加新维度\n    new_dimension_score = calculate_new_dimension(stocks)\n    \n    # 调整权重\n    score = (\n        gain_ratio_score * 0.18 +      # 降低原有权重\n        # ...\n        new_dimension_score * 0.10      # 新维度10%\n    )\n```\n\n### 自定义告警规则\n创建新的告警脚本：\n\n```python\ndef check_custom_alert():\n    cache = StockCache()\n    stocks = cache.get_all_stocks()\n    \n    # 自定义告警逻辑\n    alerts = []\n    for stock in stocks:\n        if stock['change_pct'] > 5:\n            alerts.append(stock)\n    \n    if alerts:\n        send_alert(alerts)\n```\n\n## 技术栈\n\n- **后端**: Python 3.9+, Flask\n- **数据**: akshare, SQLite\n- **前端**: jQuery, Bootstrap\n- **自动化**: OpenClaw Cron\n\n## 许可证\n\nMIT License\n\n## 联系作者\n\n- **邮箱**: meijinmeng@126.com\n- **博客**: https://www.cnblogs.com/Jame-mei\n\n欢迎反馈问题、建议和改进意见！\n\n## 致谢\n\n- akshare 提供A股数据接口\n- OpenClaw 提供自动化调度能力\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cv05f00kdbz76tfrgzjjcrs80vm51\",\n  \"slug\": \"a-stock-monitor\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1771896872846\n}\n\nFile v1.1.0:references/API.md\n\n# API文档\n\n## 基础信息\n\n- **基础URL**: `http://localhost:5000/api`\n- **响应格式**: JSON\n- **认证**: 需要登录（默认密码：stock2024）\n\n## 端点列表\n\n### 1. 市场情绪 - GET /api/market/sentiment\n\n获取全市场5000+只股票的综合情绪评分。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/market/sentiment\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"score\": 57,\n  \"level\": \"偏乐观\",\n  \"emoji\": \"🟢\",\n  \"description\": \"市场偏强，情绪稳定 · 涨停15只 跌停3只 · 强势股108只 弱势股104只 · 平均换手4.22% 波动率3.95%\",\n  \"stats\": {\n    \"total\": 5000,\n    \"gainers\": 2460,\n    \"losers\": 2534,\n    \"limit_up\": 15,\n    \"limit_down\": 3,\n    \"strong_stocks\": 108,\n    \"weak_stocks\": 104,\n    \"avg_change\": 0.35,\n    \"avg_turnover\": 4.22,\n    \"avg_volatility\": 3.95\n  },\n  \"is_historical\": false,\n  \"data_time\": \"2026-02-24 14:55:00\",\n  \"demo_mode\": false\n}\n```\n\n**字段说明**:\n- `score`: 情绪评分 (0-100)\n- `level`: 情绪等级 (极度悲观/悲观/偏悲观/中性/偏乐观/乐观/极度乐观)\n- `emoji`: 情绪表情\n- `is_historical`: 是否为历史数据\n- `demo_mode`: 是否为演示模式\n\n### 2. 监控股票列表 - GET /api/stocks\n\n获取所有监控股票的完整数据（含技术指标、资金流）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"volume\": 158900000,\n      \"amount\": 4267850000,\n      \"update_time\": \"2026-02-24 14:55:00\",\n      \"fund_flow\": {\n        \"main_in\": -128500000,\n        \"super_in\": -85200000,\n        \"big_in\": -43300000,\n        \"mid_in\": 45600000,\n        \"small_in\": 82900000\n      },\n      \"tech_indicators\": {\n        \"rsi\": 45.2,\n        \"macd\": -0.15,\n        \"kdj_k\": 38.5,\n        \"kdj_d\": 42.1\n      }\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n### 3. 实时价格 - GET /api/stocks/realtime\n\n获取监控股票的实时价格（轻量级，仅价格和涨跌）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks/realtime\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"update_time\": \"2026-02-24 14:55:00\"\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n**使用场景**: 前端实时轮询（每5秒）\n\n### 4. 股票详情 - GET /api/stock/<code>\n\n获取单只股票的详细信息。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stock/600900\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"code\": \"600900\",\n    \"name\": \"长江电力\",\n    \"price\": 26.85,\n    \"change_pct\": -0.52,\n    \"volume\": 158900000,\n    \"amount\": 4267850000,\n    \"turnover\": 1.25,\n    \"amplitude\": 2.18,\n    \"update_time\": \"2026-02-24 14:55:00\",\n    \"fund_flow\": {...},\n    \"tech_indicators\": {...}\n  }\n}\n```\n\n### 5. 市场总览 - GET /api/market/overview (已废弃)\n\n该端点已被移除，请使用 `/api/market/sentiment` 替代。\n\n## 错误码\n\n| 状态码 | 说明 |\n|--------|------|\n| 200 | 成功 |\n| 401 | 未授权（需要登录） |\n| 404 | 资源不存在 |\n| 500 | 服务器错误 |\n\n## 数据更新频率\n\n| 端点 | 缓存时间 | 更新频率 |\n|------|----------|----------|\n| /api/market/sentiment | 30分钟 | 交易时间每5分钟 |\n| /api/stocks | 实时 | 每次请求 |\n| /api/stocks/realtime | 实时 | 每次请求 |\n| /api/stock/<code> | 实时 | 每次请求 |\n\n## 前端集成示例\n\n### jQuery轮询\n\n```javascript\n// 每5秒更新实时价格\nsetInterval(function() {\n    $.ajax({\n        url: '/api/stocks/realtime',\n        method: 'GET',\n        success: function(response) {\n            if (response.status === 'success') {\n                updatePrices(response.data);\n            }\n        }\n    });\n}, 5000);\n```\n\n### 市场情绪展示\n\n```javascript\n$.ajax({\n    url: '/api/market/sentiment',\n    method: 'GET',\n    success: function(data) {\n        $('#sentimentScore').text(data.score);\n        $('#sentimentLevel').text(data.level);\n        $('#sentimentEmoji').text(data.emoji);\n    }\n});\n```\n\n## Python客户端示例\n\n```python\nimport requests\n\n# 获取市场情绪\nresponse = requests.get('http://localhost:5000/api/market/sentiment')\nsentiment = response.json()\nprint(f\"市场情绪: {sentiment['level']} ({sentiment['score']}分)\")\n\n# 获取监控股票\nresponse = requests.get('http://localhost:5000/api/stocks')\nstocks = response.json()['data']\nfor stock in stocks:\n    print(f\"{stock['name']}: {stock['price']} ({stock['change_pct']:+.2f}%)\")\n```\n\n## 认证\n\n默认密码：`stock2024`\n\n修改密码：编辑 `web_app.py`\n```python\nPASSWORD = \"your_new_password\"\n```\n\n## 跨域配置（CORS）\n\n如需跨域访问，添加CORS支持：\n\n```python\nfrom flask_cors import CORS\n\napp = Flask(__name__)\nCORS(app)\n```\n\nFile v1.1.0:references/EXAMPLES.md\n\n# 使用示例\n\n## 场景1: 快速监控个人持仓\n\n### 配置监控股票\n\n编辑 `web_app.py`：\n\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    '000858',  # 五粮液\n    '600519',  # 贵州茅台\n]\n```\n\n### 启动监控\n\n```bash\npython3 web_app.py\n```\n\n访问 `http://localhost:5000`，即可看到实时价格、涨跌幅排行。\n\n## 场景2: 自动化交易时段监控\n\n### 设置Cron任务\n\n```bash\nopenclaw cron add \\\n  --name \"A股数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd ~/.openclaw/skills/a-stock-monitor/scripts && python3 smart_market_updater.py\"}'\n```\n\n系统会在交易时间自动更新数据，非交易时间自动跳过。\n\n## 场景3: 市场情绪追踪\n\n### 获取情绪评分\n\n```python\nimport requests\n\nresponse = requests.get('http://localhost:5000/api/market/sentiment')\ndata = response.json()\n\nprint(f\"市场情绪: {data['level']} {data['emoji']}\")\nprint(f\"评分: {data['score']}/100\")\nprint(f\"涨停: {data['stats']['limit_up']}只\")\nprint(f\"跌停: {data['stats']['limit_down']}只\")\nprint(f\"上涨: {data['stats']['gainers']}只\")\nprint(f\"下跌: {data['stats']['losers']}只\")\n```\n\n### 输出示例\n\n```\n市场情绪: 偏乐观 🟢\n评分: 57/100\n涨停: 15只\n跌停: 3只\n上涨: 2460只\n下跌: 2534只\n```\n\n## 场景4: 结合OpenClaw创建智能告警\n\n### 创建告警脚本\n\n创建 `custom_alert.py`：\n\n```python\nimport requests\nimport subprocess\n\ndef check_alert():\n    # 获取监控股票\n    response = requests.get('http://localhost:5000/api/stocks')\n    stocks = response.json()['data']\n    \n    alerts = []\n    for stock in stocks:\n        # 涨跌超过5%告警\n        if abs(stock['change_pct']) > 5:\n            alerts.append(f\"{stock['name']} ({stock['code']}): {stock['change_pct']:+.2f}%\")\n    \n    if alerts:\n        message = \"🚨 股票异动告警\\n\\n\" + \"\\n\".join(alerts)\n        # 发送到飞书\n        webhook = \"https://open.larksuite.com/open-apis/bot/v2/hook/YOUR_WEBHOOK\"\n        subprocess.run(['curl', '-X', 'POST', webhook, \n                       '-H', 'Content-Type: application/json',\n                       '-d', f'{{\"msg_type\":\"text\",\"content\":{{\"text\":\"{message}\"}}}}'])\n\nif __name__ == '__main__':\n    check_alert()\n```\n\n### 设置告警任务\n\n```bash\nopenclaw cron add \\\n  --name \"股票异动告警\" \\\n  --schedule \"*/15 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"python3 /path/to/custom_alert.py\"}'\n```\n\n## 场景5: 导出每日数据报告\n\n### 创建报告脚本\n\n创建 `daily_report.py`：\n\n```python\nimport requests\nfrom datetime import datetime\n\ndef generate_report():\n    # 获取市场情绪\n    sentiment = requests.get('http://localhost:5000/api/market/sentiment').json()\n    \n    # 获取监控股票\n    stocks = requests.get('http://localhost:5000/api/stocks').json()['data']\n    \n    # 生成报告\n    report = f\"\"\"\n# A股监控日报 - {datetime.now().strftime('%Y-%m-%d')}\n\n## 市场情绪\n- 评分: {sentiment['score']}/100\n- 等级: {sentiment['level']} {sentiment['emoji']}\n- 涨停: {sentiment['stats']['limit_up']}只\n- 跌停: {sentiment['stats']['limit_down']}只\n\n## 持仓情况\n\"\"\"\n    \n    for stock in sorted(stocks, key=lambda x: x['change_pct'], reverse=True):\n        report += f\"- {stock['name']} ({stock['code']}): ¥{stock['price']} ({stock['change_pct']:+.2f}%)\\n\"\n    \n    # 保存报告\n    filename = f\"report_{datetime.now().strftime('%Y%m%d')}.md\"\n    with open(filename, 'w') as f:\n        f.write(report)\n    \n    print(f\"✅ 报告已生成: {filename}\")\n\nif __name__ == '__main__':\n    generate_report()\n```\n\n### 定时生成报告\n\n```bash\nopenclaw cron add \\\n  --name \"每日股市报告\" \\\n  --schedule \"0 15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"python3 /path/to/daily_report.py\"}'\n```\n\n每天收盘后自动生成报告。\n\n## 场景6: 多账户监控（分组管理）\n\n### 创建多配置文件\n\n`config_account1.py`:\n```python\nWATCHED_STOCKS = ['600900', '601985', '600905']  # 账户1持仓\n```\n\n`config_account2.py`:\n```python\nWATCHED_STOCKS = ['000858', '600519', '000333']  # 账户2持仓\n```\n\n### 启动多个监控实例\n\n```bash\n# 账户1 - 端口5001\nPORT=5001 CONFIG=config_account1.py python3 web_app.py &\n\n# 账户2 - 端口5002\nPORT=5002 CONFIG=config_account2.py python3 web_app.py &\n```\n\n修改 `web_app.py` 支持环境变量：\n\n```python\nimport os\nimport importlib\n\n# 读取配置\nconfig_file = os.getenv('CONFIG', 'config')\nconfig = importlib.import_module(config_file.replace('.py', ''))\nWATCHED_STOCKS = config.WATCHED_STOCKS\n\n# 读取端口\nport = int(os.getenv('PORT', 5000))\n\nif __name__ == '__main__':\n    app.run(debug=True, host='0.0.0.0', port=port)\n```\n\n## 场景7: 集成到交易策略\n\n### 根据市场情绪调整仓位\n\n```python\nimport requests\n\ndef adjust_position():\n    # 获取市场情绪\n    sentiment = requests.get('http://localhost:5000/api/market/sentiment').json()\n    score = sentiment['score']\n    \n    # 根据情绪调整仓位\n    if score >= 70:\n        position = 0.8  # 乐观时高仓位\n    elif score >= 50:\n        position = 0.5  # 中性时中等仓位\n    else:\n        position = 0.2  # 悲观时低仓位\n    \n    print(f\"市场情绪: {sentiment['level']} ({score}分)\")\n    print(f\"建议仓位: {position*100}%\")\n    \n    return position\n\nif __name__ == '__main__':\n    adjust_position()\n```\n\n## 场景8: 历史数据回溯\n\n### 查询历史情绪\n\n```python\nimport sqlite3\nfrom datetime import datetime, timedelta\n\ndef query_history(days=7):\n    conn = sqlite3.connect('stock_cache.db')\n    cursor = conn.cursor()\n    \n    # 获取最近N天的数据\n    start_date = datetime.now() - timedelta(days=days)\n    \n    cursor.execute('''\n        SELECT date(update_time) as date, \n               AVG(change_pct) as avg_change,\n               COUNT(*) as total\n        FROM stocks\n        WHERE update_time >= ?\n        GROUP BY date(update_time)\n        ORDER BY date DESC\n    ''', (start_date,))\n    \n    results = cursor.fetchall()\n    conn.close()\n    \n    for date, avg_change, total in results:\n        print(f\"{date}: 平均涨幅 {avg_change:.2f}%, 有效数据 {total}条\")\n\nif __name__ == '__main__':\n    query_history(7)\n```\n\n## 更多示例\n\n查看 SKILL.md 了解更多配置选项和高级用法。\n\nFile v1.1.0:references/INSTALL.md\n\n# A股监控系统 - 安装指南\n\n## 系统要求\n\n- Python 3.9+\n- pip3\n- OpenClaw Gateway (可选，用于自动化任务)\n\n## 安装步骤\n\n### 1. 安装Python依赖\n\n```bash\npip3 install akshare flask ccxt\n```\n\n### 2. 初始化数据库\n\n首次运行会自动创建SQLite数据库：\n\n```bash\ncd <skill-path>/scripts\npython3 stock_cache_db.py\n```\n\n### 3. 导入演示数据（可选）\n\n非交易时间可以先导入演示数据进行测试：\n\n```python\nimport sqlite3\nfrom datetime import datetime\n\ndemo_stocks = [\n    ('600900', '长江电力', 26.85, -0.52, 158900000, 4267850000),\n    ('601985', '中国核电', 9.32, -0.64, 256800000, 2393760000),\n    ('600905', '三峡能源', 8.45, -0.71, 442100000, 3735645000),\n]\n\nconn = sqlite3.connect('stock_cache.db')\ncursor = conn.cursor()\n\nfor code, name, price, change_pct, volume, amount in demo_stocks:\n    cursor.execute('''\n        UPDATE stocks \n        SET price = ?, change_pct = ?, volume = ?, amount = ?, update_time = ?\n        WHERE code = ?\n    ''', (price, change_pct, volume, amount, datetime.now(), code))\n\nconn.commit()\nconn.close()\n```\n\n### 4. 配置监控股票\n\n编辑 `web_app.py`：\n\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    '600905',  # 三峡能源\n    # 添加你想监控的股票代码\n]\n```\n\n### 5. 启动Web服务\n\n```bash\npython3 web_app.py\n```\n\n访问 `http://localhost:5000`\n\n### 6. 设置自动化任务（可选）\n\n使用OpenClaw Cron定时更新数据：\n\n```bash\nopenclaw cron add \\\n  --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'\n```\n\n## 验证安装\n\n### 测试数据获取\n\n```bash\npython3 update_all_market_data.py\n```\n\n应该看到：\n```\n🔄 开始获取全市场A股数据...\n✅ 获取成功: 5810 只股票\n💾 保存到数据库...\n✅ 数据更新完成!\n```\n\n### 测试市场情绪\n\n```bash\npython3 market_sentiment.py\n```\n\n应该看到JSON格式的情绪评分。\n\n### 测试交易时间判断\n\n```bash\npython3 is_trading_time.py\n```\n\n显示当前是否为交易时间。\n\n## 常见问题\n\n### Q: ModuleNotFoundError: No module named 'akshare'\nA: 运行 `pip3 install akshare`\n\n### Q: 端口5000被占用\nA: 修改 `web_app.py` 中的端口号：\n```python\nif __name__ == '__main__':\n    app.run(debug=True, host='0.0.0.0', port=5001)  # 改为5001\n```\n\n### Q: 数据全部显示为null\nA: 非交易时间akshare返回空数据，等待交易时间或导入演示数据\n\n### Q: Web界面一直转圈\nA: 数据库无有效数据，运行 `python3 update_all_market_data.py`\n\n## 卸载\n\n```bash\n# 删除技能目录\nrm -rf <skill-path>\n\n# 删除数据库（可选）\nrm <skill-path>/scripts/stock_cache.db\n\n# 删除Cron任务\nopenclaw cron list  # 找到任务ID\nopenclaw cron remove <job-id>\n```\n\n## 下一步\n\n- 查看 SKILL.md 了解详细使用方法\n- 查看 API.md 了解API接口文档\n- 查看 EXAMPLES.md 了解使用示例\n\nFile v1.1.0:references/STOCK_SELECTION.md\n\n# 智能选股引擎文档\n\n## 概述\n\nA股量化监控系统内置强大的智能选股引擎，支持短线和中长线两种选股模式，基于多指标共振评分体系，每日自动推荐优质股票。\n\n## 短线选股引擎\n\n### 适用场景\n- 持仓周期：1-5天\n- 适合：短线交易者、日内波段操作\n- 风险等级：中高风险\n- 预期收益：5-15%\n\n### 5大短线策略\n\n#### 1. RSI短线策略\n**持仓周期**: 1-3天  \n**核心逻辑**: 超短线RSI策略，适合T+0或快速进出\n\n**参数**:\n- RSI周期: 6\n- 超卖阈值: 25\n- 超买阈值: 75\n\n**信号**:\n- 买入: RSI < 25 且开始回升\n- 卖出: RSI > 75 或止盈/止损\n\n#### 2. MACD短线策略\n**持仓周期**: 2-5天  \n**核心逻辑**: MACD金叉死叉，短期趋势跟踪\n\n**参数**:\n- 快线: 8\n- 慢线: 17\n- 信号线: 9\n\n**信号**:\n- 买入: MACD金叉\n- 卖出: MACD死叉\n\n#### 3. KDJ短线策略\n**持仓周期**: 1-3天  \n**核心逻辑**: KDJ超买超卖，适合日内波段\n\n**参数**:\n- N值: 9\n- 超卖: 20\n- 超买: 80\n\n**信号**:\n- 买入: KDJ < 20 且K线上穿D线\n- 卖出: KDJ > 80 或K线下穿D线\n\n#### 4. 布林突破策略\n**持仓周期**: 1-5天  \n**核心逻辑**: 布林带突破，捕捉短期波动\n\n**参数**:\n- 周期: 10\n- 标准差: 1.5\n\n**信号**:\n- 买入: 突破下轨后回归\n- 卖出: 触及上轨或中轨\n\n#### 5. 放量突破策略\n**持仓周期**: 1-3天  \n**核心逻辑**: 量价齐升，短期强势股\n\n**参数**:\n- 放量倍数: 2.0\n- 涨幅阈值: 3%\n\n**信号**:\n- 买入: 放量 > 2倍 且 涨幅 > 3%\n- 卖出: 缩量或止盈/止损\n\n### 短线评分体系\n\n**满分100分，推荐阈值75分以上**\n\n| 指标 | 权重 | 说明 |\n|------|------|------|\n| RSI信号 | 20分 | 超卖/超买状态 |\n| KDJ信号 | 20分 | 随机指标 |\n| MACD信号 | 15分 | 趋势确认 |\n| 布林带信号 | 15分 | 波动率突破 |\n| 量价异动 | 15分 | 成交量放大 |\n| 资金流向 | 15分 | 主力资金净流入 |\n\n### 短线买卖点\n\n**买入价**: 当前价 × (1 + 0.5%)  \n**止损价**: 买入价 - 2 × ATR  \n**止盈价**: 买入价 + 4 × ATR\n\n**预期收益率**: (止盈价 - 买入价) / 买入价  \n**风险收益比**: (止盈价 - 买入价) / (买入价 - 止损价)\n\n### 使用方法\n\n```bash\n# 运行短线选股\npython3 scripts/short_term_selector.py\n```\n\n**输出示例**:\n```\n========================================\n短线选股引擎 - 2026-02-24\n========================================\n\n推荐股票: 3 只\n\n1. 长江电力 (600900) - 评分: 85.5\n   当前价: ¥26.85\n   买入价: ¥27.00 (现价+0.5%)\n   止损价: ¥25.80 (2ATR)\n   止盈价: ¥29.40 (4ATR)\n   预期收益: +8.9%\n   风险收益比: 2.0\n   \n   强项指标:\n   ✓ RSI(28.5) 超卖后回升 [20分]\n   ✓ KDJ金叉 K(32)>D(28) [18分]\n   ✓ MACD柱状图转正 [14分]\n   ✓ 放量1.8倍 [12分]\n   \n   策略: RSI短线 + 放量突破\n   持仓周期: 1-3天\n```\n\n## 中长线选股引擎\n\n### 适用场景\n- 持仓周期：20-180天\n- 适合：价值投资者、趋势跟踪者\n- 风险等级：中低风险\n- 预期收益：15-50%\n\n### 7大中长线策略\n\n#### 1. MA趋势策略\n**持仓周期**: 20-60天  \n**核心逻辑**: 均线多头排列，趋势跟踪\n\n**参数**:\n- 短期均线: MA20\n- 长期均线: MA60\n- 趋势过滤: MA120\n\n**信号**:\n- 买入: MA20 > MA60 > MA120（多头排列）\n- 卖出: MA20下穿MA60\n\n#### 2. MACD趋势策略\n**持仓周期**: 15-30天  \n**核心逻辑**: MACD趋势确认，中期持有\n\n**参数**:\n- 快线: 12\n- 慢线: 26\n- 信号线: 9\n- 最少持仓: 15天\n\n**信号**:\n- 买入: MACD金叉 且 柱状图连续放大\n- 卖出: MACD死叉 或 到达止盈\n\n#### 3. 价值成长策略\n**持仓周期**: 60-180天  \n**核心逻辑**: 长期价值投资，价值+成长双重验证\n\n**参数**:\n- RSI阈值: 40（回调买入）\n- MA过滤: MA200\n- 最少持仓: 30天\n\n**信号**:\n- 买入: 价格回调至MA60 且 RSI < 40\n- 卖出: 严重超买或基本面恶化\n\n#### 4. 突破回踩策略\n**持仓周期**: 10-30天  \n**核心逻辑**: 突破后回踩买入，确认突破有效性\n\n**参数**:\n- 突破幅度: 3%\n- 回踩幅度: 2%\n- 最少持仓: 10天\n\n**信号**:\n- 买入: 突破新高后回踩MA20支撑\n- 卖出: 跌破MA20或止盈\n\n#### 5. 底部反转策略\n**持仓周期**: 15-30天  \n**核心逻辑**: RSI+MACD双确认，捕捉底部反转\n\n**参数**:\n- RSI阈值: 30\n- MACD: 金叉确认\n\n**信号**:\n- 买入: RSI < 30 且 MACD金叉\n- 卖出: RSI > 70 或止盈\n\n#### 6. 趋势加速策略\n**持仓周期**: 10-20天  \n**核心逻辑**: 均线多头+放量，趋势加速上涨\n\n**参数**:\n- 均线: MA5 > MA10 > MA20\n- 放量: 1.5倍\n\n**信号**:\n- 买入: 多头排列 + 放量突破\n- 卖出: 缩量或破位\n\n#### 7. 强势股回调策略\n**持仓周期**: 5-15天  \n**核心逻辑**: 强势股回调低吸，追涨强势股\n\n**参数**:\n- 近期涨幅: > 20%\n- 回调幅度: 5-10%\n\n**信号**:\n- 买入: 回调至MA10支撑\n- 卖出: 反弹至前高或止损\n\n### 中长线评分体系\n\n**满分100分，推荐阈值70分以上**\n\n| 维度 | 权重 | 子指标 |\n|------|------|--------|\n| 技术指标 | 40% | MA趋势、MACD、RSI、KDJ |\n| 资金流向 | 30% | 主力资金、北向资金 |\n| 市场热度 | 15% | 换手率、振幅 |\n| 风险评估 | 15% | 波动率、最大回撤 |\n\n### 中长线持仓建议\n\n根据综合评分给出持仓建议：\n\n| 评分 | 建议仓位 | 风险等级 |\n|------|----------|----------|\n| 90-100 | 80-100% | 低风险 |\n| 80-89 | 60-80% | 中低风险 |\n| 70-79 | 40-60% | 中等风险 |\n| 60-69 | 20-40% | 中高风险 |\n| < 60 | 不推荐 | 高风险 |\n\n### 使用方法\n\n```bash\n# 运行中长线选股\npython3 scripts/long_term_selector.py\n\n# 运行增强版（包含更多维度）\npython3 scripts/enhanced_long_term_selector.py\n```\n\n**输出示例**:\n```\n========================================\n中长线选股引擎 - 2026-02-24\n========================================\n\n推荐股票: 8 只\n\n1. 中国核电 (601985) - 评分: 88.5\n   当前价: ¥9.32\n   目标价: ¥11.50 (+23.4%)\n   止损价: ¥8.80 (-5.6%)\n   建议仓位: 70%\n   风险等级: 中低风险\n   持仓周期: 30-60天\n   \n   优势:\n   ✓ MA20/MA60/MA120多头排列 [35分]\n   ✓ MACD金叉且柱状图放大 [32分]\n   ✓ 主力资金连续3日净流入 [28分]\n   ✓ 波动率低，稳健上涨 [13分]\n   \n   策略: MA趋势 + MACD趋势\n   适合: 稳健型投资者\n```\n\n## 自动化选股\n\n### 设置每日选股任务\n\n```bash\n# 每日9:30短线选股\nopenclaw cron add \\\n  --name \"每日短线选股\" \\\n  --schedule \"30 9 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 short_term_selector.py\"}'\n\n# 每日9:30中长线选股\nopenclaw cron add \\\n  --name \"每日中长线选股\" \\\n  --schedule \"30 9 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --session main \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 long_term_selector.py\"}'\n```\n\n## 配置说明\n\n### 自定义股票池\n\n创建 `watchlist.json`：\n\n```json\n[\n  \"600900\",\n  \"601985\",\n  \"600905\",\n  \"000858\",\n  \"600519\"\n]\n```\n\n### 策略参数调整\n\n编辑 `strategy_config.py` 修改策略参数：\n\n```python\nSHORT_TERM_STRATEGIES = {\n    'rsi_short': {\n        'params': {\n            'rsi_period': 6,      # 调整RSI周期\n            'oversold': 25,       # 调整超卖阈值\n        }\n    }\n}\n```\n\n## 风险提示\n\n1. **短线风险**：波动大，需要严格止损\n2. **中长线风险**：持仓周期长，需要耐心\n3. **策略失效**：市场环境变化可能导致策略失效\n4. **仅供参考**：选股结果仅供参考，不构成投资建议\n\n## 最佳实践\n\n1. **组合投资**：短线+中长线组合，分散风险\n2. **严格止损**：遵守系统给出的止损价\n3. **分批建仓**：不要一次性重仓\n4. **跟踪调整**：定期复盘，调整策略参数\n5. **控制仓位**：根据评分控制仓位大小\n\n## 常见问题\n\n### Q: 为什么过滤创业板和科创板？\nA: 创业板和科创板波动较大，风险较高，不适合通用策略。\n\n### Q: 评分多少才值得买入？\nA: 短线建议75分以上，中长线建议70分以上。\n\n### Q: 如何调整策略参数？\nA: 编辑 `strategy_config.py`，根据回测结果优化参数。\n\n### Q: 可以同时运行多个策略吗？\nA: 可以，系统支持多策略组合，会去重推荐。","readmeExcerpt":"Skill: A Stock Monitor Owner: jame-mei-ltp Summary: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化... Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-24T03:34:33.365Z | user 修复数据更新Bug，优化数据源性能（新浪+akshare），提升6-10倍速度 v1.1.0 | 2026-02-24T01:34:32.846Z | user 重大更新: 新增智能选股引擎（短线5策略+中长线7策略），多指标共振评分，精确买卖点计算，动态止损","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"pip3 install akshare flask ccxt"},{"language":"python","snippet":"WATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    # 添加更多股票代码...\n]"},{"language":"bash","snippet":"cd scripts/\npython3 web_app.py"},{"language":"bash","snippet":"openclaw cron add --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'"},{"language":"bash","snippet":"# 更新全市场数据\npython3 scripts/update_all_market_data.py\n\n# 计算市场情绪\npython3 scripts/market_sentiment.py\n\n# 智能更新（仅交易时间）\npython3 scripts/smart_market_updater.py\n\n# 检查交易时间\npython3 scripts/is_trading_time.py\n\n# 短线选股（每日推荐3-5只）\npython3 scripts/short_term_selector.py\n\n# 中长线选股（每日推荐5-10只）\npython3 scripts/long_term_selector.py\n\n# 增强版中长线选股\npython3 scripts/enhanced_long_term_selector.py"},{"language":"text","snippet":"scripts/\n├── web_app.py                      # Flask Web服务\n├── stock_cache_db.py               # SQLite数据缓存\n├── stock_async_fetcher.py          # 异步数据获取\n├── market_sentiment.py             # 市场情绪计算\n├── is_trading_time.py              # 交易时间判断\n├── smart_market_updater.py         # 智能更新器\n├── update_all_market_data.py       # 全市场数据更新\n├── short_term_selector.py          # 短线选股引擎\n├── long_term_selector.py           # 中长线选股引擎\n├── enhanced_long_term_selector.py  # 增强版中长线选股\n├── strategy_config.py              # 策略配置文件\n└── templates/\n    └── index.html                  # Web前端页面"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: a-stock-monitor\ndescription: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化交易、技术分析、选股决策。\nauthor: James Mei\ncontact:\n  email: meijinmeng@126.com\n  blog: https://www.cnblogs.com/Jame-mei\nmetadata:\n  openclaw:\n    requires:\n      bins: [\"python3\"]\n      packages: [\"akshare\", \"flask\", \"ccxt\"]\n---\n\n# A股量化选股和监控系统\n\n一个完整的A股量化选股、实时监控与市场情绪分析系统。\n\n**作者**: James Mei  \n**邮箱**: meijinmeng@126.com  \n**博客**: https://www.cnblogs.com/Jame-mei  \n**版本**: 1.1.2  \n**许可证**: MIT\n\n## 🆕 v1.1.2 更新 (2026-02-24)\n\n### 核心优化\n- ⚡ **性能提升6-10倍**：交易时间使用新浪财经（0.1秒 vs 1.5秒）\n- 🔧 **修复关键Bug**：全市场数据更新、选股功能\n- 📊 **数据完整性**：从8只提升到5748只（98.9%）\n- 🎯 **智能切换**：交易时间新浪优先，盘后akshare稳定\n\n### 技术改进\n- 双数据源架构（新浪+akshare）\n- 自动判断交易时间\n- 超时保护和降级机制\n- 完整的向后兼容\n\n详见：[CHANGELOG.md](references/CHANGELOG.md)\n\n---\n\n## 核心功能\n\n### 1. 市场情绪评分 (7维度)\n基于全市场5000+只A股的综合情绪评分（0-100分）：\n- 涨跌家数比 (20%)\n- 平均涨幅 (20%)\n- 涨停/跌停比 (15%)\n- 强势股占比 (15%)\n- 成交活跃度 (10%)\n- 波动率 (10%)\n- 趋势强度 (10%)\n\n### 2. 智能选股引擎\n\n#### 短线选股 (1-5天)\n**5大策略**，每日推荐3-5只短线机会股：\n- **RSI短线** - 超短线RSI策略，适合T+0或快速进出\n- **MACD短线** - MACD金叉死叉，短期趋势跟踪\n- **KDJ短线** - KDJ超买超卖，适合日内波段\n- **布林突破** - 布林带突破，捕捉短期波动\n- **放量突破** - 量价齐升，短期强势股\n\n**多指标共振评分体系** (满分100分)：\n- RSI信号 (20分)\n- KDJ信号 (20分)\n- MACD信号 (15分)\n- 布林带信号 (15分)\n- 量价异动 (15分)\n- 资金流向 (15分)\n\n**精确买卖点**：\n- 动态止损止盈（基于ATR）\n- 买入价、止损价、止盈价自动计算\n- 预期收益率、风险收益比\n\n#### 中长线选股 (20-180天)\n**7大策略**，每日推荐5-10只优质股票：\n- **MA趋势** - 均线多头排列，趋势跟踪 (20-60天)\n- **MACD趋势** - MACD趋势确认，中期持有 (15-30天)\n- **价值成长** - 长期价值投资 (60-180天)\n- **突破回踩** - 突破后回踩买入 (10-30天)\n- **底部反转** - RSI+MACD双确认 (15-30天)\n- **趋势加速** - 均线多头+放量 (10-20天)\n- **强势股回调** - 强势股回调低吸 (5-15天)\n\n**综合评分维度**：\n- 技术指标 (40%) - MA/MACD/RSI/KDJ等\n- 资金流向 (30%) - 主力资金净流入\n- 市场热度 (15%) - 换手率、振幅\n- 风险评估 (15%) - 波动率、回撤\n\n**持仓建议**：\n- 建议仓位（根据评分）\n- 预期收益率\n- 风险等级\n- 持仓周期\n\n#### 选股配置\n- 自动过滤创业板(3开头)和科创板(688开头)\n- 支持自定义监控股票池（watchlist.json）\n- 每日自动推荐，飞书/企业微信告警\n\n### 3. 实时价格监控\n- 交易时间：每5秒更新价格\n- 非交易时间：显示历史数据\n- 自动判断交易时段（9:15-11:30, 13:00-15:00）\n\n### 4. 涨跌幅排行榜\n- 实时涨幅榜（Top 5）\n- 实时跌幅榜（Top 5）\n- 支持点击查看详情\n\n### 5. Web可视化界面\n- 市场情绪仪表盘\n- 监控股票卡片展示\n- 统计数据汇总\n- 响应式设计\n\n## 使用方式\n\n### 快速开始\n\n1. **安装依赖**\n```bash\npip3 install akshare flask ccxt\n```\n\n2. **配置监控股票**\n编辑 `web_app.py`，修改 `WATCHED_STOCKS` 列表：\n```python\nWATCHED_STOCKS = [\n    '600900',  # 长江电力\n    '601985',  # 中国核电\n    # 添加更多股票代码...\n]\n```\n\n3. **启动Web服务**\n```bash\ncd scripts/\npython3 web_app.py\n```\n访问 `http://localhost:5000`\n\n### 自动化运行\n\n**设置Cron任务**（交易时间每5分钟更新）：\n```bash\nopenclaw cron add --name \"A股全市场数据更新\" \\\n  --schedule \"*/5 9-15 * * 1-5\" \\\n  --tz \"Asia/Shanghai\" \\\n  --payload '{\"kind\":\"systemEvent\",\"text\":\"cd <skill-path>/scripts && python3 smart_market_updater.py\"}'\n```\n\n替换 `<skill-path>` 为技能安装路径。\n\n### 手动执行\n\n```bash\n# 更新全市场数据\npython3 scripts/update_all_market_data.py\n\n# 计算市场情绪\npython3 scripts/market_sentiment.py\n\n# 智能更新（仅交易时间）\npython3 scripts/smart_market_updater.py\n\n# 检查交易时间\npython3 scripts/is_trading_time.py\n\n# 短线选股（每日推荐3-5只）\npython3 scripts/short_term_selector.py\n\n# 中长线选股（每日推荐5-10只）\npytho"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cv05f00kdbz76tfrgzjjcrs80vm51\",\n  \"slug\": \"a-stock-monitor\",\n  \"version\": \"1.1.2\",\n  \"publishedAt\": 1771904073365\n}"},{"path":"references/API.md","content":"# API文档\n\n## 基础信息\n\n- **基础URL**: `http://localhost:5000/api`\n- **响应格式**: JSON\n- **认证**: 需要登录（默认密码：stock2024）\n\n## 端点列表\n\n### 1. 市场情绪 - GET /api/market/sentiment\n\n获取全市场5000+只股票的综合情绪评分。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/market/sentiment\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"score\": 57,\n  \"level\": \"偏乐观\",\n  \"emoji\": \"🟢\",\n  \"description\": \"市场偏强，情绪稳定 · 涨停15只 跌停3只 · 强势股108只 弱势股104只 · 平均换手4.22% 波动率3.95%\",\n  \"stats\": {\n    \"total\": 5000,\n    \"gainers\": 2460,\n    \"losers\": 2534,\n    \"limit_up\": 15,\n    \"limit_down\": 3,\n    \"strong_stocks\": 108,\n    \"weak_stocks\": 104,\n    \"avg_change\": 0.35,\n    \"avg_turnover\": 4.22,\n    \"avg_volatility\": 3.95\n  },\n  \"is_historical\": false,\n  \"data_time\": \"2026-02-24 14:55:00\",\n  \"demo_mode\": false\n}\n```\n\n**字段说明**:\n- `score`: 情绪评分 (0-100)\n- `level`: 情绪等级 (极度悲观/悲观/偏悲观/中性/偏乐观/乐观/极度乐观)\n- `emoji`: 情绪表情\n- `is_historical`: 是否为历史数据\n- `demo_mode`: 是否为演示模式\n\n### 2. 监控股票列表 - GET /api/stocks\n\n获取所有监控股票的完整数据（含技术指标、资金流）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"volume\": 158900000,\n      \"amount\": 4267850000,\n      \"update_time\": \"2026-02-24 14:55:00\",\n      \"fund_flow\": {\n        \"main_in\": -128500000,\n        \"super_in\": -85200000,\n        \"big_in\": -43300000,\n        \"mid_in\": 45600000,\n        \"small_in\": 82900000\n      },\n      \"tech_indicators\": {\n        \"rsi\": 45.2,\n        \"macd\": -0.15,\n        \"kdj_k\": 38.5,\n        \"kdj_d\": 42.1\n      }\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n### 3. 实时价格 - GET /api/stocks/realtime\n\n获取监控股票的实时价格（轻量级，仅价格和涨跌）。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stocks/realtime\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"code\": \"600900\",\n      \"name\": \"长江电力\",\n      \"price\": 26.85,\n      \"change_pct\": -0.52,\n      \"update_time\": \"2026-02-24 14:55:00\"\n    }\n  ],\n  \"timestamp\": \"2026-02-24 14:55:05\"\n}\n```\n\n**使用场景**: 前端实时轮询（每5秒）\n\n### 4. 股票详情 - GET /api/stock/<code>\n\n获取单只股票的详细信息。\n\n**请求示例**:\n```bash\ncurl http://localhost:5000/api/stock/600900\n```\n\n**响应示例**:\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"code\": \"600900\",\n    \"name\": \"长江电力\",\n    \"price\": 26.85,\n    \"change_pct\": -0.52,\n    \"volume\": 158900000,\n    \"amount\": 4267850000,\n    \"turnover\": 1.25,\n    \"amplitude\": 2.18,\n    \"update_time\": \"2026-02-24 14:55:00\",\n    \"fund_flow\": {...},\n    \"tech_indicators\": {...}\n  }\n}\n```\n\n### 5. 市场总览 - GET /api/market/overview (已废弃)\n\n该端点已被移除，请使用 `/api/market/sentiment` 替代。\n\n## 错误码\n\n| 状态码 | 说明 |\n|--------|------|\n| 200 | 成功 |\n| 401 | 未授权（需要登录） |\n| 404 | 资源不存在 |\n| 500 | 服务器错误 |\n\n## 数据更新频率\n\n| 端点 | 缓存时间 | 更新频率 |\n|------|----------|----------|\n| /api/market/sentiment | 30分钟 | 交易时间每5分钟 |\n| /api/stocks | 实时 | 每次请求 |\n| /api/stocks/realtime | 实时 | 每次请求 |\n| /api/stock/<code> | 实时 | 每次请求 |\n\n## 前端集成示例\n\n### jQuery轮询\n\n```javascript\n// 每5秒更新实时价格\nsetInterval(function() {\n    $"},{"path":"references/CHANGELOG.md","content":"# Changelog\n\n## v1.1.2 (2026-02-24)\n\n### 🔧 Bug Fixes\n- 修复全市场数据更新失败问题（save_stock → save_stocks）\n- 修复选股功能报错（添加close()兼容方法）\n- 修复市场情绪只显示监控股票的问题\n\n### ⚡ Performance\n- 实施智能数据源切换（新浪+akshare）\n- 交易时间优先新浪财经（0.1秒，快15倍）\n- 盘后自动切换akshare历史数据（稳定）\n- 全市场数据完整性提升到98.9%（5748/5810只）\n\n### ✨ Enhancements\n- 新浪财经+akshare双数据源架构\n- 自动判断交易时间智能切换\n- 超时保护和自动降级机制\n- 数据缓存优化（30分钟有效期）\n\n### 📊 Data Quality\n- 市场情绪现基于5748只A股（之前仅8只）\n- 数据更新成功率从0%提升到98.9%\n- 实时价格更新速度提升6-10倍（交易时间）\n\n### 🎯 System Stability\n- 完整测试短线和中长线选股功能\n- Web服务稳定性提升\n- 错误处理和日志优化\n\n### 📝 Documentation\n- 新增 `SINA_TEST_REPORT.md` - 新浪性能测试\n- 新增 `DATA_SOURCE_FINAL.md` - 数据源方案\n- 新增 `FIX_SUMMARY.md` - 问题修复记录\n- 新增 `FINAL_SUMMARY.md` - 系统完整说明\n\n---\n\n## v1.1.0 (2026-02-24)\n\n### ✨ New Features\n- 短线选股引擎（5策略）\n- 中长线选股引擎（7策略）\n- 多指标共振评分系统\n\n---\n\n## v1.0.2 (2026-02-24)\n\n### Initial Release\n- 市场情绪评分系统\n- Web可视化界面\n- 基础监控功能"},{"path":"references/DATA_SOURCE_FINAL.md","content":"# 数据源最终配置\n\n## ✅ 采用方案：新浪财经 + akshare\n\n### 数据源架构\n\n```\n┌─────────────────────────────────────┐\n│  第一层: 新浪财经 (1-3秒)           │\n│  ✓ 最快  ✓ 免费  ✗ 可能不稳定      │\n└────────────┬────────────────────────┘\n             │ 失败/超时 ↓\n┌─────────────────────────────────────┐\n│  第二层: akshare (10-30秒)          │\n│  ✓ 稳定  ✓ 免费  ✗ 较慢            │\n└─────────────────────────────────────┘\n```\n\n**Tushare**: ❌ 不使用（需要积分，不可靠）\n\n## 📊 性能表现\n\n### 实时行情\n| 操作 | 新浪成功 | 新浪失败→akshare |\n|------|----------|-----------------|\n| 单股查询 | 1-3秒 | 10-30秒 |\n| 批量查询(50) | 3-5秒 | 30-60秒 |\n\n### 全市场更新\n- 5810只股票: **1-2分钟**\n- 平均: 约1.2秒/股\n\n## 🎯 优化策略\n\n### 1. 新浪财经优化\n- ✅ 批量查询（一次最多50只）\n- ✅ 超时控制（3秒）\n- ✅ 自动重试机制\n\n### 2. akshare优化\n- ✅ 缓存机制（30分钟有效期）\n- ✅ 批量保存（减少数据库写入）\n- ✅ 进度显示\n\n### 3. 智能切换\n- ✅ 新浪失败自动切换akshare\n- ✅ 无需人工干预\n- ✅ 完全透明\n\n## 📁 核心文件\n\n### 1. hybrid_data_source.py\n混合数据源管理器\n- 新浪财经接口\n- akshare接口\n- 自动切换逻辑\n\n### 2. smart_data_source.py\n向后兼容层\n- 统一接口\n- 现有代码无需修改\n\n### 3. update_all_market_data.py\n全市场数据更新\n- 使用akshare获取全市场\n- 批量保存到数据库\n\n### 4. config.py\n配置文件\n```python\nTUSHARE_TOKEN = None  # 不使用Tushare\nENABLE_WEBSOCKET = True  # 前端实时更新\n```\n\n## ⚙️ 当前配置\n\n### 数据更新频率\n- **交易时间**: 每5分钟更新一次\n- **前端刷新**: 每5秒查询实时价格\n- **非交易时间**: 停止更新\n\n### Cron任务\n```bash\n# A股全市场数据更新（交易时间每5分钟）\n*/5 9-15 * * 1-5\n```\n\n### Web服务\n- 端口: 5000\n- 实时API: 每5秒轮询\n- 数据源: 新浪 → akshare\n\n## 📈 性能监控\n\n### 关键指标\n- ✅ 数据完整性: 5748/5810 (98.9%)\n- ✅ 更新速度: 1-2分钟/次\n- ✅ 服务稳定性: 良好\n\n### 监控命令\n```bash\n# 查看数据库状态\ncd /Users/jamemei/.openclaw/workspace/crypto_quant_sim/stock-monitor\npython3 fix_market_sentiment.py\n\n# 查看Web日志\ntail -50 web_app.log\n\n# 测试新浪接口\npython3 test_sina_only.py\n```\n\n## 🔄 数据流程\n\n### 实时价格获取流程\n```\n用户请求\n  ↓\nSmartDataSource\n  ↓\n尝试新浪财经 (3秒超时)\n  ↓\n成功? → 返回数据 ✅\n  ↓ 失败\n尝试akshare (30秒超时)\n  ↓\n成功? → 返回数据 ✅\n  ↓ 失败\n返回缓存数据或None ❌\n```\n\n### 全市场更新流程\n```\nCron触发 (每5分钟)\n  ↓\n判断交易时间?\n  ↓ 是\nakshare获取全市场 (5810只)\n  ↓\n批量保存到数据库\n  ↓\n完成 (1-2分钟) ✅\n```\n\n## 🚀 未来优化方向\n\n### 短期（可选）\n1. **WebSocket实时推送**\n   - 真正的毫秒级更新\n   - 需要对接第三方WebSocket服务\n\n2. **增量更新**\n   - 只更新有变化的股票\n   - 减少更新时间\n\n### 长期（可选）\n1. **多数据源对比**\n   - 新浪、东方财富、腾讯财经\n   - 投票机制选择最准确的数据\n\n2. **本地缓存优化**\n   - Redis缓存\n   - 分布式缓存\n\n## ⚠️ 注意事项\n\n### 新浪财经限制\n- 可能被封IP（高频访问）\n- 非交易时间无数据\n- 偶尔返回空数据\n\n**对策**:\n- ✅ 自动切换到akshare\n- ✅ 合理控制请求频率\n- ✅ 缓存机制减少请求\n\n### akshare限制\n- 速度较慢（1-1.5秒/股）\n- 爬虫方式可能失效\n\n**对策**:\n- ✅ 批量获取提高效率\n- ✅ 缓存30分钟减少请求\n- ✅ 定期检查可用性\n\n## 📞 支持\n\n遇到问题:\n1. 查看 `INTEGRATION_STATUS.md` - 集成状态\n2. 查看 `FIX_SUMMARY.md` - 修复记录\n3. 运行 `diagnose.py` - 系统诊断\n\n---\n\n**配置时间**: 2026-02-24  \n**方案**: 新浪财经 + akshare（双数据源）  \n**状态**: ✅ 稳定运行  \n**性能**: 良好（5748只数据，1-2分钟更新）"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化... Skill: A Stock Monitor Owner: jame-mei-ltp Summary: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎（短线5策略+中长线7策略）、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析，多指标共振评分，精确买卖点计算，动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化... Tags: latest:1.1.2 Version history: v1.1.2 | 2026-02-24T03:34:33.365Z | user 修复数据更新Bug，优化数据源性能（新浪+akshare），提升6-10倍速度 v1.1.0 | 2026-02-24T01:34:32.846Z | user 重大更新: 新增智能选股引擎（短线5策略+中长线7策略），多指标共振评分，精确买卖点计算，动态止损","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":830,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","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-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:15:02.602Z","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"}]}}}