首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DolphinDB:金融高频因子流批统一计算神器!

由于在静态的历史数据集上开发和验证高频因子远比在流数据上开发更为简单,响应式状态引擎显著降低了流式高频因子的开发成本和难度。...无状态的算子比较简单,使用DolphinDB已有的脚本引擎,就可以表示和计算。因此,问题转化为两点: 1、如何解析得到一个优化的DAG。 2、如何优化每个有状态的算子的计算。...在解析的时候,因为输入消息的schema是已知的,我们可以快速推断出每一个节点的输入数据类型和输出数据类型。输入参数类型确定,函数名称确定,每个状态算子的具体实例就可以创建出来。...4、流批统一解决方案 金融高频因子的流批统一处理在DolphinDB中有两种实现方法。 第一种方法:使用函数或表达式实现金融高频因子,代入不同的计算引擎进行历史数据或流数据的计算。...这些引擎均实现了数据表(table)的接口,因此多个引擎流水线处理变得异常简单,只要将后一个引擎作为前一个引擎的输出即可。引入流水线处理,可以解决更为复杂的因子计算问题。

4K00

从计算、建模到回测:因子挖掘的最佳实践

DolphinDB 作为分布式计算、实时流计算及分布式存储一体化的高性能时序数据库,在因子的存储、计算、建模、回测和实盘交易等场景中有着得天独厚的优势。...DolphinDB 包含 row 系列函数以及各类滑动窗口函数,在下面两个因子计算例子中,原本复杂的计算逻辑,在面板数据中,可以用一行代码轻松实现。...DolphinDB 的两个内置函数:dynamicGroupCumsum 和 dynamicGroupCumcount ,可以用于对动态组的增量计算。...使用这些语言的程序,都可以调用该语言的 DolphinDB 接口,订阅到 DolphinDB 服务器的流数据。本例提供一个简单的 python 接口订阅流数据样例。...,多因子投资模型的搭建可分为:(1)简单加权法;(2)回归法;两种方式均可以在 DolphinDB 中实现。

6.6K22
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    新型行情中心:基于实时历史行情的指标计算和仿真系统

    委托和成交的关联 逐笔的委托和成交数据是行情中心数据库中最基础的两个大表。因为数据量很大,只能采用分布式表来存储。这样委托和成交表关联时的效率很低。...又譬如因子计算结果表,虽然也是时间序列,但是包含了证券和因子两个实体,实质上是证券和因子随着时间变化的一个关系,方便按照因子和证券两个维度来进行快速的查询。...非同步关联 行情中心存储的委托、交易和快照等数据在计算时经常需要按股票和时间进行关联。当按时间关联时,通常两个表中的时间不是相等的,而是满足某种关系,譬如最近的一条记录,某个时间窗口内的记录等。...DolphinDB操作简单,可扩展性强,具有良好的容错能力及优异的并发访问能力。DolphinDB 可以在Linux或Windows系统、单个节点或集群、本地或云服务器中部署。...大多数时序数据库更侧重于数据存储和较为简单的计算,DolphinDB 在设计理念上将计算置于了和存储同等重要的位置。以下计算能力可以很好地应用在行情中心建设上。

    3.5K21

    干货 | 高频多因子存储的最佳实践

    我们做一个简单的计算,国内股票总个数按5000来算;因子个数一般机构大约为1000起,多的甚至有10000;时间频率最高的是每3秒钟生成一次数据,频率低的也有10分钟一次——也就是说,一只股票一个因子一天会生成...宽表模式数据如下表所示,宽表模式的面板数据通常是计算所需要的,这个模式存储的数据,可以直接供给量化程序计算,但是宽表模式的数据存储在因子新增和因子数据修改场景会耗时比较高。...1、新增因子:在新增因子的场景,窄表模式只需要进行 Insert 操作,将新增因子数据写入;而宽表模式需要先进行addColumn 操作,然后更新新增因子列数据,DolphinDB 目前的更新机制是重写...根据窄表模式下的分区规则,对指定因子数据更新时,可以精确定位到因子所在分区,并进行修改,所以耗时在秒级;而宽表模式的更新方式如上节所述原因,耗时非常长。...3、删除因子:删除因子虽然不是必须的,但可以释放存储空间,以及提供其他便利。当前窄表模型的分区方案在删除指定因子时耗时在秒级 , TSDB 引擎下的宽表模式目前不支持删除因子列。

    1.8K20

    Alertmanager对接Loki实现日志告警 | 坑我已经帮你们踩好了

    Alertmanager对接Loki 我们知道Alertmanager是可以查询Loki的 修改Loki配置文件,在loki-local-config.yml 添加以下内容: # rules规则存储...# 主要支持本地存储(local)和对象文件系统(azure, gcs, s3, swift) ruler: storage: type: local local: directory...然后在/monitor/loki/rules 下创建名为fake的文件夹,将rule放在该文件夹下。...description: 10分钟之内DolphinDB日志内election日志出现10次以上 重启Loki,重启脚本在上一篇推文中有写到。...值得注意的是,修改rule配置文件并不需要重启Loki,在Loki的运行日志里面可以看到如下日志,提示rule文件正在被修改 如果不确定rule中的表达式写的是否正确,可以在Grafana先进行预跑,

    6.2K41

    常用黑盒测试方法_黑盒测试各种方法

    黑盒测试的方法: 等价类划分法、边界值分析法、判定表法、因果图法、场景法、错误推测法、功能图法 下面对每一种测试方法进行了简单的整理,其中有参考其他文章。...4)按限制条件/ 规则划分:如果规定了输入数据必须遵守的规则或限制条件,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则) 6、按处理方式细分等价类 在已划分的等价类中,各元素在程序中的处理方式不同的情况下...7、建立等价类表,并对等价类编号 在确认等价类之后,建立等价类表,列出所有划分出的等价类,如下表 输入条件 有效等价类 编号 无效等价类 编号 年龄 正整数 E01 负数 E04 小数 E05...笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。...前面我们讲到的等价类划分,边界值分析这些方法都只是单个的输入测试,并没有什么逻辑和组合关系,但是我们的程序又是多种多样的复杂关系,所以我们需要一种方法来适用多种组合。

    1.2K10

    【数学】到底什么是拓扑?

    它只考虑物体间的位置关系而不考虑它们的形状和大小。 概念解释 注意:以下内容大部分来自知乎:硬核科普:什么是拓扑? 即使这两个对象在几何形状上有所不同,但它们在拓扑上完全等价。...如果我们在拉伸时违反了这些规则,那么这两个对象在拓扑上将不再等价。拓扑学家称这种不破坏既定规则的拉伸为同胚,这只是一种数学上精确地描述如何让橡皮泥的形状保持相同拓扑性质的方法。...无论你在球面上的哪一点上执行此操作,都会发生这种情况。 在与球体拓扑等价的任何三维对象上也会发生这种现象。...对于拓扑等价的对象,他们的许多拓扑性质都是相同的;对于拓扑不等价的对象,这些拓扑性质则不一定相同。这些拓扑性质,就是用于确定两个对象拓扑等价与否的重要工具。...面表反映了结构体的面与棱线、面与顶点之间的邻接关系,它存放定义每个面的顶点序号,因此面表确定了面与定义该面的诸顶点之间的关系。 体表中存放各个面在面表中的首地址以及某些属性。

    4.2K20

    软件测试技术之: 白盒测试和黑盒测试

    使用等价划分方法设计测试用例主要有两个步骤:(1)确定等价类; (2)生成测试用例。...表2‑1等价类列举表 输入条件 有效等价类 无效等价类 1.确定等价类 确定等价类是选取每一个输入条件(通常是规格说明中的一个句子或短语)并将其划分为两个或更多的组。...可以使用表2‑1中的表格来进行划分。注意,我们确定了两类等价类:有效等价类代表对程序的有效输入,而无效等价类代表的则是其他任何可能的输入条件(即不正确的输入值)。...如果输入条件规定了一个取值范围(例如,“数量可以是从1到999”),那么就应确定出一个有效等价类 (1两个无效等价类 (数量999) 。...如果输入条件规定了取值的个数(例如,“汽车可登记一至六名车主”),那么就应确定出一个有效等价类和两个无效等价类(没有车主,或车主多于六个)。

    6.1K30

    黑盒测试的等价类划分法_黑盒测试等价类输出

    最后,要想使用等价类划分这种方法来设计测试用例,一定要先根据需求规格说明划分等价类,列出等价类表。 3....>等价类表 在确定被测对象的输入域等价类后,就可以将有效等价类和无效等价类根据一定的格式形成等价类表,等价类表的绘制可以参考以下两个图: 4....确定等价类的原则 在划分等价类时,我们遵循以下6个原则: 若输入条件规定了取值范围或值的个数时,可以确立一个有效等价类和两个无效等价类。...根据等价类表确定测试用例 在编写好等价类表后,可以按照以下步骤来形成最终的测试用例: 为每个等价类规定一个唯一的编号。...以上两个表的账号,就是根据等价类划分的方法最终得到的测试数据。

    66650

    【NLP】搜索引擎核心技术与算法:词项词典与倒排索引优化

    词项集合的确定 在确定词项前,我们需要明确三个概念: 词条:一段文本中有效词的子序列,其中每个子序列称为一个词条。 词条类:相同词条构成的集合。...1.1 词条化 词条化过程词条化的主要任务就是确定哪些才是正确的词条。比如,对于简单的句子将字符串进行拆分并去掉标点符号即可。 ? 然而,上面的例子仅仅代表的是一种最简单的情况。...图二 另一方面,由于两个关联词的扩展词表之间可以存在交集但不必完全相同,所以上述两种方式相对于隐式建立等价类的方法来说更具灵活性。这也意味着从不同关联词出发可以进行不对称的扩展。下图出了一个例子。...如何利用跳表指针进行倒排记录表的快速合并? ? 我们以上图为例来先考虑快速合并的问题。假定我们在两个表中遍历一直到发现共同的记录8为止,将8放入结果表中之后我们继续移动两个表的指针。...下面用python简单实现下这个算法: # p1, p2是两个上述结构的倒排记录表, k是两个词项的位置在k以内 def positional_interset(p1, p2, k): result

    2.1K31

    客户端几乎不用的算法系列:复杂度估算的土方法

    想必大家都知道很多算法书上面的复杂度计算基础的”第一章节“,长到你不想看。但是不看吧又觉得失去了什么。所以这篇文章就来说说这个复杂度有没有什么通俗易懂的土方法来计算。...由于是有序数组,那么我们来计算一下二分查找的复杂度: 设数组中有 N 个元素,我们一共需要查询k次,根据这两个条件我们来推导一个 K与N的通项公式(这里面,右边的式子代表在查询完k 次之后,剩余的元素个数...所以我们如此分析,通过上限时间来推断大致的算法复杂度,获得提示确定了思路,就可以开始解题了。...,当 N 取无穷大时,求每个子式子的等价无穷大,然后取最大值作为整个程序的复杂度。...不确定式两两使用求极限,判断等价性 例如我们得到的 f'(n) 无法判断,那么我就取出这里面两个子式来求等价性: 所以我们发现剩下的两个式子是等价无穷大的。

    72210

    浅析等价类划分技术设计测试用例

    确定等价类的原则:   (1)当在软件需求规格书中指定了输入范围或编号时,可以建立一个有效的等效类(规格要求范围内的值)和两个无效的等效类(规格要求范围内的值)。   ...(2)如果软件需求说明书中规定了某个输入域的集合,或者在必须怎么样的情况下,可以确定一个有效等价类(在说明书要求的域中的值)和一个无效等价类(不在说明书要求的域中的值)。   ...(4)如果软件要求规范规定必须遵守某些规则,则一个有效的等效类(在规范要求的规则范围内的值)和多个无效的等效类(在规范要求的规则范围之外 )即可确定值。...(2) 对等效类进行分类后,建立符合提交 / 要求的等效类表,列出每个输入条件对应的有效和无效等效类。...三、 等价类划分技术的研究目的和意义 3.1 等价类划分技术的研究目的   理想的测试是使用最少的测试输入(测试数据和时间等输入),达到最高的测试质量,而这个最少的测试数据,也就是测试子集需要我们去研究一种设计方法来达到在保证测试覆盖率的前提下

    90530

    BUUCTF 刷题笔记——Basic 2

    可以让 input 中的值等于 correct 变量的引用,相当于两个变量同时指向同一个值,这样在析构函数对 correct 操作时,也等价于对 input 进行操作,即实现了两个变量的动态相等。...前面两个实现较为简单,最后一个条件就非常有意思了。...所以转战其他页面寻找注入点,在之前的预览中,三个热点貌似都没有什么需要提交的表单,因此 F12 看看后台的请求。...而要理解对所有数据库名的查询原理,首先我们要知道在 MySQL 中有一个自带的数据库 information_schema,该数据库用于存储数据库的元数据,即数据的数据,常用的各数据的结构如下图所示:...group_concat(table_name) from information_schema.tables where table_schema=database()--+ 根据浏览器回显可以看出该数据库中有两个表

    2.6K50

    技术分享 | 黑盒测试方法论—等价类

    等价类设计步骤 7.先划分等价类:找出所有可能的分类。 8.确定有效等价类:需求中的条件。 9.确定无效等价类:与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)。...划分等价类要点:文本框要求输入的长度、输入的类型、组成规则、是否为空、是否重复—区分大小写、是否去除空格。 实例 等价类设计步骤的前3个步骤,可以通过等价类表这种方法来辅助进行分析。...创建等价类表 在确立了等价类之后,可按下表的形式列出所有划分出的等价类表 image.png 等价类表可以帮助分析如何划分等价类,是一个辅助工具,初学者可以这样写,等熟练之后可以直接快速的编写出测试用例...设计测试用例 先编写一个很简单的用例,只包含最关键的一些信息,比如用例编号,属于的等价类,两个输入框中的测试数据,还有预期结果。 因为这里想要得到最终结果的话涉及到了多个元素,这里就需要输入两个值。...image.png 每次一个单点无效输入让其他点有效输入排除更多不确定和干扰。 等价类总结 等价类划分法非常简单,也很容易理解,是在用例设计中使用最广泛的一种测试用例设计方法。

    74970

    == 与equals和hashCode与equals

    则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。 情况2:类覆盖了 equals() 方法。...一般,我们都覆盖 equals() 方法来比较两个对象的内容是否相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。...hashCode()介绍 hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。...通过我们可以看出:hashCode() 的作用就是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。...hashCode()在散列表中才有用,在其它情况下没用。在散列表中hashCode() 的作用是获取对象的散列码,进而确定该对象在散列表中的位置。

    84720

    硕士毕业半年的茫茫社招路

    而6.S081的其中一次作业则是让我们去结合已有的代码,实现简单的线程/协程切换。...这次作业涉及到的代码不过100多行,却让我忍不住感叹“原来一个最简的线程/协程实现竟然可以这么简单,原来上下文切换是这么一回事”。...其中有一位好友xj在腾讯做数据库,他和我的交流尤其得多。印象最深的一次是2020年6月的时候他在做mysql的并发写入优化。...这下我可就犯难了,这倒不是完全因为阿里的工作环境和氛围可能不适合我,还因为我知道我的简历去投阿里云数据库组的社招,很可能连表刷(简历筛选)都过不了。...之后主管问我对数据库有没有什么了解,我说我只有对levelDB有一定的了解,于是主管和我深入探讨了在时序数据库场景下应用LSMT(Log Structured Merge Tree)时需要注意的问题和可优化的地方

    1.3K31

    JAVA编程基础(七)字符串和操作符

    甚至不是用一种方法,你都已经在Person类里的testPerson方法中做了一些有趣的事了,比如连接两个字符串: l.info("Name: " + p.getName()); “+”在java语言中也可以是字符串的连字符号...字符串连接练习 现在,你可以在Perosn类中练习使用连接两个字符串了。在这一点上,你有一个名字的实例变量,但它在商业应用有FirstName和LastName。...链式调用是一个不可变的对象像字符串的常用技术,对于一个不可变对象的修改,总是返回修改后的值(但是要求不改变最初对象的值)。 操作符 你已经知道了在java语言中使用”=”操作符赋值给一个变量。...java语言中有两种类型的操作符: 一元操作符: 只需要一个操作数 二元操作符: 需要两个操作数 表1总结了java算数操作符: 操作符 用法 描述 + a + b a与b的和 + +a 如果a是byte...= a + b -= a *= b 等价于 a = a - b *= a *= b 等价于 a = a * b %= a %= b 等价于 a = a % b 其他的操作符 除表1之外,在java语言中你可能还会遇见其他操作符

    12310

    文心一言 VS 讯飞星火 VS chatgpt (219)-- 算法导论16.3 1题

    文心一言: 首先,看起来引理 16.2 的描述中有些混淆,因为 x.freg 和 x.freq 似乎是两个不同的字段,但描述中把它们混用了。...频率域上的等价关系定义为:如果两个信号的频率域表示(如傅里叶变换)在除了有限个频率点之外的所有频率点上相等,则这两个信号在时间域上是等价的。...根据引理的条件,如果两个对象的频率属性相等,那么其他两个对象的频率属性也相等。 在Go语言中编写相关代码时,我们需要定义这些对象的类型以及如何比较它们的频率属性。...这里的关键假设是页表的映射是一致的,即如果两个虚拟地址映射到同一个物理地址,那么它们在页表中的表示也应该相同。...我们还定义了一个 equals 方法来检查两个页表条目是否相等。mapToFrame 函数使用 equals 方法来检查两个虚拟地址是否映射到同一个物理帧。

    14920

    黑盒测试的优缺点_黑盒测试的概念

    黑盒测试主要意味着测试要在软件的接口处进行,这种测试方法是将测试对象看成一个盒子,测试人员不考虑内部,直接按照需求规则说明书,直接检查他的功能是否符合要求。...条件项:列出针对它左列条件的取值,在所有可能情况下,给出真假值。 动作项:指出了在条件项的各组取值情况下应采取的动作。 列出所有条件桩和动作桩,然后再简化,合并相似规则(相同动作)。...若表中有两条或多条规则具有相同的关系,我们便可设法将其合并。 4....因果图法 用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例, 因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。...场景图法 场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。 6.

    1.2K30

    .NET简谈互操作(四:基础知识之Dispose非托管内存)

    ;上一篇文章中有位朋友提出了些问题,刚好我们在这里就当是学习来粗略的分析一下,问题大概是这样的:[王清培版权所有,转载请给出署名] 1.在.NET托管平台上的对象与非托管的对象之间是否能直接互换?...如果存在差异是否有方法能进行等价转换或者叫做等价复制; 我们就上面两个问题来详细分析一下,由于本人也在学习这方面的知识所以理解的也不是很透彻,只能是一些微薄的猜测吧,大家一起来帮忙分析; 第一个问题:在...,会确定下来内存中保存的数据是什么样子的;也就是说内存的分配原则是按照对象的类型来的;在托管与非托管的内存空间中,不同的平台所有的引用地址类型也各不相同,当然如果能成功的“互换”就说明能在托管与非托管之间进行直接数据访问了...;经过上面的分析我们确定托管内存与非托管内存的结构是不一样的,这种不一样并不是所有的对象类型都不一样,在.NET平台里面有一些如:int,char之类的平台等价类型,是可以直接互换的;如果是一些非等价类型...,有人会问不一样在什么地方;真的没有说服性的理由; 关于非托管内存释放的问题 似乎今天的主题就是关于托管与非托管内存的问题,刚好能详细的说明上面的问题;要想在托管内存中释放非托管内存,没有那么简单;不同的代码库

    50420
    领券