如何快速搭建基于高频数据的因子平台

news2024/11/17 7:23:14

在因子投研和生产过程中,往往需要基于大量因子进一步加工有状态的复杂指标,比如计算实时 K 线和 MACD、RSI 等。

假设要计算1000个因子,每个因子实现逻辑各不相同,并有特定的如窗口关闭信号、计算窗口边界等配置,重复搭建流处理框架、多次计算同一中间变量,必然是非常低效的。有没有什么方法可以对大量因子的流式计算规范化、格式化,实现工程化管理呢?

——DolphinDB 推出了一个方便、快捷、扩展性好和兼容性强的流批一体因子计算平台原型,提供基于快照数据计算分钟因子进一步加工分钟因子为复杂因子的功能,用户可以根据我们给出的脚本和部署教程,快速搭建和调试。

有了这一套流批一体因子计算平台,业务人员无需理解 DolphinDB 流计算框架的底层架构,仅需根据业务因子计算逻辑编写函数表达式,然后调度因子计算平台的计算接口,便可完成因子计算。

同时,开发人员也无需再转写代码,因子投研和生产只需一套系统、一种脚本即可无缝切换,极大降低了开发运维成本,提高了因子投产的全流程效率。

因子计算平台的架构和功能

Level 2 快照数据流批一体因子计算平台的架构如下图所示:

图片

主要包含以下几个功能模块:

  • 实时数据低延时接入:API 实时数据写入接口、实时行情接入插件、消息中间件订阅插件;

  • 历史数据回放:单表和多表严格按照时间顺序控速回放,将存储在 DolphinDB 数据库中的历史数据回放成流;

  • 流计算引擎:对快照数据做滚动窗口的聚合计算使用了时间序列聚合引擎,进一步加工成复杂因子依赖响应式状态引擎;

  • 集成开发环境:DolphinDB GUI 和 DolphinDB Vscode 用于因子表达式代码的开发和调试,通过 API 交互进行任务调度和作业执行;

  • 低延时消息总线发布:对接各种消息队列中间件,把实时计算结果推送到 Kafka, zmq, RabbitMQ, MQTT 等。

因子计算平台怎么使用?

按照本教程部署完基于 DolphinDB 搭建的因子计算平台后,基于历史数据的因子开发阶段的调试流程如下:

图片

基于历史数据的因子开发

因子业务开发人员只需要在 DolphinDB 提供的集成开发环境中编写因子计算的函数表达式,然后调用因子计算平台的计算接口就可以完成调试。如果编写因子符合 DolphinDB 的语法,就可以成功执行并返回计算结果。如果编写因子不符合 DolphinDB 的语法,就会报错中断。

在已经开发了一定数量的因子后,需要在生产环境部署实时计算业务,部署流程如下:

图片

基于实时数据的生产环境部署

因子业务开发人员只需通过客户端调用封装好的实时因子计算服务执行函数,便可以完成部署。执行完以后,DolphinDB server 会出现该流计算服务的入口,是一个表对象,可以通过 DolphinDB 提供的实时数据接入工具来接入数据。同时也会自动创建流计算服务的出口,也是一个表对象,存储计算结果。

总的来说——

写个对应的因子函数,

生成 Json 配置文件,

调度新的 Json 文件,

大功告成!

值得一提的是,本次 DolphinDB 推出的因子计算平台只涉及分钟频的因子计算,但是 DolphinDB 的计算能力不局限于此,接下来还会陆续发布快照频率、1s 频率甚至更高频率的因子计算平台构建最佳实践教程,敬请期待!

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

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

相关文章

QCustomPlot横坐标为毫秒级的时间轴数据展示的实时刷新数据功能

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();int realtime…

单键电容触摸键IC原厂技术支持低功耗触摸芯片VKD223B资料

VKD223B是单键电容触摸键IC&#xff0c;提供直接模式和触发模式两种输出方式&#xff0c;具有低功耗和宽工作电压的特点&#xff0c;是目前应用量最大的触摸芯片型号。&#xff08;由于收到原厂通知&#xff0c;此料已逐渐停产&#xff0c;现有新产品进行替代&#xff0c;性能更…

Mybatis入门和环境搭建

文章目录 一. Mybatis的简介1. 什么是ORM?2. 什么是持久层&#xff1f;3. Mybatis的作用 二. Mybatis环境搭建1. 搭建一个数据库2. 创建maven项目并导入相关依赖3. Mybatis相关插件安装4. Mybatis.cfg.xml核心配置文件 三. 基于ssm逆向工程的使用1. 配置generatorConfig.xml2.…

HICP学习--VLAN实验

一、实验拓扑 二、实验要求 1、PC1/3的接口均为access模式,且属于vlan2 ,在同一网段 2、PC2/4/5/6的IP地址在同一-网段,与PC1/3不在同一网段 3、PC2可以访问4/5/6 , PC4不能访问5/6 , PC5不能访问PC6 4、所有PC通过DHCP获取ip地址, PC1/3可以访问PC2/4/5/6 三、实验步骤 首先…

pytorch 入门1-tensor 广播 view reshape

tensor 的四则运算broadcast import torch import numpy as np # 张量tensor 随机初始化 x torch.rand(4,3) print(x) y torch.randn(4,3) print(y)# 初始化全零 张量 a torch.zeros((4,4),dtypetorch.long) print(a) #初始化全一 张量 b torch.ones(4,4) print(b) c tor…

汇川PLC单位换算及电子齿轮比

本文以汇川H5U为例进行说明轴控的单位换算&#xff0c;经过改进后&#xff0c;H5U的设置界面更加合理及容易理解&#xff0c;汇川中型PLC-AM400/AM600系列的设置与此类似&#xff0c;界面也相同。 H5U支持本地轴控&#xff08;发脉冲&#xff09;和EtherCAT轴控&#xff0c;轴…

途乐证券|增持回购队伍扩容 上市公司传递信心暖流

一场“活泼资本市场&#xff0c;提振投资者决心”的举动正在紧锣密鼓地进行&#xff0c;一批上市公司斥真金白银参加增持回购部队。 8月18日&#xff0c;中国证监会有关负责人就贯彻落实“要活泼资本市场&#xff0c;提振投资者决心”情况承受媒体采访时说到&#xff0c;鼓舞有…

【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、npm 下载swiper二、使用步骤1.引入库声明变量2.编写页面3.执行js 总结 前言 swiper轮播图官网 参考文章&#xff0c;最好先看完他的介绍&#xff0c;再看…

【Spring框架】Spring事务的介绍与使用方法

⚠️ 再提醒一次&#xff1a;Spring 本身并不实现事务&#xff0c;Spring事务 的本质还是底层数据库对事务的支持。你的程序是否支持事务首先取决于数据库 &#xff0c;比如使用 MySQL 的话&#xff0c;如果你选择的是 innodb 引擎&#xff0c;那么恭喜你&#xff0c;是可以支持…

3分钟掌握实时目标检测:使用 OpenCV 和 YOLOv3 的手把手教程

实时目标检测&#xff1a;使用 OpenCV 和 YOLOv3 在这篇博客文章中&#xff0c;我们将探讨如何使用 OpenCV 和 YOLOv3 进行实时目标检测。我们将从头到尾演示整个过程&#xff0c;包括加载模型、处理图像和识别对象。 需要的库和工具 首先&#xff0c;我们需要导入以下库&am…

Jmeter 接口测试总结

背景介绍 对于 Android 项目来说&#xff0c;使用的是 Java 开发&#xff0c;网络请求接口的数量庞大且复杂&#xff0c;测试人员无法很直观的判断、得出网络请求是否存在问题。另一方面&#xff0c;为了验证请求接口是否能够在大负荷条件下&#xff0c;长时间、稳定、正常的运…

14. 实现业务功能--帖子列表

1. 版块帖子列表 对应版块中显示的帖子列表以发布时间降序排列&#xff08;desc&#xff09;不传入版块 Id 返回所有帖子 2. 实现逻辑 用户点击某个版块或首页时&#xff0c;将版块 Id 做为参数向服务器发送请求 服务器接收请求&#xff0c;并获取版块 Id&#xff0c;查询对…

多领域模型效果测试指南

在我最近的写作创作实践中&#xff0c;我尝试了使用不同的模型来测试它们的效果。通过这些测试&#xff0c;我发现每个模型在不同任务上的表现和适用性都有所不同。 首先&#xff0c;对于写作创作领域&#xff0c;我发现生成式模型可以很好地生成创意性的文章和故事。当我使用…

STM32都学什么

一、什么是STM32? 对于STM32&#xff0c;从字面意思上来理解&#xff0c;ST是意法半导体&#xff0c;M是Microelectronics的缩写&#xff0c;其中32表示的是32位&#xff0c;那么整合起来理解就是&#xff1a;STM32就是指的ST公司开发的32位微控制器。在如今的32位控制器中&am…

【二叉树构建与遍历1】先序遍历+中序遍历构建一个二叉树并输出后序遍历 C++实现

思路&#xff1a; 先来一个例子&#xff1a; 先序遍历序列为&#xff1a;FDXEAG 中序遍历序列为&#xff1a;XDEFAG 要根据先序序列和中序序列确定这个二叉树&#xff0c;通用的步骤为&#xff1a; 1.根据先序序列的第一位确定这棵树的根&#xff1b; 2.在中序序列中找到…

LVS之keepalived

1、keepalived 概述 总结&#xff1a;Keepalived 软件就是通过VRRP协议来实现高可用功能。 应用场景&#xff1a;企业应用中&#xff0c;单台服务器承担应用存在单点故障的危险 单点故障一旦发生&#xff0c;企业服务将发生中断&#xff0c;造成极大的危害 VRRP通信原理&…

【CASS精品教程】CAD2016+CASS11.0安装教程(附CASS11.0安装包下载)

文章目录 一、CAD2016_x64安装二、CASS11.0安装1. 安装程序2. 安装补丁3. 安装注册机三、CASS11.0下载地址一、CAD2016_x64安装 CASS11.0.0.8 支持 AutoCAD2010-2023,大家可以根据自己的情况安装对应的版本,本文以CAD2016为例,CAD安装过程略去。 二、CASS11.0安装 点击订…

Pytorch 手写数字识别-MINIST 数据集训练

CNN 前期文章我们分享了tensorflow 的手写数字识别的训练以及识别过程,有网友私信是否写一下pytorch训练识别过程,本期文章我们来分享一下pytorch的手写数字训练人工智能TensorFlow(十六)MNIST手写数字识别 说到图片识别就不得不提卷积神经网络,我们会在后期详细介绍,或者…

docker启动容器失败:STATUS:‘ Exited ‘

先查看正在运行的容器 # 查看正在运行的容器 docker ps # 查看所有的docker容器 docker ps -a 这个时候如果显示的是up状态&#xff0c;那就是启动成功了。 状态为exited&#xff0c;所以没有启动成功。 解决问题 1、移除镜像 先把镜像移除掉 //移除一个镜像(出现问题可以移…

一篇文章看懂前端性能优化(2023详解)

性能优化这个词我们经常会在前端的工作或面试中遇到&#xff0c;这个东西说难好像也并不怎么难&#xff0c;毕竟谁都能说上几点。但是如果你想在工作上遇到各种场景的性能瓶颈时都有直击本质的性能方案&#xff0c;或者在面试时让面试官眼前一亮&#xff0c;那就不能只拘泥于『…