分钟级因子存储为宽表如何为何

我有一个按分钟更新的因子库,参考了因子实践文档,打算建表时设置成宽表,但是有几个问题不明白如何处理。


1. 如果有新添加的股票我该如何处理?因子实践的文章里提到“新因子或新股票出现,需要重新生成因子表”,意思是需要重新生成表再迁移吗?不能直接addColumn添加一列?

2. 计算的时候有些股票可能不进行计算,所以整个表可能很稀疏,那么对应的空值如何处理?直接写空值似乎要报错,还是要处理成零值?但是这又会导致和因子为0的情况冲突。

3. 比如我表里有四千个股票,但是我可能一次只更新其中的三百个,这种情况下该如何更新我只想更新的股票,其他的都自动填充为空值?我之前更新的时候用dataframe追加数据,如果不保持完全一致就会出现键名不匹配的问题。


万分感谢。

请先 登录 后评论

1 个回答

Shena Mao

你好,很高兴你这边有深入了解因子实践,针对你这边问的几个,DolphinDB这边都可以解决:

1. 可以直接添加股票。只是如果添加股票之后,导入的时候需要使用新的数据结构。在写入数据之后,不能按照以前的数据结构append。

2. 对应的空值可以写空值的,你这边报错的话报具体说明错误呢?

3. 比较建议对于一个因子而言,所有的股票一起算。如果只更新部分股票的因子,可以将其算好之后构建原库表结构进行append。具体操作可以是join一张不计算的股票的空值表然后用库表的列名reorderColumn,最后构建出同样表结构的表进行append。


如果还有其他的疑问,欢迎提问。

请先 登录 后评论