
“
小T导读
/ TDengine Story
在不久前的“2024,我想和 TDengine 谈谈”征文活动中,我们收到了许多精彩的投稿,反映了用户与 TDengine 之间的真实故事和独特见解。今天,我们很高兴地分享此次活动的第一名作品。这篇文章详细阐述了广西多元量化科技有限公司如何利用 TDengine 构建高效的量化交易系统,提升交易效率和决策质量。通过深入分析数据库选型和数据架构设计,作者展示了 TDengine 在金融领域的强大优势和广泛应用前景。接下来让我们一同阅读,探索这一前沿技术如何推动现代金融交易的智能化与高效化。

此外,该系统还支持实时行情、AI 智选、一键配置、拆单算法、深度回测及信息实时推送服务,确保用户不错过任何重要市场动态。多元量化 App 致力于为投研者和金融机构提供全面的量化解决方案,通过先进的技术手段提升交易效率和决策质量,实现资产的稳健增长。
01
数据库选型
多元量化 App 在初始开发阶段及功能升级过程中,每次系统迭代到一定体量,数据库的性能都会成为系统的瓶颈,因此设计一个合适的数据库方案显得尤为重要。
在数据库选型方面,我们重点考虑以下几点:
1. 选择一个高效、稳定且可扩展的数据库系统,以确保大数据处理的实时性和准确性。
2. 数据模型的适应性也是选型时需要考虑的因素。多元量化 AI 策略交易系统需要实时从各交易平台提取交易行情,因此数据库应具备足够的灵活性,以适配不同类型的金融数据。选择与大数据系统需求相匹配的数据模型,可以提高数据存储和查询的效率。考虑到金融行业的特殊性和监管要求,数据的可访问性也非常重要,用户及合作方可以方便快捷地访问和查询所需数据。
3. 数据库的可扩展性对于大数据系统来说也很重要。随着系统功能的迭代,数据量的不断增长,数据库需要支持水平或垂直扩展,以适应数据量的增加,避免性能瓶颈。
4. 数据库的安全性非常关键。由于交易数据涉及敏感信息,选择具备高级安全特性的数据库可以有效保护数据不被未授权访问或泄露。
5. 成本效益分析也是数据库选型时需要考虑的。除了初始投资成本外,还需考虑维护成本、运营成本及长期可支持性。
在多元量化交易系统研发初期,我们使用的是基于 PostgreSQL 的时序数据库——TimescaleDB,它结合了传统关系型数据库的功能与时序数据存储和查询的优化。然而,随着系统和数据逐步扩展,TimescaleDB 的问题逐渐显现:
写入性能
由于量化系统数据写入存在高并发,TimescaleDB 在高吞吐量写入时出现瓶颈,同时增大了硬件系统的工作负载。
读取延时
尽管 TimescaleDB 使用了多种索引和机制来加速查询,但在需要扫描大量历史数据的回测功能中,仍然存在延迟。
空间占用
由于 TimescaleDB 是基于 PostgreSQL 实现,并且为了支持高效的时序数据管理增加了额外的数据结构,因此在存储相同数量的数据时占用更多的磁盘空间,这对每日处理海量行情数据的量化系统非常不利。
1. ClickHouse:面临的问题包括高昂的运维成本、复杂的扩展过程以及对资源的大量需求。
2. InfluxDB:擅长高效查询和存储时序数据,广泛用于监控数据和物联网行业的实时数据处理,但其集群功能尚未开源。
3. TDengine:在性能、成本和运维简易性方面表现良好,支持水平扩展,并具备高可用性。
针对行情数据的时效性需求,时序数据库是最合适的存储解决方案。通过对比,我们发现,在相同的数据集和硬件条件下,TDengine 的写入速度远超 InfluxDB。此外,TDengine 还提供丰富的数据接口支持,包括 C/C++、Java、Python、Go 和 RESTful 等,满足各种开发需求。

02
建模及应用
Tick 快照数据
1. 每日生成超过亿条记录;
2. 快照数据需长期保留,且频繁调用。
Daily 数据
1. 多子表结构,每日新增约 20 万张;
2. 数据量巨大,每秒约 6 万条数据写入;
3. 数据需长期保存。
通用特性
1. 数据格式固定,并附带时间戳;
2. 数据几乎无需更新或删除;
3. 标签列数量少且稳定;
4. 单条记录的字段数量少、数据量小。
当前,我们的业务主要面向国内的期货和期权市场,股票业务仍在研发阶段。数据库的应用分为离线业务(回测)和实时业务两部分。回测用于计算基本框架和参数范围,实时业务结合最新数据对框架进行动态调整,二者相辅相成,共同生成交易策略。
在数据写入方面,TDengine 轻松满足了上述业务需求。在数据查询方面,针对离线和在线业务,我们主要使用如下两类高频 SQL 查询。由于 TDengine 支持缓存最新数据,并采用顺序读取机制,即使在高并发查询下也毫无压力,均可实现毫秒级返回。这为我们在离线与实时数据分析中提供了坚实的技术保障。
在线查询:
SELECT last_row(*) FROM tick_CZCE_SA501;
SELECT * FROM tick_CZCE_SA501 WHERE ts < '2024-10-09 15:00:00.000' ORDER BY ts DESC LIMIT 1000;
03
实施经验分享
为确保数据的稳定高效获取,实施过程中需要重点考虑查询性能、线上数据更新和运维情况。在此过程中,我们参考了官方博客中同花顺在 TDengine 上处理类似行情数据的解决方案。
最终,我们选择了如下硬件配置来搭建数据库:双路 AMD 48 核 96 线程 CPU,128GB 内存,8TB 固态硬盘。当前系统每日负载情况如下:CPU 使用率平均约为 20%,内存使用率 20%,数据压缩率控制在 10% 以内。
TDengine 的最大优势在于处理大规模时序数据,非常适合金融行情数据(如期货、期权价格及交易记录)。这些数据的特点在于高频写入、固定查询模式,且通常基于时间范围进行聚合或分析。然而,作为一款金融应用系统,除了时序数据外,还涉及大量其他类型的数据和复杂的业务逻辑需求,因此我们仍然保留了 PostgreSQL 关系数据库,以支持多样化的数据需求。
04
结语
TDengine 在成本控制、性能表现和用户友好性方面表现出色,尤其在成本节约方面尤为突出。展望未来,我们期待 TDengine 持续优化其性能和稳定性。同时,我们将基于业务需求开展二次开发,并积极向社区分享成果,共同推动 TDengine 的进步与发展。
“
关于多元量化
广西多元量化科技有限公司成立于 2023 年,是一家专注于人工智能技术研发与应用的领先企业。其致力于将大数据与人工智能相结合,服务于金融资产管理系统。多元量化提供程序化快速交易系统、量化策略开发及植入服务,结合先进的 IT 技术与丰富的行业经验,为机构和投资者量身定制高效的量化解决方案。多元量化产品线涵盖行情分析系统、程序化智能交易系统、策略模型平台和量化资产管理平台,并提供专属定制服务,满足客户的多样化需求。
1
END
1
往期推荐
客户盘点:北微传感、青山钢铁、首自信、国电投、江河信息、寓信科技、前晨汽车、华风数据、协鑫鑫光、双合电气、路特斯、昆船电子、天合富家、红有软件、上海晶澳太阳能、极氪汽车、威士顿、树根互联、福州城建、积成电子、西电电力、中船九院、大唐水电院
Use Case:泛能网产业智能平台、电芯容量预测系统、煤矿安全生产综合管控平台、虚拟电厂运营管理平台、明阳集团能源大数据应用系统、知轮智慧轮胎系统、中国地震台网中心、中移物联智慧出行场景、搜狐基金、智光电气、黑格智能设备追踪场景、韵达订单扫描系统、顺丰大数据监控平台、车辆轨迹定位存储引擎项目、西门子轻量级数字化解决方案
技术分享:TDengine S3 存储、TDengine 流计算、TDengine 建模实战、与工业 SCADA 深度融合、TDengine 与新型电力系统、TDgpt 如何助力数据预测、Historian Connector+TDengine、长查询问题实战分享、TDengine 数据订阅、TDengine SQL 查询规则、万字长文解读怎样激活 TDengine 最高性价比
测试报告:TDengine 线性扩展能力测试、IoT 场景下 TDengine 3.0 性能对比分析报告、DevOps 场景下 TDengine 3.0 性能对比分析报告
👇 点击阅读原文,立即体验 TDgpt!




