zvtvz / zvt

modular quant framework.
https://zvt.readthedocs.io/en/latest/
MIT License
3.09k stars 845 forks source link

数据源分散在各个sqlite中,由zvt_context进行管理,是不是应该专门有一个类进行zvt_context的summerize? #136

Closed svjack closed 2 years ago

svjack commented 3 years ago

是否有综合管理各个数据源的类呢?负责基本统计分析和汇总,感觉zvt_context太过分散。不方便在不同数据子集上进行统一操作。

foolcage commented 3 years ago

zvt_context其实是当类来用了,python里面module和class很多时候作用类似。 zvt_context目前是只维护最简单的关系,整个系统在 约束 和 方便 上做了一些平衡,定位还是方便扩展数据,并假设大家遵守entity->entity event的数据关系(使用register注册)。

不同数据的统一操作,目前没有强约束,大部分是通过自己读取数据,然后在py生态里面去做(sqlite存储起辅助作用)。

svjack commented 3 years ago

kdata部分你都做了按level预先采样存表,并根据query关于level过滤。 而不是对于最小细密度动态采样生成数据。 设计的IntervalLevel to_pd_freq 接口在工程本身并没有使用, 当然可以用于本地采样,那么有没有先根据条件过滤再动态采样的做法呢?

svjack commented 3 years ago

当然这会影响速度。

svjack commented 3 years ago

to_pd_freq 并不支持LEVEL_1WEEK to_high_level_kdata 又只支持week 按理说应该有一个如 pandas infer_freq 的函数根据timestamp 支持动态判断当前level (当然,这里由于 时间序列有开收盘的间断性,并不能直接用infer_freq,而是根据预先采样数据设定level列)

foolcage commented 3 years ago

to_pd_freq 并不支持LEVEL_1WEEK to_high_level_kdata 又只支持week 按理说应该有一个如 pandas infer_freq 的函数根据timestamp 支持动态判断当前level (当然,这里由于 时间序列有开收盘的间断性,并不能直接用infer_freq,而是根据预先采样数据设定level列)

嗯,低级别合成高级别并没有做完,也没有真正使用。 主要目前抓各级别的数据还比较方便,个人也主要只使用日线和周线数据。 能够帮忙完善的话,可以pr哈。

svjack commented 3 years ago

to_pd_freq 并不支持LEVEL_1WEEK to_high_level_kdata 又只支持week 按理说应该有一个如 pandas infer_freq 的函数根据timestamp 支持动态判断当前level (当然,这里由于 时间序列有开收盘的间断性,并不能直接用infer_freq,而是根据预先采样数据设定level列)

嗯,低级别合成高级别并没有做完,也没有真正使用。 主要目前抓各级别的数据还比较方便,个人也主要只使用日线和周线数据。 能够帮忙完善的话,可以pr哈。

另外kdata表名的命名,比如5m 1wk 1mon这些都与pandas内建的采样offset不一致,其相对应的是 5T 1W 1M如果能更改一下,就可以根据表名直接与IntervalLevel做比较,看是否支持某个high_level 采样。

foolcage commented 3 years ago

to_pd_freq 并不支持LEVEL_1WEEK to_high_level_kdata 又只支持week 按理说应该有一个如 pandas infer_freq 的函数根据timestamp 支持动态判断当前level (当然,这里由于 时间序列有开收盘的间断性,并不能直接用infer_freq,而是根据预先采样数据设定level列)

嗯,低级别合成高级别并没有做完,也没有真正使用。 主要目前抓各级别的数据还比较方便,个人也主要只使用日线和周线数据。 能够帮忙完善的话,可以pr哈。

另外kdata表名的命名,比如5m 1wk 1mon这些都与pandas内建的采样offset不一致,其相对应的是 5T 1W 1M如果能更改一下,就可以根据表名直接与IntervalLevel做比较,看是否支持某个high_level 采样。

对的,一开始并没有强依赖pandas,也没做多级别,历史原因。