<< All versions

Skill v1.0.1

Automated scan100/100
kirkluokun/awesome-a-stock-openclawskills/stock-a

+23 new, ~2 modified, -7 removed

──Details
PublishedSeptember 30, 2026 at 12:59 AM
Content Hashsha256:d156bfd6cc4a86dc...
Git SHA409ee18bf91e
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 9.1 KB)
SKILL.md9.1 KBactive
SKILL.md · 368 lines · 9.1 KB

version: "1.0.1" name: a股量化监控系统 description: A股量化监控系统 - 7维度市场情绪评分、智能选股引擎(短线5策略+中长线7策略)、实时价格监控、涨跌幅排行榜。支持全市场5000+股票数据采集与分析,多指标共振评分,精确买卖点计算,动态止损止盈。每日自动推荐短线3-5只、中长线5-10只优质股票。包含Web界面、自动化Cron任务、历史数据回溯。适用于A股量化交易、技术分析、选股决策。 author: James Mei contact: email: meijinmeng@126.com blog: https://www.cnblogs.com/Jame-mei metadata: openclaw: requires: bins: ["python3"] packages: ["akshare", "flask", "ccxt"]


A股量化选股和监控系统

一个完整的A股量化选股、实时监控与市场情绪分析系统。

作者: James Mei 邮箱: meijinmeng@126.com 博客: https://www.cnblogs.com/Jame-mei 版本: 1.1.2 许可证: MIT

🆕 v1.1.2 更新 (2026-02-24)

核心优化

  • ⚡ 性能提升6-10倍:交易时间使用新浪财经(0.1秒 vs 1.5秒)
  • 🔧 修复关键Bug:全市场数据更新、选股功能
  • 📊 数据完整性:从8只提升到5748只(98.9%)
  • 🎯 智能切换:交易时间新浪优先,盘后akshare稳定

技术改进

  • 双数据源架构(新浪+akshare)
  • 自动判断交易时间
  • 超时保护和降级机制
  • 完整的向后兼容

详见:CHANGELOG.md


核心功能

1. 市场情绪评分 (7维度)

基于全市场5000+只A股的综合情绪评分(0-100分):

  • 涨跌家数比 (20%)
  • 平均涨幅 (20%)
  • 涨停/跌停比 (15%)
  • 强势股占比 (15%)
  • 成交活跃度 (10%)
  • 波动率 (10%)
  • 趋势强度 (10%)

2. 智能选股引擎

短线选股 (1-5天)

5大策略,每日推荐3-5只短线机会股:

  • RSI短线 - 超短线RSI策略,适合T+0或快速进出
  • MACD短线 - MACD金叉死叉,短期趋势跟踪
  • KDJ短线 - KDJ超买超卖,适合日内波段
  • 布林突破 - 布林带突破,捕捉短期波动
  • 放量突破 - 量价齐升,短期强势股

多指标共振评分体系 (满分100分):

  • RSI信号 (20分)
  • KDJ信号 (20分)
  • MACD信号 (15分)
  • 布林带信号 (15分)
  • 量价异动 (15分)
  • 资金流向 (15分)

精确买卖点:

  • 动态止损止盈(基于ATR)
  • 买入价、止损价、止盈价自动计算
  • 预期收益率、风险收益比

中长线选股 (20-180天)

7大策略,每日推荐5-10只优质股票:

  • MA趋势 - 均线多头排列,趋势跟踪 (20-60天)
  • MACD趋势 - MACD趋势确认,中期持有 (15-30天)
  • 价值成长 - 长期价值投资 (60-180天)
  • 突破回踩 - 突破后回踩买入 (10-30天)
  • 底部反转 - RSI+MACD双确认 (15-30天)
  • 趋势加速 - 均线多头+放量 (10-20天)
  • 强势股回调 - 强势股回调低吸 (5-15天)

综合评分维度:

  • 技术指标 (40%) - MA/MACD/RSI/KDJ等
  • 资金流向 (30%) - 主力资金净流入
  • 市场热度 (15%) - 换手率、振幅
  • 风险评估 (15%) - 波动率、回撤

持仓建议:

  • 建议仓位(根据评分)
  • 预期收益率
  • 风险等级
  • 持仓周期

选股配置

  • 自动过滤创业板(3开头)和科创板(688开头)
  • 支持自定义监控股票池(watchlist.json)
  • 每日自动推荐,飞书/企业微信告警

3. 实时价格监控

  • 交易时间:每5秒更新价格
  • 非交易时间:显示历史数据
  • 自动判断交易时段(9:15-11:30, 13:00-15:00)

4. 涨跌幅排行榜

  • 实时涨幅榜(Top 5)
  • 实时跌幅榜(Top 5)
  • 支持点击查看详情

5. Web可视化界面

  • 市场情绪仪表盘
  • 监控股票卡片展示
  • 统计数据汇总
  • 响应式设计

使用方式

快速开始

  1. 安装依赖
bash
pip3 install akshare flask ccxt
  1. 配置监控股票

编辑 web_app.py,修改 WATCHED_STOCKS 列表:

python
WATCHED_STOCKS = [
'600900', # 长江电力
'601985', # 中国核电
# 添加更多股票代码...
]
  1. 启动Web服务
bash
cd scripts/
python3 web_app.py

访问 http://localhost:5000

自动化运行

设置Cron任务(交易时间每5分钟更新):

bash
openclaw cron add --name "A股全市场数据更新" \
--schedule "*/5 9-15 * * 1-5" \
--tz "Asia/Shanghai" \
--payload '{"kind":"systemEvent","text":"cd <skill-path>/scripts && python3 smart_market_updater.py"}'

替换 <skill-path> 为技能安装路径。

手动执行

bash
# 更新全市场数据
python3 scripts/update_all_market_data.py
# 计算市场情绪
python3 scripts/market_sentiment.py
# 智能更新(仅交易时间)
python3 scripts/smart_market_updater.py
# 检查交易时间
python3 scripts/is_trading_time.py
# 短线选股(每日推荐3-5只)
python3 scripts/short_term_selector.py
# 中长线选股(每日推荐5-10只)
python3 scripts/long_term_selector.py
# 增强版中长线选股
python3 scripts/enhanced_long_term_selector.py

目录结构

scripts/
├── web_app.py # Flask Web服务
├── stock_cache_db.py # SQLite数据缓存
├── stock_async_fetcher.py # 异步数据获取
├── market_sentiment.py # 市场情绪计算
├── is_trading_time.py # 交易时间判断
├── smart_market_updater.py # 智能更新器
├── update_all_market_data.py # 全市场数据更新
├── short_term_selector.py # 短线选股引擎
├── long_term_selector.py # 中长线选股引擎
├── enhanced_long_term_selector.py # 增强版中长线选股
├── strategy_config.py # 策略配置文件
└── templates/
└── index.html # Web前端页面

API端点

GET /api/market/sentiment

返回全市场情绪评分

响应示例:

json
{
"score": 57,
"level": "偏乐观",
"emoji": "🟢",
"description": "市场偏强,情绪稳定",
"stats": {
"total": 5000,
"gainers": 2460,
"losers": 2534,
"limit_up": 15,
"limit_down": 3
}
}

GET /api/stocks

返回所有监控股票数据

GET /api/stocks/realtime

返回监控股票实时价格(轻量级)

GET /api/stock/<code>

返回单只股票详情

配置说明

交易时间配置

默认交易时间:周一至周五 9:15-15:00

修改 is_trading_time.py:

python
TRADING_HOURS = {
'morning': (9, 15, 11, 30), # 9:15-11:30
'afternoon': (13, 0, 15, 0), # 13:00-15:00
}

数据缓存配置

SQLite数据库:stock_cache.db 默认缓存时间:30分钟

修改 stock_cache_db.py:

python
MAX_AGE_MINUTES = 30 # 缓存有效期

监控股票配置

编辑 web_app.py 中的 WATCHED_STOCKS 列表

市场情绪阈值

修改 market_sentiment.py:

python
# 情绪等级阈值
LEVELS = [
(80, 100, '极度乐观', '🔴'),
(65, 79, '乐观', '🟠'),
(55, 64, '偏乐观', '🟢'),
# ...
]

数据来源

  • akshare: 获取A股实时行情、全市场数据
  • 本地缓存: SQLite数据库存储历史数据

性能优化

  1. 分级更新
  • 实时价格: 5秒(仅价格+涨跌)
  • 完整数据: 30秒(含技术指标)
  • 后端更新: 5分钟(全市场数据)
  1. 智能缓存
  • 交易时间: 5分钟缓存
  • 非交易时间: 显示历史数据
  1. 异步获取
  • 使用异步方式获取全市场数据
  • 避免阻塞主线程

故障排查

问题1: 数据全为null

原因: 非交易时间,akshare返回空数据 解决: 等待交易时间,或导入演示数据

问题2: Web界面一直转圈

原因: 数据库无有效数据 解决: 运行 python3 update_all_market_data.py

问题3: Cron任务不执行

原因: 时区配置错误 解决: 确保时区设置为 Asia/Shanghai

问题4: 端口被占用

原因: Flask默认端口5000冲突 解决: 修改 web_app.py 中的端口号

扩展开发

添加新的监控指标

编辑 market_sentiment.py,添加新的评分维度:

python
def calculate_sentiment(stocks):
# 添加新维度
new_dimension_score = calculate_new_dimension(stocks)
# 调整权重
score = (
gain_ratio_score * 0.18 + # 降低原有权重
# ...
new_dimension_score * 0.10 # 新维度10%
)

自定义告警规则

创建新的告警脚本:

python
def check_custom_alert():
cache = StockCache()
stocks = cache.get_all_stocks()
# 自定义告警逻辑
alerts = []
for stock in stocks:
if stock['change_pct'] > 5:
alerts.append(stock)
if alerts:
send_alert(alerts)

技术栈

  • 后端: Python 3.9+, Flask
  • 数据: akshare, SQLite
  • 前端: jQuery, Bootstrap
  • 自动化: OpenClaw Cron

许可证

MIT License

联系作者

  • 邮箱: meijinmeng@126.com
  • 博客: https://www.cnblogs.com/Jame-mei

欢迎反馈问题、建议和改进意见!

致谢

  • akshare 提供A股数据接口
  • OpenClaw 提供自动化调度能力
← v1.0.0All versionsv1.0.2 →