开源了个 A 股数据工具 finshare,自动切源能不能解决你们的线上坑?

6 天前
 sunfinv

把我们内部一直在用的数据层开源了: https://github.com/finvfamily/finshare

定位很克制:不做大而全,只解决一件事——稳定拿到股票数据。 我自己踩过最烦的坑是:单一源偶发挂掉,回测/任务整段失败。

现在这个库做的事:

5 个源:东方财富、腾讯、新浪、通达信、BaoStock 自动 fallback (一个源失败自动切下一个) 统一输出格式( DataFrame ) 常用接口:K 线、实时快照、批量获取 示例( 6 位代码直接用):

我真心想听实战反馈,尤其这几个问题:

你们线上最常见的数据异常是“超时/空数据/字段漂移/复权不一致”中的哪一个? 自动切源应该默认“无感自动”,还是必须“可配置优先级 + 熔断 + 告警”? 如果只让你选一个最该补的能力:缓存、重试策略、还是数据校验报告? 欢迎直接怼设计,最好带你们真实场景。 如果有代表性的 case ,我可以按回复优先做一版 roadmap 。

1599 次点击
所在节点    程序员
29 条回复
enrolls
5 天前
@justtokankan @zhouhuab @iorilu 我的博客右边的 side project 里面的 demo, 能每天 roll 90days 的数据。一般 6 点开始 etl, 6 点半就有数据了。
justtokankan
5 天前
@sunfinv #17 我做了一个动态代理,同步 4000+股票大概是 10 分钟左右,😂
metaquant
5 天前
示例代码没跑通:

5 manager = get_data_manager()
7 # 获取 K 线数据(只需传入股票代码,无需市场后缀)
----> 8 data = manager.get_kline('000001', start='2024-01-01', end='2024-01-31')
9 print(data.head())

AttributeError: 'DataSourceManager' object has no attribute 'get_kline'
sunfinv
5 天前
@metaquant 你运行下 examples 下的代码,readme 我更新下
sampeng
5 天前
好东西,我的龙虾看盘是我自己 vibe 的,各种想办法保证数据能拿到。这下有 cli 工具就好了。我想问一下数据的一致性。比如一只股票的数据是总是一个数据源吗?我认为一致性比容错要强。可以失败标记但不能从另一个数据源弄个数据来填上。
lixuda
4 天前
@sampeng 除了有时候异常数据外, 每家的复权价格计算不一样,另外进位不一样。
sampeng
4 天前
@lixuda 对,所以我希望是要回退就整体回退
sunfinv
4 天前
@sampeng 本质这些数据源的数据都是走交易所出来的,只不过各家对单位的定义可能存在差别,比如交易量有的是计算的手数,有的是股数,这个库主要是对各家的差别进行 了归一,那么即便你切换数据源数据其实也是一致的,所以在一方数据源拒绝你的请求时候可以使用其他数据源以保证自己功能的稳定性,不过一开始可以自己检验下,比如拿一个标的每个数据源去验证下你主要关注的数据
lixikei
4 天前
关注

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1195554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX