① 炒股软件使用的数据库类型和架构详解
炒股软件通常使用的数据库类型主要包括关系数据库和非关系数据库,其架构则可能涉及单机架构、集群架构和分布式架构。
一、数据库类型
关系数据库:
非关系数据库:
二、架构类型
单机架构:
集群架构:
分布式架构:
综上所述,炒股软件在选择数据库类型和架构时,需要根据自身的业务需求和数据特点进行综合考虑。
② 200倍速!基于HDF5的量化数据存储方案
基于 HDF5 的量化数据存储方案,是个人交易者最合适的入门选择。其优越性在于,HDF5 可以高效处理大量数据。Kesheng Wu 等人的研究显示,处理 2007 年至 2012 年间 30 亿条期货交易数据,CSV 文件需要 142 秒,转换为 HDF5 后仅需 0.4 秒,提升达 200 多倍。
HDF5 是一种设计用于存储和处理大容量科学数据的文件格式及库,最早由 NCSA 研发,现由 HDF Group 维护。HDF5 支持科学数据集和群组两种类型。作为量化交易者,常使用 h5py 库进行 HDF5 文件操作。
使用 h5py 可以将行情数据按照周期频率存储于不同群组内,利用证券代码作为数据集的键。h5py 的基本操作包括:使用群组表示数据结构,数据集表示数组,API 操作简单。为实现每日更新数据,需将从 omicron 获取的行情数据,将 np.datetime64 类型转换为 epoch 时间保存。新增数据通过切片语法追加,使用 h5py 的 get、create_dataset 和 resize 方法。
对于存储结构,查询横截面数据时速度较慢,可以考虑存储证券代码以加快查询。但这种方法会增加数据集大小,影响查询速度。设计时应综合考虑两种场景的使用占比。
如果感觉 h5py 性能不足,可尝试 Parallel HDF5,通过指定在 pip 安装时使用源码编译,以获得并行计算能力。官方文档及教程常避谈技术的缺点,但重要的是全面了解技术,避免选错技术导致浪费时间。解决性能问题的方法包括数据切分、使用 bitmap 索引、或结合 modin 和 parquet 等技术。
使用 HDF5 存储量化数据的优势包括读写速度快、支持大容量数据、灵活的数据结构等。HDF5 对于个人交易者而言,是一种高效、可靠的存储方案。对于需要处理分钟级数据并保持高效查询速度的情况,pyarrow + parquet 可能是更好的选择,将在后续文章中介绍。
③ 同花顺每日行情数据下载完成后存储文件夹
同花顺每日行情数据下载存储方法是:
1、打开股票软件;
2、点击上方【系统】,在下拉菜单中选择【数据导出】;
3、选择下载格式:【格式文本文件】、【Excel文件】、【图像文件】,选定后点击【沪深高级导出】;
4、选择【日线导出】,在【导出目录】中选择存储文件夹,自己拟定文件名;
5、点击【添加品种】,选择要导出的数据,点击【确定】,关闭该页面,点击【开始导出】即可。