SoSoValue今天净流入为何为空?核T+1、ETF历史字段与已结算快照
链小知 · 进阶 · 核验 · 依官方文档整理
把待结算null、非交易日、错误和真实零值分开,并保留history.volume已知问题。
开始前准备
- 准备自己已有的脱敏材料与请求参数,保留产品、日期、单位和权限说明;缺值不补零。
1. 固定API与ETF对象
本篇是v1 Market Data的ETF模块:summary-history为资产/国家汇总,history与market-snapshot按ETF ticker。业务要x-soso-api-key;已读v1限额20次/分钟/key及100,000次/月,429看retry_after,X-RateLimit-Reset为Unix毫秒。网页可免费读不代表API匿名,也不把此额度套不同v3 API。
检查结果:ticker与底层symbol、country和接口版本分开;key与个人信息不进入核对表。
2. 按国家/资产和一月窗口核范围
summary-history的symbol不区分大小写,US支持BTC/ETH/SOL/LTC/HBAR/XRP/DOGE/LINK/AVAX/DOT,HK仅BTC/ETH/SOL。无效symbol如FOO为400003,合法但未在当地上市的LTC+HK为400001;两者都不是零流入。summary与单ticker history只支持最近1个月;summary默认limit50、最大300,倒序且排除周末/假日。增加limit不能突破历史权限。
检查结果:资产、上市地、日期范围、limit及非交易日有依据;错误没有当零事件。
3. 最新行null先判T+1而非无资金流
history当前交易日可已有value_traded/volume,但net_inflow、cum_inflow、net_assets、currency_share、prem_dsc仍null,流入与资产数按T+1结算。不能机械取data[0]当最新净流入,也不能把null填0;官方可跳过net_inflow为null的行,或用market-snapshot取得最新已结算值。保留那个已结算值自己的date,不能挂在今天日期上。
检查结果:待结算、最新已结算及读取时点分列;缺行/null/0保持不同。
4. volume、date与费用比例按端点辨字段
history文档明确当前volume与value_traded一样是美元成交额,且以JSON字符串返回,不是份额数量;份额volume应核snapshot。history.date为YYYY-MM-DD,snapshot表称Long timestamp但样例又是日期字符串,该差异保留,不统一强转成毫秒。sponsor_fee及prem_dsc是独立费率/溢折价字段,不当资金流或美元金额。
检查结果:volume的单位/类型与date原形有记录;没有把历史成交额当份额或臆测date格式。
5. 汇总净流入与累计数分别收口
summary的total_net_inflow是当天所有该类别ETF美元净流入,负值为净流出;total_value_traded是美元成交额,total_net_assets为净资产,cum_net_inflow为推出以来累计净流入。不能把累计数每天再相加,也不把成交额/净资产当流入。单ticker与汇总要对齐类别与已结算日期,缺单基金披露/原材料时只报告已知范围,不凭差异判断一方错误。
检查结果:每日净额、累计额、净资产与成交额单位/日期一致,未输出缺材料的完整汇总。
怎样确认完成
- 保存对象、原字段、窗口/版本、可核结果与未知分支;文档方法已核,实时数据与本人权限未验证。
常见错误与边界
- 接口返回交易日数不是自然日数;接口刷新与发行人披露/结算是不同时间。
- 官方已知问题与示例类型冲突保留,不能据示例断言生产字段已修复。