秒级响应与低成本实现!TDengine 助力多元量化交易系统的背后故事 | 征文

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 在不久前的“2024,我想和 TDengine 谈谈”征文活动中,我们收到了许多精彩的投稿,反映了用户与 TDengine 之间的真实故事和独特见解。今天,我们很高兴地分享此次活动的第一名作品。这篇文章详细阐述了广西多元量化科技有限公司如何利用 TDengine 构建高效的量化交易系统,提升交易效率和决策质量。通过深入分析数据库选型和数据架构设计,作者展示了 TDengine 在金融领域的强大优势和广泛应用前景。接下来让我们一同阅读,探索这一前沿技术如何推动现代金融交易的智能化与高效化。

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

我们的核心产品是多元量化 App,旨在以客户的舒心与安心为本,共同创造智能交易的新体验,让每个人都能轻松玩转 AI 量化。该 App 面向各层次用户,支持手机和电脑端使用,确保随时随地享受便捷、高效的量化交易体验。核心优势在于强大的交易策略构建能力,提供零代码 AI 策略、DO 语言策略以及 Python 语言策略,满足不同用户的需求。

此外,该系统还支持实时行情、AI 智选、一键配置、拆单算法、深度回测及信息实时推送服务,确保用户不错过任何重要市场动态。多元量化 App致力于为投研者和金融机构提供全面的量化解决方案,通过先进的技术手段提升交易效率和决策质量,实现资产的稳健增长。

数据库选型

多元量化 App 本身是一套大数据 AI 处理系统,涉及各交易平台的海量交易数据,对数据存储、处理、响应及安全等方面有极高的要求。数据库选型直接影响系统的性能、可扩展性、数据一致性和可靠性,对交易行情系统的开发至关重要。理想的数据库需要确保交易数据的快速读写,支持高并发访问,并提供必要的数据备份和恢复机制,保障数据安全。此外,考虑到交易行情系统的实时性要求,数据库还需具备高效的事务处理能力和低延迟的数据访问特性。

多元量化 App 在初始开发阶段及功能升级过程中,每次系统迭代到一定体量,数据库的性能都会成为系统的瓶颈,因此设计一个合适的数据库方案显得尤为重要。
在数据库选型方面,我们重点考虑以下几点:

  1. 选择一个高效、稳定且可扩展的数据库系统,以确保大数据处理的实时性和准确性。
  2. 数据模型的适应性也是选型时需要考虑的因素。多元量化 AI 策略交易系统需要实时从各交易平台提取交易行情,因此数据库应具备足够的灵活性,以适配不同类型的金融数据。选择与大数据系统需求相匹配的数据模型,可以提高数据存储和查询的效率。考虑到金融行业的特殊性和监管要求,数据的可访问性也非常重要,用户及合作方可以方便快捷地访问和查询所需数据。
  3. 数据库的可扩展性对于大数据系统来说也很重要。随着系统功能的迭代,数据量的不断增长,数据库需要支持水平或垂直扩展,以适应数据量的增加,避免性能瓶颈。
  4. 数据库的安全性非常关键。由于交易数据涉及敏感信息,选择具备高级安全特性的数据库可以有效保护数据不被未授权访问或泄露。
  5. 成本效益分析也是数据库选型时需要考虑的。除了初始投资成本外,还需考虑维护成本、运营成本及长期可支持性。

在多元量化交易系统研发初期,我们使用的是基于 PostgreSQL 的时序数据库——TimescaleDB,它结合了传统关系型数据库的功能与时序数据存储和查询的优化。然而,随着系统和数据逐步扩展,TimescaleDB 的问题逐渐显现:

  • 写入性能:由于量化系统数据写入存在高并发,TimescaleDB 在高吞吐量写入时出现瓶颈,同时增大了硬件系统的工作负载。
  • 读取延时:尽管 TimescaleDB 使用了多种索引和机制来加速查询,但在需要扫描大量历史数据的回测功能中,仍然存在延迟。
  • 空间占用:由于 TimescaleDB 是基于 PostgreSQL 实现,并且为了支持高效的时序数据管理增加了额外的数据结构,因此在存储相同数量的数据时占用更多的磁盘空间,这对每日处理海量行情数据的量化系统非常不利。

根据行情模块技术开发和拓展需求,以及后期运营拓展的考量,我们需要对整个时序数据库(Time Series Database)进行迭代,通过对目前常用的数据库类型进行评判和分析:

  • ClickHouse:面临的问题包括高昂的运维成本、复杂的扩展过程以及对资源的大量需求。
  • InfluxDB:擅长高效查询和存储时序数据,广泛用于监控数据和物联网行业的实时数据处理,但其集群功能尚未开源。
  • TDengine:在性能、成本和运维简易性方面表现良好,支持水平扩展,并具备高可用性。

针对行情数据的时效性需求,时序数据库是最合适的存储解决方案。通过对比,我们发现,在相同的数据集和硬件条件下,TDengine 的写入速度远超 InfluxDB。此外,TDengine 还提供丰富的数据接口支持,包括 C/C++、Java、Python、Go 和 RESTful 等,满足各种开发需求。

image.png
因此,我们最终选择了 TDengine。

建模及应用

多元量化 AI 策略交易系统需从多个交易所中提取大量行情数据。数据提取呈现以下特点:

Tick 快照数据:

  1. 每日生成超过亿条记录;
  2. 快照数据需长期保留,且频繁调用。

Daily数据:

  1. 多子表结构,每日新增约 20 万张;
  2. 数据量巨大,每秒约 6 万条数据写入;
  3. 数据需长期保存。

通用特性:

  • 数据格式固定,并附带时间戳;
  • 数据几乎无需更新或删除;
  • 标签列数量少且稳定;
  • 单条记录的字段数量少、数据量小。

基于 TDengine 推荐的数据架构,我们将针对不同特性的数据分别构建独立的数据库,并根据各自特性进行参数优化。在每个数据库中,根据数据品种(如期货、期权等)创建超级表,并将标的实体的标签信息直接作为超级表的标签字段,以此为不同品种的数据创建子表。此数据模型的构建方式高度契合了我们的数据特性和应用场景。

当前,我们的业务主要面向国内的期货和期权市场,股票业务仍在研发阶段。数据库的应用分为离线业务(回测)和实时业务两部分。回测用于计算基本框架和参数范围,实时业务结合最新数据对框架进行动态调整,二者相辅相成,共同生成交易策略。

在数据写入方面,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;

实施经验分享

为确保数据的稳定高效获取,实施过程中需要重点考虑查询性能、线上数据更新和运维情况。在此过程中,我们参考了官方博客中同花顺在 TDengine 上处理类似行情数据的解决方案。

最终,我们选择了如下硬件配置来搭建数据库:双路 AMD 48 核 96 线程 CPU,128GB 内存,8TB 固态硬盘。当前系统每日负载情况如下:CPU 使用率平均约为 20%,内存使用率 20%,数据压缩率控制在 10% 以内。

TDengine 的最大优势在于处理大规模时序数据,非常适合金融行情数据(如期货、期权价格及交易记录)。这些数据的特点在于高频写入、固定查询模式,且通常基于时间范围进行聚合或分析。然而,作为一款金融应用系统,除了时序数据外,还涉及大量其他类型的数据和复杂的业务逻辑需求,因此我们仍然保留了 PostgreSQL 关系数据库,以支持多样化的数据需求。

结语

TDengine 在成本控制、性能表现和用户友好性方面表现出色,尤其在成本节约方面尤为突出。展望未来,我们期待 TDengine 持续优化其性能和稳定性。同时,我们将基于业务需求开展二次开发,并积极向社区分享成果,共同推动 TDengine 的进步与发展。

关于多元量化

广西多元量化科技有限公司成立于 2023 年,是一家专注于人工智能技术研发与应用的领先企业。其致力于将大数据与人工智能相结合,服务于金融资产管理系统。多元量化提供程序化快速交易系统、量化策略开发及植入服务,结合先进的 IT 技术与丰富的行业经验,为机构和投资者量身定制高效的量化解决方案。多元量化产品线涵盖行情分析系统、程序化智能交易系统、策略模型平台和量化资产管理平台,并提供专属定制服务,满足客户的多样化需求。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
存储 运维 物联网
TDengine 与新奥新智达成合作,支撑海量设备、亿级数据
在物联网和智能化技术飞速发展的时代,产业对实时数据的深度分析与处理需求达到了前所未有的高度。物联网设备不断生成的时序数据不仅为企业带来了丰富的数据资源,同时也对存储和计算能力提出了严峻挑战。如何在应对数据洪流的同时,实现高效处理与低成本存储,成为众多企业在数智化转型过程中面临的核心课题。在这样的行业背景下,新奥新智选择与 TDengine 展开合作,共同探索面向未来的数据解决方案。
37 0
|
4月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
116 1
|
6月前
|
存储 运维 物联网
TDengine 助力中电启明星处理高复杂性和大数据量时序数据
智能电网和可再生能源推动电力系统数据爆炸式增长,TDengine 因其高效处理时序数据的能力,成为中电启明星信息系统深化应用项目的关键技术。该合作彰显 TDengine 在电力行业的影响力,已应用于多家电力企业,涉及能源大数据、风电运维、智慧能源等多个领域。中电启明星,作为国网信息通信股份的子公司,利用 TDengine 实现了数据管理和业务优化。TDengine,一款高性能时序数据库,为物联网和工业互联网提供一站式解决方案,助力行业数字化转型。
68 0
|
7月前
|
小程序 IDE API
如何用“AIT”解决能力集成难题——以商家券为例
如何用“AIT”解决能力集成难题——以商家券为例
88 0
|
存储 人工智能 供应链
数智洞察 | 从更高到更好:2021阿里双11背后的技术亮点
编者按: 双11不仅是一场消费盛宴,更代表着数字经济的崛起;双11不仅是一场购物的狂欢,更是重要的技术练兵场。技术创造价值,让我们一起来看看第13届双11的技术亮点。
154 0
数智洞察 | 从更高到更好:2021阿里双11背后的技术亮点
|
自然语言处理 达摩院 机器人
带你读《达摩院智能客服知识运营白皮书》——4.2 提炼高频知识,完成问答引擎的选择
带你读《达摩院智能客服知识运营白皮书》——4.2 提炼高频知识,完成问答引擎的选择
200 0
|
人工智能 JSON 自然语言处理
谈谈ChatGPT的低成本“平替”实现路线(1)
谈谈ChatGPT的低成本“平替”实现路线
552 0
|
JSON 编解码 自然语言处理
谈谈ChatGPT的低成本“平替”实现路线(2)
谈谈ChatGPT的低成本“平替”实现路线
802 0
|
数据采集 机器学习/深度学习 存储
OushuDB 小课堂丨 2023 年数据治理趋势:服务模式的成熟
OushuDB 小课堂丨 2023 年数据治理趋势:服务模式的成熟
101 0
|
机器学习/深度学习 人工智能 监控
作为今年业务流程领域最热的技术赛道,国产流程挖掘都有哪些特点与优势?
以艺赛旗iS-RPM为例,聊聊国产流程挖掘产品的特性与优势。
556 0
作为今年业务流程领域最热的技术赛道,国产流程挖掘都有哪些特点与优势?
下一篇
DataWorks