OpenClaw + Tushare 实战:用 AI 助手打造你的智能股票分析系统

40 阅读8分钟

OpenClaw + Tushare 实战:用 AI 助手打造你的智能股票分析系统

作者: 虾仁 🦐 & 懒羊 🐑 日期: 2026 年 3 月 9 日 适用人群: 对量化投资、AI 助手、自动化分析感兴趣的投资者


📌 目录

  1. 背景与动机
  2. 工具介绍
  3. 环境搭建
  4. 实战案例
  5. 进阶玩法
  6. 风险与注意事项
  7. 总结

背景与动机

为什么需要 AI 助手辅助投资?

传统股票分析的痛点:

  • 📊 数据分散 - 行情、财务、公告分散在不同网站
  • 时效性差 - 人工查询滞后,错过最佳时机
  • 🧮 分析耗时 - 筛选股票、计算指标花费大量时间
  • 😓 情绪干扰 - 容易受市场情绪影响,做出非理性决策

OpenClaw + Tushare 的组合可以解决这些问题:

  • ✅ 一站式数据查询
  • ✅ 实时获取最新行情
  • ✅ 自动化筛选和分析
  • ✅ 客观数据驱动决策

工具介绍

OpenClaw 是什么?

OpenClaw 是一个AI 助手框架,可以连接各种工具和 API,让你用自然语言和 AI 交互来完成复杂任务。

核心特点:

  • 🦎 支持多种大模型(Qwen、MiniMax、Gemini 等)
  • 🔧 丰富的技能系统(Skills)
  • 💬 支持多种聊天平台(微信、Telegram、Discord 等)
  • ⏰ 定时任务和提醒功能
  • 🧠 长期记忆和上下文管理

Tushare Pro 是什么?

Tushare Pro 是中国领先的金融数据平台,提供:

  • 📈 股票、基金、期货、债券行情数据
  • 📊 财务报表、业绩预测
  • 💰 资金流向、龙虎榜
  • 🌍 宏观经济、行业数据

积分系统:

  • 注册赠送初始积分
  • 每日签到获取积分
  • 不同 API 调用消耗不同积分

环境搭建

1. 安装 OpenClaw

# 使用 npm 安装
npm install -g openclaw
​
# 验证安装
openclaw --version

2. 配置工作空间

# 初始化工作空间
openclaw setup
​
# 工作空间默认位置:
# Windows: C:\Users<用户名>.openclaw\workspace
# macOS/Linux: ~/.openclaw/workspace

3. 安装 Tushare 技能

方法 A:从 ClawHub 安装(推荐)
npx clawhub@latest install tushare-data
方法 B:从 GitHub 手动安装
# 克隆技能到 workspace 的 skills 目录
git clone https://github.com/DayDreammy/tushare-openclaw-skill.git \
  ~/.openclaw/workspace/skills/tushare-data

4. 获取 Tushare Token

  1. 访问 tushare.pro
  2. 注册账号并登录
  3. 进入个人中心获取 API Token
  4. 将 Token 配置到 TOOLS.md 或环境变量中
## TOOLS.md 配置示例## API Tokens### Tushare Pro
- Token: `your_token_here`
- 官网:https://tushare.pro

5. 验证安装

# 检查技能是否就绪
openclaw skills list
​
# 应该看到 tushare-data 在列表中

实战案例

案例 1:查询单只股票行情

需求: 查看贵州茅台最近的日线行情

操作步骤:

帮我查询贵州茅台 (600519.SH) 最近 10 天的日线行情

API 调用示例:

import tushare as ts
​
pro = ts.pro_api('your_token')
df = pro.daily(ts_code='600519.SH', start_date='20260220', end_date='20260306')
print(df)

输出示例:

ts_code    trade_date  open   high    low  close    vol
600519.SH  20260306   1680.0  1720.0  1675.0  1710.0  123456
600519.SH  20260305   1650.0  1690.0  1645.0  1680.0  234567
...

案例 2:筛选低估值高分红股票

需求: 找出 PE<20、PB<3、股息率>3% 的股票

筛选条件:

指标条件说明
PE< 20市盈率低于 20 倍
PB< 3市净率低于 3 倍
股息率> 3%年分红率高于 3%

API 调用:

# 获取每日基本指标
df = pro.daily_basic(trade_date='20260306', 
                     fields='ts_code,pe,pb,dv_ratio,close')

# 筛选符合条件的股票
filtered = df[(df['pe'] > 0) & (df['pe'] < 20) & 
              (df['pb'] > 0) & (df['pb'] < 3) & 
              (df['dv_ratio'] > 3)]

实战结果(2026-03-06):

  • 共筛选出 421 只 符合条件的股票

  • 推荐关注:中国中铁 (601390.SH)

    • PE: 5.25, PB: 0.47, 股息率: 4.39%
    • 20 日涨幅: +2.92%

案例 3:监控指定股票

需求: 每天自动监控四川黄金 (001337.SZ) 的收盘价

OpenClaw 定时任务配置:

{
  "name": "监控四川黄金",
  "schedule": {
    "kind": "cron",
    "expr": "0 15 * * 1-5"  // 每周一至周五 15:00(收盘后)
  },
  "payload": {
    "kind": "agentTurn",
    "message": "查询四川黄金 (001337.SZ) 今日收盘价和涨跌幅"
  },
  "delivery": {
    "mode": "announce"
  }
}

创建命令:

openclaw cron add --name "监控四川黄金" \
  --schedule "0 15 * * 1-5" \
  --message "查询四川黄金 (001337.SZ) 今日收盘价"

案例 4:财务健康度分析

需求: 分析某只股票的财务状况

查询指标:

  • 利润表(收入、净利润)
  • 资产负债表(负债率)
  • 现金流量表(经营现金流)

API 调用:

# 利润表
income = pro.income(ts_code='601390.SH', 
                    start_date='20250101', 
                    end_date='20251231')

# 资产负债表
balance = pro.balancesheet(ts_code='601390.SH',
                           start_date='20250101',
                           end_date='20251231')

# 现金流量表
cashflow = pro.cashflow(ts_code='601390.SH',
                        start_date='20250101',
                        end_date='20251231')

分析维度:

  1. 营收增长率 = (今年营收 - 去年营收) / 去年营收
  2. 净利润率 = 净利润 / 营收
  3. 资产负债率 = 总负债 / 总资产
  4. 经营现金流 / 净利润(质量指标)

进阶玩法

1. 构建股票池监控系统

### 监控股票池
- 中国中铁 (601390.SH) - 基建龙头
- 首创股份 (600008.SH) - 水务公用
- 平安银行 (000001.SZ) - 银行
- 四川黄金 (001337.SZ) - 贵金属

### 监控指标
- 日涨跌幅超过 5% 时提醒
- 成交量放大超过 50% 时提醒
- 发布重大公告时提醒

2. 技术指标计算

import pandas as pd
import numpy as np

# 计算均线
df['MA5'] = df['close'].rolling(5).mean()
df['MA10'] = df['close'].rolling(10).mean()
df['MA20'] = df['close'].rolling(20).mean()

# 计算 MACD
exp1 = df['close'].ewm(span=12, adjust=False).mean()
exp2 = df['close'].ewm(span=26, adjust=False).mean()
df['MACD'] = exp1 - exp2
df['Signal'] = df['MACD'].ewm(span=9, adjust=False).mean()

# 计算 RSI
delta = df['close'].diff()
gain = (delta.where(delta > 0, 0)).rolling(14).mean()
loss = (-delta.where(delta < 0, 0)).rolling(14).mean()
rs = gain / loss
df['RSI'] = 100 - (100 / (1 + rs))

3. 自动化报告生成

每日收盘后自动生成:

# 📊 收盘日报 - 2026-03-09

## 持仓股票表现
| 股票 | 收盘价 | 涨跌幅 | 持仓盈亏 |
|------|--------|--------|----------|
| 中国中铁 | 5.93 | +1.2% | +¥2,340 |
| 首创股份 | 3.19 | -0.5% | -¥560 |

## 市场概况
- 上证指数:3,XXX 点 (+X.X%)
- 深证成指:X,XXX 点 (+X.X%)
- 成交量:X,XXX 亿

## 明日关注
- 中国中铁:接近压力位 6.00 元
- 四川黄金:关注 55 元支撑

4. 结合新闻情感分析

# 伪代码示例
from transformers import pipeline

# 加载情感分析模型
sentiment_analyzer = pipeline("sentiment-analysis")

# 获取新闻标题
news_titles = get_stock_news('601390.SH')

# 分析情感
for title in news_titles:
    result = sentiment_analyzer(title)
    print(f"{title}: {result[0]['label']} ({result[0]['score']})")

风险与注意事项

⚠️ 投资风险

  1. 数据延迟 - Tushare 数据可能有 1-2 小时延迟
  2. 模型幻觉 - AI 可能提供错误信息,需自行核实
  3. 市场风险 - 历史数据不代表未来表现
  4. 系统风险 - 技术故障可能导致数据缺失

⚠️ 使用注意事项

  1. Token 安全

    • 不要公开分享你的 Tushare Token
    • 建议存放在环境变量或加密配置中
    • 定期更换 Token
  2. 积分管理

    • 免费用户有积分限制
    • 高频接口消耗更多积分
    • 每日签到赚积分
  3. 数据安全

    • 敏感数据不要上传到云端
    • 定期备份本地配置
    • 注意隐私保护

⚠️ 合规提醒

  • 📌 本系统仅供学习和研究使用
  • 📌 不构成投资建议,据此操作风险自担
  • 📌 投资决策请咨询持牌专业人士

总结

✅ 我们学会了什么?

  1. OpenClaw 基础 - AI 助手框架的搭建和配置
  2. Tushare API - 金融数据获取和使用
  3. 技能整合 - 将 Tushare 技能集成到 OpenClaw
  4. 实战应用 - 股票查询、筛选、监控、分析

🎯 核心价值

传统方式OpenClaw + Tushare
手动查询多个网站一句话获取数据
Excel 手工计算自动化分析
人工盯盘定时监控 + 提醒
情绪化决策数据驱动决策

🚀 下一步可以做什么?

  1. 扩展数据源 - 接入更多 API(新闻、公告、宏观数据)
  2. 策略回测 - 用历史数据验证投资策略
  3. 组合管理 - 管理多只股票的投资组合
  4. 机器学习 - 训练预测模型辅助决策

📚 学习资源


附录

OpenClaw 常用命令

# 查看技能列表
openclaw skills list

# 查看技能详情
openclaw skills info <skill-name>

# 管理定时任务
openclaw cron list
openclaw cron add --name "任务名" --schedule "0 15 * * *"

# 查看会话状态
openclaw status

# 搜索文档
openclaw docs search <关键词>

🦐 虾仁结语:

工具再强大,也只是辅助。投资的核心还是认知纪律

AI 可以帮你省时间、提供数据,但决策的责任永远在你自己

祝投资顺利,理性投资,长期主义!📈


最后更新:2026 年 3 月 9 日 如有问题,欢迎交流~ 🐑