问题描述
get_money_flow 获取资金流信息只能是按 天?
而且当天晚上都无法获取,必须第二天?
不知道将来能有分钟级的get_money_flow
解决方案
针对您关于 JoinQuant 聚宽平台 get_money_flow 函数的疑问,以下是基于官方 API 文档的详细解答:
1. get_money_flow 只能按天获取吗?
是的。 根据聚宽官方 API 文档说明,get_money_flow 提供的是 2010 年至今的数据,且数据频率仅为天(Daily)。目前该接口不支持获取分钟级(Minute)或 Tick 级的资金流向数据。
2. 当天晚上无法获取,必须等第二天?
是的,通常需要等到第二天(T+1)。
聚宽的数据更新机制如下:
- 数据校验与更新:当日的回测和行情数据会在收盘后通过多数据源进行校验,并在 T+1(第二天)的 00:01 更新。因此,当天晚上的确可能无法立即获取到当天的最终资金流向清洗数据。
- 避免未来函数:在回测环境中,为了避免引入未来函数,策略无法获取回测当前逻辑时间的那一条数据。如果您在当天盘中或盘后立即请求,可能会发现实际获取的数据比
count少一条,这是系统为了防止未来数据泄露而做的保护机制。
3. 将来会有分钟级的 get_money_flow 吗?
目前官方 API 文档中尚未提及提供分钟级资金流向数据的计划。资金流向(主力、超大单、大单、中单、小单)的精确计算通常依赖于完整的 Level-2 逐笔交易数据,数据量极其庞大且清洗复杂。如果您在实盘或高级研究中确实需要分钟级资金流,通常需要:
- 订阅交易所的高级 Level-2 行情自行计算。
- 关注聚宽未来是否会推出基于 Level-2 的增值数据服务。
附:get_money_flow 使用示例与注意事项
如果您需要获取历史的日线资金流数据,可以参考以下代码:
from jqdata import *
# 获取平安银行在指定时间段内的资金流向数据
df = get_money_flow('000001.XSHE', start_date='2023-01-01', end_date='2023-01-30')
# 获取多只股票最近 20 个交易日的资金流向
df_multi = get_money_flow(['000001.XSHE', '000002.XSHE'], count=20)
核心字段说明:
net_amount_main: 主力净额(万) = 超大单净额 + 大单净额net_pct_main: 主力净占比(%) = 主力净额 / 成交额net_amount_xl: 超大单净额(万) (大于等于50万股或100万元的成交单)
总结:目前在聚宽平台上,资金流向数据确实是日频且存在 T+1 的更新延迟,建议在编写策略时(尤其是选股类策略)将其作为盘后的日级别特征因子来使用。