用OpenClaw搭建自己的量化交易系统3:数据本地化skill上线了
量化交易有几道硬门槛:历史/实时数据源、程序化交易策略、交易接口。
本文介绍实际完成量化的第一步,用小龙虾skill——stock-qdata实现股票交易数据的下载和保存,希望对大家有帮助。

从“数据乞丐”到“本地土豪”,只差一个skill的距离。
数据是量化交易系统的食粮。获取交易数据是开发量化交易系统的第一步。
使用Openclaw搭建量化交易系统,若没有稳定、干净的交易数据,实现数据本地化,后续的策略回测和交易触发就无从谈起。
现在网上很多skill是利用公有平台的数据源,或云端数据源,延时大,数据缺失,传输不稳定,下载限流,使用体验非常不友好。
为此,我开发了基于QMT智能交易终端的:本地数据存储skill——stock-qdata
现已支持A股全市场日线、分钟线数据本地化,季度财务数据同步提供,全程不花一分钱,便捷高效。
免费分享给大家,欢迎大家下载使用。
一、本地数据:量化系统的命根子
1.必要性:
不少skill和app,使用云端数据,觉得“上云”就高级了。结果呢?每天爬起来第一件事就是检查API有没有断联;每个月看到账单,心率比止损线还高; 更别提数据源抽风,推送了一堆“股价-100块”的奇葩数值……
那一刻你才能深刻理解了什么叫数据污染,模型陪葬。 做真正的量化交易,数据必须实现本地化。
数据回测:用历史数据模拟未来。如果历史数据是别人给的、随时可能断供的,如果数据集有缺失的数据,你的整个策略就像建在流沙上的城堡——好看,不中用。
云端数据太拉跨:网络数据传输时间成本太高,即便是免费的,几百兆的数据,怎么可能想用就用,速度慢得让你怀疑人生。 本地化之后,数据存硬盘,想怎么回测就怎么回测,凌晨三点灵光乍现?爬起来跑个十年数据,10分钟就能搞定。
2.经济性:
某云数据服务商,使用数据需要会员,日频K线包月199元,分钟级数据包月699元,高频tick?对不起,请按次收费,一次0.1元。
我的策略每天要扫5000只股票的分钟线…… 一天500块,一个月15000。这哪是做量化?这是给数据商打工。
本地化之后呢?QMT免费下载数据,电费忽略不计,唯一的开销就是需要多买几罐红牛。
3.准确性:
云端数据出bug,你是最后一个知道的。有一次我发现某股票某天“开盘价-1元”,找客服,对方说“哦,那天的数据源有点问题,已经修复了”。修复了?我的回测结果已经被污染了,策略参数都调歪了,只能全部重新算一次。
本地数据,自己下载、自己校验、自己说了算。

二、QMT下载数据:专业接口,强大便捷
QMT(迅投智能策略交易终端)提供了很强大的API,能轻松实现数据本地化。
1.API函数实现数据下载
QMT自带一套数据接口,其中最常用的就是 xtdata.get_market_data_ex。这玩意儿长这样:
python
from xtquant import xtdata
# 下载平安银行2024年的日线数据
data = xtdata.get_market_data_ex(
stock_list=['000001.SZ'],
period='1d',
start_time='20240101',
end_time='20241231',
field_list=['open', 'high', 'low', 'close', 'volume']
)
QMT的数据管理机制有个特点:你不主动存,它就只留在QMT本地数据库缓存里。你是无法直接使用的,所以必须配合本地存储方案。
2.本地存储:数据库 vs 文件,我选后者
小型数据库方案(MySQL、PostgreSQL、MongoDB):专业,支持复杂查询,事务安全。 但——你回测的时候不需要复杂的查询,大多数时候只是按时间顺序读数据。杀鸡用牛刀,还得多维护一个数据库,麻烦。
数据库访问有开销,对非计算机专业人员很不友好,能熟练使用sql操作数据库的小伙伴很少,还是越简单越好。
文件方案(CSV、Parquet、HDF5):轻量,读完就能用。我选了CSV格式,可直接使用excel查看,用pandas读取方便,跑起来飞快。
为了回测方便,回测框架通常一次加载一整个股票的历史数据到DataFrame,文件存啥样,读进来就啥样。 在实现交易条件触发时,把必要的历史数据读进内存里,实时更新,确保交易因子的计算不被外围设备读取而滞后。这时候数据库的必要性就不是那么大了。
普通投资者的算法和因子不会太复杂,回测的时间和条件也不会太复杂,使用文件来管理数据基本上能够满足使用要求。
如果要搞个很专业的量化交易系统,那就不是一个人能干得下来的事情了,需要一个设计团队,部分内容可以外包。到时候再切换到数据库+cache+全硬件的高端模式。
数据库就像娶了个管家婆,啥都给你整理得井井有条,但你每次拿个东西都得打报告;文件方案就像自己随手放的袜子,虽然乱,但你知道在哪个抽屉——而且没人管你。
三、OpenClaw数据本地化:stock-qdata
OpenClaw的核心是“Skill”——你可以把它理解为给AI助手定制的插件,这个专门负责下载QMT数据的Skill,就叫它 stock-qdata。
1.Stock-qdata的安装
clawhub install stock-qdata

2.安装依赖包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r .requirements.txt

3.配置config.json
安装好qmt,如果没有QMT智能交易终端的朋友可以私信我,可以给大家提供全网最快最便利的渠道。
找到qmt终端执行文件所在的目录,让skill知道它在哪里,可以帮你自动启动智能交易终端。

将QMT的目录和你希望数据下载的目录填入config.json配置文件中的对应位置。
你安装stock-qdata的目录通常是:
C:Users你的用户名skillsstock-qdataconfig.json

4.在控制台运行:
# 注意替换成你的实际安装地址
cd C:UsersAdministratorskillsstock-qdata
# 下载近200天的日线数据 网页模式
python main.py --period=1d --days=200 --mode=web

首次使用,可以对小龙虾说“使用stock-qdata 使用stock-qdata 获取 近200交易日 日线数据 网页模式”
由于clawhub只能上传文本文件,所以网页的字体和符号文件都无法随skill一并上传,所以网页很多符号无法正确显示,需要补齐文件的小伙伴可以私信我,也可以看README.MD自行领取。
favicon.ico,fa-brands-400.woff2,fa-