SPL 量化 获取数据

news2025/4/25 10:26:56

下载数据

我们将股票数据分享在百度网盘上供下载,每工作日更新。

目前可供下载的数据有 A 股的日 K 线数据、股票代码列表和上市公司的基本面数据

下载链接:

百度网盘

下载数据的文件格式为 btx,是 SPL 的特有二进制格式。

btx 称为集文件,是一种简单、开放的二进制文件格式,它覆盖了 csv 文件的所有功能,并且性能要比 csv 文件快 4-5 倍。

SPL 可以支持 btx 文件的操作计算,也支持各种数据源与 btx 之间的相互转换。

股票日 K 线

文件名: yyyy.trade.btx。

yyyy.trade.btx 文件为yyyy当年的 A 股日线行情;

每天晚上 7、8 点左右会把当天的 A 股日线归并到当年的yyyy.trade.btx 文件中

数据示例:

..

数据结构:

字段名字段类型含义
codeInteger股票代码
tdateDate日期
openDouble开盘价
closeDouble收盘价
lowDouble最低价
highDouble最高价
volumeLong成交量
amountDouble成交金额
pfactorDouble当日价格复权因子

注意,股票代码用了整数,而不是常规的字符串,这里 1 表示 000001,2 表示 000002…以此类推。整数的运算性能会远高于字符串。

指数日 K 线

文件名: yyyyMMdd.index.btx, yyyy.index.btx。

yyyyMMdd.index.btx 文件为yyyyMMdd日之前的指数日线行情;

yyyy.index.btx 文件为yyyy当年的指数日线行情;

每天晚上 7、8 点左右会把当天的指数日线归并到当年的yyyy.index.btx 文件中

数据示例:

..

数据结构:

字段名字段类型含义
codeInteger股票代码
tdateDate日期
openDouble开盘价
closeDouble收盘价
lowDouble最低价
highDouble最高价
volumeLong成交量
amountDouble成交金额
pfactorDouble当日价格修正因子

注意,股票代码用了整数,而不是常规的字符串,这里 1 表示 000001,2 表示 000002…以此类推。整数的运算性能会远高于字符串。

公司基本面

文件名称:company.btx。

提供 2007 年至今的财务数据,每季度一条。

数据示例:

..

数据结构:

字段名字段类型含义
codeInteger股票代码
statdateDate财报统计的季度的最后一天
totalshareLong总股本
liqashareLong流通股本
netprofitDouble净利润 (元)
mbrevenueDouble主营营业收入 (元)

未来会再补充更多信息

股票代码列表

文件名称:stock.btx。

提供股票基础信息,包括股票代码、名称、所属行业、上市日期、退市日期等。

数据示例:

..

数据结构:

字段名字段类型含义
codeInteger股票代码
nameString股票名
exchangesString中国三大交易所的简写
industryString所属行业
ipodateDate上市日期
outdateDate退市日期

指数代码列表

文件名称:indexlist.csv。

提供指数基础信息,包括指数代码、名称、上市日期、退市日期等。

数据示例:

..

数据结构:

字段名字段类型含义
codeInteger股票代码
nameString股票名
exchangesString中国三大交易所的简写
ipodateDate上市日期
outdateDate退市日期

数据读取

股票代码列表

读取股票列表可以用 T 函数全部读入。

A
1=T("stock.btx")

运行效果:

..

指数代码列表

A
1=file("indexlist.csv").import@tc()

运行效果:

..

股票日 K 线

将下载的所有yyyy.trade.btx 文件放到同一路径下。

读数脚本代码如下:

A
1=end=ifn(end,now())
2=to(year(start),year(end)).(file(~/".trade.btx")).select(~.exists())
3=if(cl, A2.( ~.iselect@b(cl,code)), A2.(~.cursor@b()) )
4=A3.merge(code,tdate).select(tdate>=start && tdate<=end)
5return A4.fetch@x()

脚本参数:

cl股票代码序列,如 [600000,600001];可以为单值,如 600000;填空表示全读
start开始日期,如 2024-01-01
end截止日期,如 2024-12-31。end 为空时截止到当前日期

脚本保存为 loadkday.splx,此脚本可返回一支或多支股票任意时间段的 K 线数据。

如读取一支股票的 k 线数据:

A
1600000股票代码
22024-01-01开始日期
32024-12-31截止日期
4=call("loadkday.splx",A1,A2,A3)调用脚本,返回 600000 股票 2024 年数据
5=call("loadkday.splx",A1,A2)end为空,截止到当前日期

运行效果:

..

读取多支股票数据,比如读取所有银行股或全部 A 股:

A
1=T("stock.btx").select(industry=="J66货币金融服务 ").(code)读取银行股票代码列表
22024-01-01开始日期
32024-01-10截止日期
4=call("loadkday.splx",A1,A2,A3)调用脚本,返回银行股 2024 年数据
5=call("loadkday.splx",A1,A2)end为空,截止到当前日期
6=call("loadkday.splx",,A2,A3)cl为空,读取全部 A 股

运行效果:

..

对于经常使用的脚本,也可以用 register 登记成一个函数来使用。

代码示例:

A
1=register("loadkday","loadkday.splx")将脚本登记为函数
2=T("stock.btx").select(industry=="J66货币金融服务 ").(code)读取银行股票代码列表
32024-01-01开始日期
42024-01-10截止日期
5=loadkday(A2,A3,A4)返回开始到截止日期的数据
6=loadkday(A2,A3)end为空,截止到当前日期
7=loadkday(,A3,A4)cl为空,读取全部股票

运行效果同上。

指数日 K 线

将下载的yyyy.index.btx 和yyyyMMdd.index.btx 文件放到同一路径下。

读数脚本代码如下:

A
1=year(now())
2=end=ifn(end,now())
3=if(year(start)<A1,(A1-1)*10000+1231)|if(year(end)==A1,A1)
4=A3.(file(~/".index.btx")).select(~.exists())
5=if(cl, A4.( ~.iselect@b(cl,code)), A4.(~.cursor@b()) )
6=A5.merge(code,tdate).select(tdate>=start && tdate<=end)
7return A6.fetch@x()

脚本参数:

cl指数代码序列,如 [1,2];可以为单值,如 1;填空表示全读
start开始日期,如 2024-01-01
end截止日期,如 2024-12-31。end 为空时截止到当前日期

脚本保存为 loadkindex.splx,此脚本可返回一支或多支指数任意时间段的 K 线数据。

如读取一支指数的 k 线数据:

A
11指数代码
22024-01-01开始日期
32024-12-31截止日期
4=call("loadkindex.splx",A1,A2,A3)调用脚本,返回 000001 指数 2024 年数据
5=call("loadkindex.splx",A1,A2)end为空,截止到当前日期

运行效果:

..

读取多个指数数据:

A
1=[399001,399002]指数代码列表
22025-01-01开始日期
32025-01-10截止日期
4=call("loadkindex.splx",A1,A2,A3)调用脚本,返回多个指数
5=call("loadkindex.splx",A1,A2)end为空,截止到当前日期
6=call("loadkindex.splx",,A2,A3)cl为空,读取全部指数

运行效果:

..

对于经常使用的脚本,也可以用 register 登记成一个函数来使用。

代码示例:

A
1=register("loadkindex","loadkindex.splx")将脚本登记为函数
2=[399001,399002]指数列表
32025-01-01开始日期
42025-01-10截止日期
5=loadkindex(A2,A3,A4)返回开始到截止日期的数据
6=loadkindex(A2,A3)end为空,截止到当前日期
7=loadkindex(,A3,A4)cl为空,读取全部指数

运行效果同上。

基本面

(1) 直接读入全部 btx 文件。

当数据文件不大时,可以直接全部读入内存。

代码示例:

AB
1=T("company.btx")读入基本面数据
2=A1.select(code==600000 && statdate>=date("2024-01-01") && statdate<=date("2024-12-31"))选出 600000 股票 2024 年数据

运行效果:

A1

..

A2

..

(2) 只读取某些股票的基本面

也可以用脚本方式只读取某些股票的基本数据。

脚本代码:

A
1=file("company.btx")
2=if(cl, A1.iselect@b(cl,code), A1.cursor@b())
3=end=ifn(end,now())
4=A2.select(statdate>=start &&statdate<=end)
5=A4.fetch()
6>A2.close()
7return A5

脚本参数:

cl股票代码序列,如 [600000,600001];可以为单值,如 600000;也可为空表示全读
start开始日期,如 2024-01-01
end截止日期,如 2024-12-31。end 为空时截止到当前日期

脚本保存为 loadcompany.splx,此脚本可返回一支或多支股票任意时间段的基本面。

如读取一支股票的基本面:

AB
1600000股票代码
22020-01-01开始日期
32020-12-31截止日期
4=call("loadcompany.splx",A1,A2,A3)调用脚本,返回 2020 年基本面
5=call("loadcompany.splx",A1,A2)end为空,截止到当前日期

运行效果:

..

读入多支股票的基本面,如读取所有银行股或全部 A 股。

AB
1=T("stock.btx").select(industry=="J66货币金融服务 ").(code)股票代码序列
22020-01-01开始日期
32020-12-31截止日期
4=call("loadcompany.splx",A1,A2,A3)调用脚本,返回银行股 2020 年基本面
5=call("loadcompany.splx",A1,A2)end为空,截止到当前日期
6=call("loadcompany.splx",,A2,A3)cl为空,读取全部股票

免费下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust 学习笔记:安装 Rust

Rust 学习笔记&#xff1a;安装 Rust Rust 学习笔记&#xff1a;安装 Rust在 Windows 上安装 Rust命令行创建 Rust 项目在 Mac/Linux 上安装 Rust一些命令升级卸载cargo -hrustc -h 安装 RustRoverrust-analyzer Rust 学习笔记&#xff1a;安装 Rust 在 Windows 上安装 Rust …

编译 C++ 报错“找不到 g++ 编译器”的终极解决方案(含 Windows/Linux/macOS)

前言 在使用终端编译 C 程序时&#xff0c;报错&#xff1a; 或类似提示&#xff0c;意味着你的系统尚未正确安装或配置 g 编译器。本篇将从零手把手教你在 Windows / Linux / macOS 下安装并配置 g&#xff0c;适用于新手或 C 入门阶段的你。 什么是 g&#xff1f; g 是 GN…

html单页业务介绍源码

源码介绍 html单页业务介绍源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码

单体OJ项目

单体项目版本、微服务版还需我再钻研钻研。 项目介绍 在系统前台&#xff0c;管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。 在系统后端&#xff0c;能够根据管理员设定的题目测试用例在代码沙箱 中对代码进行编译、运行、判断输出是否正确。 其…

豆包桌面版 1.47.4 可做浏览器,免安装绿色版

自己动手升级更新办法&#xff1a; 下载新版本后安装&#xff0c;把 C:\Users\用户名\AppData\Local\Doubao\Application 文件夹的文件&#xff0c;拷贝替换 DoubaoPortable\App\Doubao 文件夹的文件&#xff0c;就升级成功了。 再把安装的豆包彻底卸载就可以。 桌面版比网页版…

【MySQL】索引失效问题详解

目录 1. 最左前缀原则 2. 条件左边有函数或运算 3. 隐式类型转换 4. LIKE 模糊查询以 % 开头 5、MySQL 优化器选择全表扫描 ⭐对 in 关键字特别说明⭐ &#xff08;1&#xff09;列表太大时&#xff0c;走全表扫描了 &#xff08;2&#xff09;隐式类型转换 &#xff…

优选算法第十讲:字符串

优选算法第十讲&#xff1a;字符串 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 2.最长回文子串 3.二进制求和 4.字符串相乘

【扣子Coze 智能体案例四】五行八卦占卜智能体

目录 一、意图识别 二、时间格式转换 三、八字转换 四、八字提取 五、八字提取2 六、数据汇总 七、统计五行占比 八、雷达图生成 九、表格生成 十、AI占卜 十一、结束节点 一、意图识别 用户输入的信息包含各种时间格式的年月日时 用户输入的信息包含天干地支八字…

5.学习笔记-SpringMVC(P61-P70)

SpringMVC-SSM整合-接口测试 (1)业务层接口使用junit接口做测试 (2)表现层用postman做接口测试 (3)事务处理— 1&#xff09;在SpringConfig.java&#xff0c;开启注解&#xff0c;是事务驱动 2&#xff09;配置事务管理器&#xff08;因为事务管理器是要配置数据源对象&…

【专题刷题】二分查找(一):深度解刨二分思想和二分模板

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…

硬核解析!电动汽车能耗预测与续驶里程的关键技术研究

引言 随着电动汽车的普及,续航里程和能耗表现成为用户关注的核心痛点。然而,表显续航与实际续航的差异、低温环境下的电量衰减等问题始终困扰着消费者。本文基于《电动汽车能耗预测与续驶里程研究》的实验成果,深入剖析电动汽车能耗预测的核心模型、多环境测试方法及续航里…

【OceanBase相关】01-OceanBase数据库部署实践

文章目录 一、前言1、介绍说明2、部署方案二、部署说明1、环境准备2、软件安装2.1、安装OAT2.2、安装OCP3、软件部署三、集群管理1、MySQL租户管理四、Q&A1、OBServer 服务器重启后 observer 进程未能自动启动1.1、问题说明1.2、解决措施2、ERROR 1235 (0A000) at line 1: …

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别

详细讲解 QMutex 线程锁和 QMutexLocker 自动锁的区别 下面我们详细拆解 Qt 中用于线程同步的两个核心类&#xff1a;QMutex 和 QMutexLocker。 &#x1f9f1; 一、什么是 QMutex&#xff1f; QMutex 是 Qt 中的互斥锁&#xff08;mutex&#xff09;类&#xff0c;用于防止多个…

PCB 过孔铜厚的深入指南

***前言&#xff1a;在上一期的文章中介绍了PCB制造的工艺流程&#xff0c;但仍然想在过孔的铜厚和PCB的过孔厚径比两个方面再深入介绍。 PCB铜厚的定义 电路中铜的厚度以盎司(oz)**表示。那么&#xff0c;为什么用重量单位来表示厚度呢? 盎司(oz)的定义 将1盎司(28.35 克)的铜…

Spring Security认证流程

认证是Spring Security的核心功能之一&#xff0c;Spring Security所提供的认证可以更好地保护系统的隐私数据与资源&#xff0c;只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置&#xff0c;开发者也可以根据自己实际的环境进行自定义身…

TXPOLARITY/RXPOLARITY设置

TXPOLARITY/RXPOLARITY&#xff1a;该端口用来反向输出数据的极性。 0&#xff1a;表示不反向。TXP是正&#xff0c;TXN是负&#xff1b; 1&#xff1a;标识反向。TXP是负&#xff0c;TXN是正&#xff1b; 如下图所示&#xff1a;

2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)

今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题&#xff0c;可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…

优考试V4.20机构版【可注册】

优考试V4.20机构版&#xff0c;可通过注册机完美激活。 优考试机构版‌是一个功能强大的在线考试系统&#xff0c;适用于各种 考试场景&#xff0c;包括在线考试、培训、学习等多种用途。以下是优考试机构版的主要功能和特点&#xff1a; ‌多层级管理‌&#xff1a;优考试机…

携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放

在4月23日“世界读书日”之际&#xff0c;阿里妈妈联合国家图书馆文创正式发布了三条AI创意视频。 该系列视频以“千年文脉典籍奇谈”为主题&#xff0c;借助阿里妈妈的AIGC能力&#xff0c;以AI链接古今&#xff0c;打开阅读典籍新方式&#xff0c;引起不少人强烈兴趣。据悉&…

MMsegmentation第一弹-(认识与安装)

前言 在刚接触MMsegmentation的时候&#xff0c;我是怎么看都看不明白&#xff0c;那个过程实在是太痛苦了&#xff0c;所以我当时就想着一定要把这个写成文章&#xff0c;希望后来者能很轻松的就上手。该系列文章不涉及框架的底层原理&#xff0c;仅以一个使用者的身份带领读…