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

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

同时,DolphinDB 自带的数据回放和流式增量计算引擎可以方便地解决因子挖掘中研发和生产一体化的问题。DolphinDB 的分布式存储和计算框架,天生便于解决工程中的可靠性、扩展性等问题。...在面板数据上,由于是以时间为索引,标的为列,因子可以方便地在截面上做各类运算。...DolphinDB 包含 row 系列函数以及各类滑动窗口函数,在下面两个因子计算例子中,原本复杂的计算逻辑,在面板数据中,可以用一行代码轻松实现。...OLAP 引擎是纯列式存储,不适合表过宽,在列数超过80以后,写入性能会逐渐下降,故不做考虑。...6、因子回测和建模 很多时候,计算因子只是投研阶段的第一部分,而最重要的部分其实在于如何挑选最为有效的因子。在本章节中,将会讲述如何在 DolphinDB中 做因子间的相关性分析,以及回归分析。

6.6K22

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

对于读取随机标的(A股市场目前约5000 股票)、随机多个因子(10000个因子中随机取1000个因子)的场景,要能从海量的因子数据中尽可能高速并精准读取数据,减少无效 IO ,并以需要的方式(通常是因子面板模式...为了使广大用户更方便地实现因子计算和管理,助力更高效的投研和生产,DolphinDB 结合多年服务金融量化机构的经验,已经实现了部分国内常用因子库,并且支持研究和生产一体化。...为了方便用户计算因子,DolphinDB 实现了所有 191 个因子的函数,并封装在模块 gtja191Alpha 中。...1、新增因子:在新增因子的场景,窄表模式只需要进行 Insert 操作,将新增因子数据写入;而宽表模式需要先进行addColumn 操作,然后更新新增因子列数据,DolphinDB 目前的更新机制是重写...而宽表模式在当前设计下,如果要更新一列因子数据,需要把所有的分区数据全部重写,所以耗时非常长。 2、更新因子:量化投研中,重新计算因子数据是常见的场景。

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

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

    这些数据中包含的市场微观结构信息可能为投资带来更为稳定的回报。 行情中心需要提供更多品类的数据,能够为周边的资管、交易、风险、估值和研究等多个应用方向和业务条线服务。...2、数组存储(多档报价数据的存储) 表3:10档行情数据示例 表3为10档行情原始数据,每一档包含买价、卖价、买量和卖量4列数据,因此需要40列。...表4:Array Vector 10 档行情存储 DolphinDB支持数组(array)类型的列,在array vector中可以同时存10档数据。...宽表存储天然适合面板数据,并能减少数据冗余,提高查询速度。 表5:DolphinDB 宽表存储 如表5所示,在一张宽表中存储4500只股票的1098个因子。DolphinDB支持32767列大宽表。...一部分时序数据库不支持大宽表或者存在明显的性能问题。例如ClickHouse会把每列数据都存为一个文件,在大宽表中多列数据文件读写就会遇到显著的性能下降。

    3.5K21

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

    图中的节点有3种: 1、数据源,如price。 2、有状态的算子,如a, b, d, e。 3、无状态的算子,如c和result。 从数据源节点开始,按照既定的路径,层层推进,得到最后的因子输出。...3.2 解析和优化 DolphinDB的脚本语言是支持向量化和函数化的多范式编程语言。通过函数的调用关系,不难得到计算步骤的DAG。...在后续的版本中,DolphinDB将允许用户用插件来开发自己的状态函数,注册后即可在状态引擎中使用。 3.4 自定义状态函数 响应式状态引擎中可使用自定义状态函数。...假设配置参数subExecutors=4,创建4个状态引擎,每个状态引擎根据流表的股票代码的哈希值来订阅不同股票的数据,并且指定不同的订阅线程来处理,最终将结果输出到同一个输出表中。...(tmp) 需要注意的是,如果多个状态引擎是同一个输出表,该输出表必须是一个共享表。没有共享的表不是线程安全的,并行写入可能会导致系统崩溃。

    4K00

    Pandas库

    DataFrame:二维表格数据结构,类似于电子表格或SQL数据库中的表,能够存储不同类型的列(如数值、字符串等)。...创建数据表 可以通过多种方式创建数据表: 直接从字典创建DataFrame: import pandas as pd data = {'Name': ['汤姆', '玛丽', '约翰'...DataFrame: DataFrame是Pandas的主要数据结构,用于执行数据清洗和数据操作任务。 它是一个二维表格结构,可以包含多列数据,并且每列可以有不同的数据类型。...如何在Pandas中实现高效的数据清洗和预处理? 在Pandas中实现高效的数据清洗和预处理,可以通过以下步骤和方法来完成: 处理空值: 使用dropna()函数删除含有缺失值的行或列。...Pandas提供了强大的日期时间处理功能,可以方便地从日期列中提取这些特征。

    8410

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

    如下图所检索出来的WARNING 日志,大量的WARNING、ERROR或者OOM这样的日志可能预示着应用即将出现异常,这时候基于日志的告警功能就非常有必要。...然后在/monitor/loki/rules 下创建名为fake的文件夹,将rule放在该文件夹下。...为什么要创建名为fake的文件夹,这个因为Loki中定义单租户的Loki系统中,fake为其默认租户名,如果是多租户系统,则/monitor/loki/rules 下多个其他名字的文件夹也可以。...值得注意的是,修改rule配置文件并不需要重启Loki,在Loki的运行日志里面可以看到如下日志,提示rule文件正在被修改 如果不确定rule中的表达式写的是否正确,可以在Grafana先进行预跑,...5B1m%5D%29+%3E%3D+0%29&g0.tab=1', 'fingerprint': '84a77cf1f548f633' }, 上面labels的元素包含了

    6.2K41

    POSTGRESQL 系统表 一个神秘的花园

    这将有助于显示数据库有多活跃,以及发现那些可能以惊人速度出错/回滚的程序可能出现的故障。关于是否从磁盘或内存检索数据的信息存储在blks_read和blks_hit列中。...如果所涉及的数据库是备用服务器,则列冲突可以方便地跟踪由于与处于“恢复模式”的备用服务器发生冲突而取消了多少查询。如果不是备用集群,则可以忽略此列。 查询需要写入临时文件。...state”显示当前连接的状态,如活动、空闲、事务中的空闲,查询列将显示正在运行的实际查询,或最近运行的查询。...如果我们要从这些表中查找特定的数据,我们必须确保在发出查询时连接到正确的数据库。 关于用户表的元数据存储在以下两个表中,它们分别对应于系统中创建的每个用户表。...我们还可以创建一个随时间变化的内存与磁盘的比率,如果该比率在一天中的任何时候下降,我们就可以精确地确定这个比率。

    1.8K30

    115道MySQL面试题(含答案),从简单到深入!

    如何在MySQL中创建和使用触发器?触发器是一种数据库对象,它在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行一段SQL语句。...如果一个查询的所有列都包含在索引中,那么MySQL可以直接从索引中读取数据,提高查询效率。...创建和使用联合索引时,应确保查询条件匹配索引列的前缀。55. MySQL中的隐式类型转换可能导致的问题是什么?MySQL在执行查询时可能会进行隐式类型转换,这可能导致性能问题和意外的行为。...MySQL可能会将某些类型的子查询优化为更有效的结构,如将IN子查询转换为JOIN操作。63. 解释MySQL的临时表和它们的用途。MySQL中的临时表是为单个会话创建的,并在该会话结束时自动删除。...- 但是,错误设计的分区或索引可能导致性能下降,因为MySQL可能需要检查多个分区。74. MySQL中的索引前缀是什么,如何使用?索引前缀是在列的一部分上创建索引的方法。

    2.1K10

    MySQL行格式原理深度解析

    MySQL中的行格式(Row Format)是指存储在数据库表中的数据的物理格式。它决定了数据是如何在磁盘上存储的,以及如何在查询时被读取和解析的。...三、指定和查看行格式 指定行格式 你可以在创建或修改表的时候指定行格式。...这种设计允许数据库在处理包含大量长字段的表时更加灵活,因为它减少了由于单个行过大而导致的页分裂的可能性。...NULL 值列表:如果表中的某些列被定义为允许 NULL 值,并且实际上存储了 NULL 值,那么 InnoDB 需要在行中为每个 NULL 列分配一个额外的字节(在某些情况下,多个 NULL 列可能共享相同的字节...VARCHAR 列: VARCHAR 列虽然通常用于存储较短的字符串,但在某些情况下,如果 VARCHAR 列的数据非常长,并且导致行的总大小超过了数据页内的可用空间,那么 VARCHAR 列的数据也可能被存储在溢出页中

    70410

    java面试(3)SQL优化

    任何在Order by语句的非索引项或者有计算表达式都将降低查询速度 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id...如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。 避免频繁创建和删除临时表,以减少系统表资源的消耗。...整合简单,无关联的数据库访问: 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) 尽量多使用COMMIT: 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高...这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引 a如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高....不要给类似“性别”列创建索引(即整个列的值只有一两种,十几种的) ,像这种情况的列,一般不会走索引,即便在列上创建了索引,因为这种情况全表扫描还要快于利用索引,优化器会选择性的选择走全表扫描,比如一个列只有四种值

    3.2K20

    Apache Hudi 0.10.0版本重磅发布!

    数据跳过对于优化查询性能至关重要,通过启用包含单个数据文件的列级统计信息(如最小值、最大值、空值数等)的列统计索引,对于某些查询允许对不包含值的文件进行快速裁剪,而仅仅返回命中的文件,当数据按列全局排序时...使用空间填充曲线(如 Z-order、Hilbert 等)允许基于包含多列的排序键有效地对表数据进行排序,同时保留非常重要的属性:在多列上使用空间填充曲线对行进行排序列键也将在其内部保留每个单独列的排序...,在需要通过复杂的多列排序键对行进行排序的用例中,此属性非常方便,这些键需要通过键的任何子集(不一定是键前缀)进行有效查询,从而使空间填充曲线对于简单的线性(或字典序)多列排序性能更优。...这在云存储中可能非常昂贵,同时可能会根据数据集的规模/大小限制请求,因此我们早在 0.7.0版本中就引入了元数据表来缓存Hudi表的文件列表。...总之任何在 0.10.0 之前创建的没有主键的 Hudi 表都需要使用带有 0.10.0 的主键字段重新创建,另外我们计划在未来版本中去掉对主键的限制。 6.

    2.4K20

    Apache Hudi在腾讯的落地与应用

    ,Hudi支持Parquet、ORC、HFile、avro格式,同时提供了非常丰富的API,如Spark DF、RDD、FlinkSQL、Flink DataStream API,利用这些API可以非常方便地对...组成,commit包含delta_commit,commit,clean,rollback,replacecommit等,同时每个commit都包含对应的状态,如requested,inflight,completed...在传统的Hive数仓中想保证实时是非常困难的,尤其是文件更新,湖表实时写入更新,基本不可能实现。...• 在多流拼接中,因为 LogFile 中存在不同数据流写入的数据,即每条数据的列可能不相同,所以在更新的时候需要判断相同 Key 的两个 Record 是否来自同一个流,是则做更新,不是则做拼接。...在多流拼接中,Map 中的 Record 不会完整覆盖 BaseFile 中对应的 Record,可能只会更新部分列的值,即 Map 中的 Record 对应的列。

    1.9K30

    mysql之视图、索引

    例如,当数据库同时存在时,如学生基本信息表、课程表和教师信息表等多种表同时存在时,可以根据需求让不同的用户使用各自的数据。...简化数据操作 在使用查询时,很多时候要使用聚合函数,同时还要显示其他字段的信息,可能还需要关联到其他表,语句可能会很长,如果这个动作频繁发生的话,可以创建视图来简化操作。...重用 SQL 语句 视图提供的是对查询操作的封装,本身不包含数据,所呈现的数据是根据视图定义从基础表中检索出来的,如果基础表的数据新增或删除,视图呈现的也是更新后的数据。...如果是组合索引,则列值的组合必须唯一;unique约束 主键索引:是一种特殊的唯一索引,一个表只能有一个主键(可以由多列组成),不允许有空值; 由数据库自动创建,只要在建表的时候设置了主键,就会自动生成主键索引...尽量不要包括多列排序,如果一定要,最好为这队列构建组合索引; 索引操作 创建索引 CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名(长度) 查询索引 SHOW

    98530

    时序数据库Machbase「建议收藏」

    Machbase Edge Edition 旨在即使嵌入在资源有限的小型设备中也具有高速处理性能。通过嵌入众多小型设备中的边缘版,可以通过收集和处理生产现场产生的所有数据来构建完美的边缘计算基础设施。...默认系统用户和密码【sys:manager】 sys用户可以看到所有表,包括其他用户创建的表,但不能操作其他用户创建的表。 新创建的用户不能创建tag table,只能看到自己的表。...4.5、【tag table】表DDL,创建、查看表结构、删除 创建时间挺慢的,不过使用时这个表就创建一次; metadata相当于influxdb中的tag; tag table 为存储传感器数据定制...,只能创建一个,必须包含 Tag name(ID),Input time(TIME)、Sensor value(DATA) 三个列,并且是指定的类型,还可以额外创建其他列。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    48820

    什么是窄表?什么是宽表?

    在数据库层面,什么是窄表?什么是宽表? 在数据库中,窄表和宽表是两种设计思想,分别指的是列数少或者列数多的表格。 窄表是指只包含少量列(如主键和几个属性)的表格。...相比之下,宽表则是指具有大量列的表格。这些列可以来自不同的来源,可能包括各种聚合和汇总数据等。...宽表能够提供更为全面和详细的数据,但同时也会带来一定的复杂度,包括查询效率下降等问题。 窄表与宽表的选择取决于具体的业务需求和数据处理场景。需要根据实际情况进行评估、设计和优化。...宽表可以解决一些需要同时获取多个数据属性、进行数据分析和数据挖掘的问题。相对于狭窄的表格,宽表可能会包含更多关联的信息,如不同维度、时间范围内的历史数据或聚合统计数据。...同时,宽表减少了在多个表之间查找、联接数据等操作,简化了查询和检索的流程,提高了数据可访问性和可靠性,并且能够方便地支持 OLAP 和数据挖掘等高级数据处理操作。

    2.8K21

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

    但是德兵师兄真的是一位非常靠谱的leader,如果是对CV/NLP/多模态/智能创作感兴趣的同学,可以联系他:zhangdebing@kuaishou.com @DolphinDB智臾科技 要说自己为什么会投递甚至最后还选择了这么一家对很多人来说颇有些...这下我可就犯难了,这倒不是完全因为阿里的工作环境和氛围可能不适合我,还因为我知道我的简历去投阿里云数据库组的社招,很可能连表刷(简历筛选)都过不了。...这里要说明的是,我以前认为在面试中这样诚实地说出自己的期望是不合适的,因为有可能这家公司不符合这样的期望,最后就不发offer了;但我后来觉得既然我不缺offer,不如说得直接一些,也免得去了公司之后发现期望与现实落差太大而离职...令我非常惊讶的是,Davis是公司的CEO&CTO,有非常多的事情在忙,但从和他的交流中,我能很明显感觉到他还在一线上写非常多的代码,甚至仍然是代码库的最主要的贡献者。...这三个月里,我们的主要工作是一起开发了基于LSMT的新的IoT存储引擎,新的存储引擎主要是针对物联网的大规模场景的,典型的场景可能是有千万台设备(如千万个电表)每秒都会产生一条数据,在支撑这个级别的数据量写入的前提下

    1.3K31

    PostgreSQL 索引类型详解

    对于后续列的约束也会在索引中检查,这样可以减少对实际表的访问次数,但并不会减少需要扫描的索引部分。 2)GiST 索引 多列GiST索引可以与涉及任意子集的查询条件一起使用。...多列索引应谨慎使用,因为单列索引通常已经足够提供良好的性能,并节省存储空间和维护成本。 对于超过三列的索引,除非表的使用非常特殊,否则可能不会有帮助。...这些选项可能看起来有些冗余,但在多列索引中它们非常有用。...有时候选择多列索引是最优的,但在某些情况下,创建单独的索引并依赖索引组合功能可能更为有效。...自动创建唯一索引: 当为表定义唯一约束或主键时,PostgreSQL 会自动创建唯一索引。该索引覆盖构成主键或唯一约束的列(如果适用,会创建多列索引),并用于实施约束。

    9410

    SQL Server数据库入门基础知识

    ;如工程数据库、多媒体数据库、图形数据库、智能数据库等 4、数据库的三种模型 ·网状模型:数据关系多对多、多对一,较复杂 ·层次模型:类似与公司上下级关系 ·关系模型:实体(实现世界的事物、如×××、银行账户...其中: ·数据表通常是一个由行和列组成的二维表,每一个数据表分别说明数据库中某一特定的方面或部分的对象及其属性 ·数据表中的行通常叫做记录或者元组,它代表众多具有相同属性的对象中的一个 ·数据表中的列通常叫做字段或者属性...外键:外键是用于建立和加强两个表数据之间的链接的一列或多列;一个关系数据库通常包含多个表,外键可以使这些表关联起来。...数据库创建在物理介质(如硬盘)的NTFS分区或者FAT分区的一个或多个文件上,它预先分配了将要被数据和事务日志所使用的物理存储空间。存储数据的文件叫做数据文件,数据文件包含数据和对象,如表和索引。...·次要(辅助)数据文件:除主数据文件以外的所有其他数据文件都是次要数据文件,某些数据库可能不包含任何次要数据文件,而有些数据库则包含多个次要数据文件,次要数据文件的文件扩展名是.ndf。

    66710
    领券