一、技能总览
tushare-finance 是基于 Tushare Pro 深度二次开发的中国全金融市场数据引擎,专为 A 股、港股、基金、期货、债券、指数、宏观经济打造一站式、高可用、可定制的数据中台。不止是原生接口封装,更是鉴权托管、缓存加速、批量拉取、清洗标准化、增量更新、插件化指标、全生态联动的企业级数据服务。
覆盖沪深 A 股、指数、ETF、基金、期货、期权、债券、外汇、宏观 GDP/CPI/PMI、行业财务、龙虎榜、大宗、舆情等全维度数据Tushare,原生对接 OpenClaw,实现数据拉取→清洗→存储→分析→可视化→推送全链路自动化,是量化交易、金融分析、复盘研究、风控建模、金融 AI 二开的核心底座Tushare。
二、原生 Tushare 痛点 & 二开惊喜升级
(一)原生 Tushare 短板
- Token 管理繁琐:手动配置、过期重设、多账号切换麻烦Tushare。
- 调用零散碎片化:接口多、参数复杂、批量获取需写循环,代码冗余Tushare。
- 无缓存 / 限流弱:高频请求易超限、重复拉取浪费流量、无本地缓存Tushare。
- 数据需手动清洗:原始数据脏值、空值、格式不统一,二次处理成本高Tushare。
- 无增量 / 定时:全量拉取慢,无法定时增量更新、实时轮询。
- 无标准化输出:返回 DataFrame,对接 Excel / 数据库 / 可视化需适配Tushare。
- 生态孤立:难对接图表、爬虫、飞书、量化策略、本地数据库。
(二)本工具・独家二开惊喜
✅ 全局 Token 托管 + 自动续期:一次配置、永久有效,多账号切换、过期自动刷新Tushare。
✅ 极简统一接口:一行代码拿全市场数据,批量 / 多股票 / 多日期原生支持,告别循环Tushare。
✅ 多层智能缓存:内存 + 本地磁盘缓存,重复请求零消耗,自动过期清理Tushare。
✅ 全自动清洗标准化:去重、补空、格式统一、字段对齐、复权处理、风险标记Tushare。
✅ 增量 + 定时 + 实时轮询:每日 / 每分钟自动更新,只拉新增数据,毫秒级实时行情。
✅ 多格式输出:DataFrame/JSON/CSV/Excel/MySQL,一键入库、直接可视化Tushare。
✅ 插件化指标拓展:自定义技术指标(MACD/RSI/BOLL)、财务比率、行业因子。
✅ 全生态深度打通:对接图表生成、市场调研、飞书推送、量化回测、告警系统。
✅ 高可用限流 + 重试:自动限速、失败重试、断点续传,稳定 7×24 小时运行Tushare。
三、核心数据覆盖(全市场无死角)
(一)沪深 A 股(核心)
- 基础信息:股票列表、交易所、行业、上市日期、退市、曾用名Tushare。
- 行情数据:日线 / 周线 / 月线、1/5/15/30/60 分钟、Tick 逐笔、复权数据Tushare。
- 财务数据:资产负债表、利润表、现金流量表、业绩预告、分红送股、ROE / 毛利率Tushare。
- 市场行为:龙虎榜、大宗交易、融资融券、涨跌停、停牌、新股 IPOTushare。
(二)指数 / ETF / 基金
- 上证指数、深成指、沪深 300、中证 500、创业板、科创板、行业指数Tushare。
- ETF 基金、LOF、货币基金、债券基金、净值、持仓、分红。
(三)期货 / 期权 / 债券
- 国内期货(上期 / 大商 / 郑商 / 中金):日线、分钟、持仓、交割、主力合约。
- 国债、企业债、可转债、回购、利率数据。
(四)宏观 / 行业 / 舆情
- GDP、CPI、PPI、PMI、M2、汇率、利率、进出口。
- 申万 / 中信行业分类、行业财务、景气度。
- 财经新闻、公告、研报、舆情情绪、热搜。
四、核心功能模块(二开增强版)
(一)统一鉴权与连接池
- 多 Token 管理、自动负载均衡、过期自动刷新、连接池复用Tushare。
- 一键切换免费 / Pro / 企业版,权限自动适配Tushare。
(二)极简数据接口层(核心惊喜)
- 股票行情:
get_stock_data(ts_code, start, end, freq)Tushare。 - 批量股票:
get_batch_stock(codes, start, end)一次多股Tushare。 - 财务指标:
get_financial(ts_code, period)三大报表 + 指标Tushare。 - 指数行情:
get_index_data(code, start, end)Tushare。 - 期货主力:
get_future_main(exchange)自动匹配主力合约。
(三)智能缓存与增量引擎
- 本地缓存:自动缓存 30 天数据,重复调用不请求 APITushare。
- 增量更新:每日自动拉取新增行情、财务、公告。
- 定时任务:自定义周期(1min/5min/1h/1d)自动更新。
(四)数据清洗与标准化
- 自动去重、空值填充、异常值剔除、格式统一、复权计算Tushare。
- 统一字段命名:
ts_code,trade_date,open,high,low,close,vol,amountTushare。
(五)插件化指标库(二开核心)
- 技术指标:MACD、RSI、KDJ、BOLL、均线、ATR、OBV。
- 财务指标:PE、PB、PS、ROE、毛利率、净利率、资产负债率Tushare。
- 自定义插件:支持 Python 脚本编写专属因子、行业指标。
(六)批量导出与入库
- 导出 CSV/Excel/JSON,一键写入 MySQL/PostgreSQL/SQLiteTushare。
- 分库分表、自动建表、增量写入、数据备份Tushare。
(七)实时监控与异动告警
- 价格异动、涨跌停、放量、龙虎榜、大宗、业绩暴增 / 暴雷。
- 自定义告警规则,推送飞书 / 邮件 / 短信。
(八)OpenClaw 全生态联动
- 图表生成器:K 线、分时、柱状、折线、财务对比图自动生成。
- 市场调研:自动拉取金融数据做行业 / 竞品财务分析。
- 飞书包装器:行情异动、财报、每日收盘报告自动推送。
- 量化回测:数据直连策略回测、绩效分析、实盘信号。
- 数据大屏:实时行情、指数、资金流向、财务数据可视化大屏。
五、分层架构(深度二开适配)
- 接入层:Token 管理、请求路由、限流、重试、连接池Tushare。
- 缓存层:内存缓存、磁盘缓存、过期清理、增量标记Tushare。
- 接口适配层:原生 Tushare 接口封装、参数标准化、响应解析Tushare。
- 清洗标准化层:去重、补空、格式转换、复权、指标计算Tushare。
- 核心数据层:股票、指数、基金、期货、财务、宏观数据服务。
- 插件指标层:技术指标、财务因子、自定义插件容器。
- 存储导出层:数据库写入、文件导出、备份、同步Tushare。
- 任务调度层:定时更新、增量拉取、监控告警、任务队列。
- 生态对接层:OpenClaw 全系工具、第三方系统 API、可视化输出。
六、核心代码(TypeScript・OpenClaw 原生)
typescript
运行
import fs from "fs-extra";
import path from "path";
import { Skill, Context } from "openclaw";
const TushareCore = require("./tushare-core");
const CacheManager = require("./cache");
const TaskScheduler = require("./scheduler");
// 全局配置
const TUSHARE_CONFIG = {
rootDir: "./claw-data/tushare-finance",
cacheDir: "./claw-data/tushare-finance/cache",
dataDir: "./claw-data/tushare-finance/data",
logDir: "./claw-data/tushare-finance/logs",
token: "", // 填入你的Tushare Token
autoRefreshToken: true,
cacheDays: 30,
rateLimit: 200, // 每分钟请求上限
autoClean: true
};
// 初始化
async function initService() {
await fs.ensureDir(TUSHARE_CONFIG.rootDir);
await fs.ensureDir(TUSHARE_CONFIG.cacheDir);
await fs.ensureDir(TUSHARE_CONFIG.dataDir);
await fs.ensureDir(TUSHARE_CONFIG.logDir);
TushareCore.init(TUSHARE_CONFIG);
CacheManager.init(TUSHARE_CONFIG);
TaskScheduler.init(TUSHARE_CONFIG);
}
// 日志
function writeLog(task: string, target: string, info: string) {
const logPath = path.join(TUSHARE_CONFIG.logDir, `${new Date().toLocaleDateString()}.log`);
fs.appendFileSync(logPath, `[${new Date().toISOString()}] 任务:${task} | 目标:${target} | ${info}\n`);
}
export const TushareFinanceSkill: Skill = {
name: "tushare-finance",
description: "tushare-finance 中国金融数据超级网关|A股/期货/基金/财务/宏观/实时行情/二开量化中台",
patterns: [
"股票行情{code}{start}{end}{freq}",
"批量股票{codes}{start}{end}",
"财务数据{code}{period}",
"指数行情{code}{start}{end}",
"期货主力{exchange}",
"定时更新{freq}",
"加载指标{name}",
"导出数据{type}{path}"
],
handler: async (ctx: Context) => {
const { match, pattern, reply } = ctx;
await initService();
try {
// 股票行情
if (pattern === "股票行情{code}{start}{end}{freq}") {
reply(`📈 获取 ${match.code} ${match.freq} 行情:${match.start}-${match.end}`);
const df = await TushareCore.getStockData(match.code, match.start, match.end, match.freq);
writeLog("股票行情", match.code, `数据行数:${df.length}`);
return reply(`✅ 行情获取成功,共${df.length}条数据`);
}
// 批量股票
if (pattern === "批量股票{codes}{start}{end}") {
reply(`📊 批量拉取股票:${match.codes}`);
const data = await TushareCore.getBatchStock(match.codes.split(","), match.start, match.end);
writeLog("批量股票", match.codes, "获取完成");
return reply(`✅ 批量数据获取成功`);
}
// 财务数据
if (pattern === "财务数据{code}{period}") {
reply(`📋 获取 ${match.code} 财务数据:${match.period}`);
const fin = await TushareCore.getFinancial(match.code, match.period);
writeLog("财务数据", match.code, "获取完成");
return reply(`✅ 财务数据获取成功`);
}
// 定时更新
if (pattern === "定时更新{freq}") {
reply(`⏰ 开启${match.freq}自动增量更新`);
TaskScheduler.addUpdateTask(match.freq);
writeLog("定时更新", match.freq, "已启动");
return reply(`✅ 定时更新已开启`);
}
// 加载指标
if (pattern === "加载指标{name}") {
reply(`🧩 加载技术指标:${match.name}`);
TushareCore.loadIndicator(match.name);
writeLog("指标加载", match.name, "成功");
return reply(`✅ 指标已启用`);
}
} catch (e: any) {
writeLog("异常", match?.code || "", e.message);
return reply(`❌ 失败:${e.message}`);
}
return reply(`💡 指令:
股票行情+代码+开始+结束+频率 | 批量股票+代码(逗号)+时间
财务数据+代码+季度/年度 | 指数行情+代码+时间
期货主力+交易所 | 定时更新+1min/5min/1h/1d
加载指标+MACD/RSI/BOLL | 导出数据+csv/excel+路径`);
}
};
七、常用指令
plaintext
# 行情
股票行情 600519.SH 20260101 20260614 daily
股票行情 000001.SZ 20260601 20260614 5min
# 批量
批量股票 600519.SH,000001.SZ,600036.SH 20260101 20260614
# 财务
财务数据 600519.SH 2026Q1
财务数据 600519.SH 2025年报
# 指数/期货
指数行情 000001.SH 20260101 20260614
期货主力 SHFE
# 任务/指标
定时更新 1min
加载指标 MACD
导出数据 csv D:/finance/stock_data.csv
八、落地场景
场景 1:量化交易数据中台
稳定获取 A 股全市场数据,自动清洗、定时更新、指标计算,对接回测 / 实盘策略。
场景 2:金融分析师工具
一键拉取股票 / 行业财务、行情、估值,自动生成图表 + 报告,大幅提升效率。
场景 3:实盘监控与告警
7×24 小时监控持仓、指数、板块,异动自动提醒,规避风险。
场景 4:金融数据大屏
实时展示 A 股行情、资金流向、龙虎榜、财务排行,企业级可视化大屏。
场景 5:二次开发金融产品
插件化架构,自定义指标、因子、数据源,快速搭建选股、估值、风控系统。
九、二次开发惊喜拓展
- AI 量化选股:接入大模型,自动选股、生成策略、回测优化。
- 多因子模型:自定义财务、量价、舆情因子,构建量化打分体系。
- 跨境金融数据:拓展港股、美股、新加坡、日本市场,全球资产数据中台。
- 实时数据流 API:封装为WebSocket 实时行情 API,供前端 / 策略订阅。
- 私有化金融云:本地部署,全市场数据私有云,安全可控、高并发Tushare。
- 智能研报生成:自动抓取数据→分析→生成PDF 研报 + PPT,一键输出。