8.6 KiB
OneChartLab「板块资金雷达」公开实现证据
核查日期:2026-08-27。范围是无需登录的 https://onechartlab.com/ HTML、其公开 JSON 静态资源和前端内嵌 JavaScript;没有绕过访问控制,也未保存 cookie/token/个人数据。
已确认
-
用户目标与主界面。 页面 title/description 是“板块资金雷达”和“观察板块资金流向、强弱变化与市场主线”;正文副标题为“识别主线资金流向与趋势,对比板块强弱”。页面可选数据日期、概念/行业类型、搜索板块名称或代码,并支持“波段流入率、单日流入率、单日净额、排名变化”四种排序指标(
https://onechartlab.com/,HTMLfile:line::6-7,:641-671)。 -
公开数据协议与粒度。 首页首先只读请求
radar_manifest.json,校验schema_version===1、AVAILABLE_DATES、日期 shard 路径,再请求radar_data/dates/2026-08-26.f49c721846fb.json(manifest 当前文件名来自https://onechartlab.com/radar_manifest.json)。manifest 给出LATEST_DATE=2026-08-26,可用日期为 2026-07-16 至 2026-08-26 的 30 个交易日;最新 shard 实测为 JSON 数组 791 条,概念板块 414、行业板块 377。实现证据:HTML:1894-1972;响应字段/路径证据:https://onechartlab.com/radar_manifest.json的AVAILABLE_DATES、LATEST_DATE、files.dates,最新 shard URL 上述路径。 -
单条板块字段。 最新 shard 的记录含
trade_date,type,index_name,ts_code,lead_stock,pct_change,pct_change_stock,以及Swing/Ratio/Amount三类的 raw 值、分数、排名位置、排名百分位、近 30 日在榜计数和 1/2/3 日排名变化字段:如Swing_Ratio_Val,Swing_Amount_Val,Swing_Score,Swing_RankPos,Swing_RankPct,Swing_Top30d,Swing_Bot30d,对应Ratio_*、Amount_*。实测示例2026一季报扭亏 (概念)(ts_codeBK1682.DC)在 2026-08-26 的Amount_Raw_BN=-5.59969136,Amount_RankPos=353,Ratio_Raw_Pct=-0.06896072719626979,Swing_Ratio_Val=-0.03308411781204722。来源:https://onechartlab.com/radar_data/dates/2026-08-26.f49c721846fb.json,响应记录键集合。 -
榜单筛选和排名。 非“排名变化”时,前榜取
activeTab_RankPct >= 90,后榜取<= 10;默认前榜按Amount_Raw_BN(单日净额)或相应*_Score降序,后榜升序。“排名变化”时按所选基准Swing/Ratio/Amount的*_Rank_Chg排序,各取ceil(板块数*0.1)且至少 1 条。代码还明确页面文案为TOP 10%/BOTTOM 10%。HTML:1292-1314,:695-718。 -
排名变化的时间窗口。 排名变化基准可选波段率、单日率、单日额;统计天数 UI 提供近 1 至近 5 天。1–3 天直接读取记录中的
Swing/Ratio/Amount_Rank_Chg_1d/2d/3d;超过 3 天时读取 rank-history,并以pastRank - currRank计算变化,过去日期超出范围时钳制到最早可用日期。HTML:676-691,:1260-1289。 -
数值显示与单位映射。
Swing_Ratio_Val和Ratio_Raw_Pct在显示时乘 100 并格式化为百分比;Amount_Raw_BN直接按亿元显示;分数显示 1 位小数,净额显示 1 位小数,排名变化显示整数。HTML:1453-1467,:1482-1500;详情文字也明确“波段均值”“占比”“主力净流入 … 亿”,:1072-1092。 -
历史轨迹和详情交互。 榜单的“在榜”按钮读取公开
radar_data/rank_history.3674d0a1cecf.json,结构为Amount,Ratio,Swing三个 map,每个包含约 799 个板块名到日期→排名的映射;详情图使用可用日期反转后的 30 个点,缺失历史排名以总池大小代替,并把排名限制到[1,maxRank]。HTML:1522-1539,:1564-1571,:1794-1815;资源 URL:https://onechartlab.com/radar_data/rank_history.3674d0a1cecf.json。 -
成分股数据、字段和异常边界。 详情通过
sector_rankings/manifest.json(schemaonechart_sector_stock_rankings_v2)定位日期文档sector_rankings/radar/dates/20260826.bacc5d9e1581.json,再按sectors[ts_code]['1']读取metrics.pct_change/main_net_amount/active_buy_net_amount的top、bottom、sample_size、status和value。实测日期文档含date=20260826,system=radar,sectors791 个板块;示例BK0420.DC的三指标均为status=available,sample_size=13。HTML:1667-1704;资源 URL:https://onechartlab.com/sector_rankings/manifest.json、https://onechartlab.com/sector_rankings/radar/dates/20260826.bacc5d9e1581.json。 -
数据源、口径和更新时点(页面公开原文)。 页脚写明“数据源: Tushare + 东财板块日线资金流数据”“更新频率: 交易日 17:00 ~ 17:30 自动同步”“参数说明: 波段周期取 3-10 个交易日多周期协同加权”。页面也提示“本日板块数据由个股本地聚合计算,涨跌幅暂不显示("-")”。HTML
:636-639,:1028-1035。radar_manifest.json当前DATA_SOURCE为空,因此“本地聚合”提示在当前公开 payload 不会因该字段自动出现;提示逻辑为 HTML:1187。 -
前后端计算边界和失败处理。 公开 JSON 已提供 raw、score、rank 等派生字段,浏览器端只做筛选、排序、格式化、排名变化(超过 3 日)、Jaccard 近似板块计算和 SVG 轨迹绘制;manifest/日期 shard/rank-history 请求失败会回退到
radar_data_latest.json,仍失败则显示“数据加载失败”和“重新加载”按钮。HTML:1905-1972,:1771-1792。旧接口是https://onechartlab.com/radar_data_latest.json,实测可公开读取但约 20 MB,含RADAR_DATA,AVAILABLE_DATES,LATEST_DATE,RANK_HISTORY_MAP,CONSTITUENT_MAP。
合理推断
- “波段”口径是服务端预计算的多周期指标。 依据:页脚原文称“3-10 个交易日多周期协同加权”,记录同时暴露
Swing_Ratio_Val、Swing_Amount_Val与Swing_Score,但前端没有生成这些字段的公式。置信度:高(页面口径明确),具体权重未知。 - 榜单主数据主要在服务端生成。 依据:前端直接消费
*_Score,*_RankPct,*_RankPos,*_Rank_Chg_1d..3d,只在 4/5 日排名变化时用公开历史 map 做差;因此原始资金聚合、打分、排名应已在静态数据发布前完成。置信度:高;无法据此确定后端具体语言或作业实现。 - 排名池是东财板块宇宙,当前 791 个板块。 依据:
sector_rankings/manifest.json的 radaruniverse_id="eastmoney-dc-v1",sector_count=791,与最新日期 shard 数量一致。置信度:高。 - 近似板块“重合度”是 Jaccard。 依据:浏览器端计算
intersection / (setA.size + codes.length - intersection),排序取前 4(HTML:1781-1792);不是后端评分。置信度:高。
无法确认 / 证据缺口
- 未在公开 HTML/JS/JSON 找到
Swing_Score、Ratio_Score、Amount_Score的具体公式、权重、标准化方式、并列排名规则,也无法从响应反推出“TOP 10%”之外的完整排序 universe 计算细节。 - 页脚只给出 Tushare 与东财来源名;未公开 API token、抓取 SQL、任务代码、实际同步失败重试策略或时区说明。
sector_rankings/manifest.json的 contract 能确认 radar 输入字段映射:tushare.moneyflow.net_mf_amount,tushare.moneyflow_dc.net_amount,tushare.dc_member,tushare.daily.pct_chg等,但不能证明上游响应在本次发布中的每一行具体值。 - “本日板块数据由个股本地聚合计算”是页面条件提示文本;当前
radar_manifest.json的DATA_SOURCE为空,实际页面是否显示该提示取决于运行时 payload/旧回退数据,未用交互浏览器截图确认。 - 未分析视频;未访问需要登录、验证码、付费或绕过反爬的资源。对不存在的后端 API,实际仅检索 HTML 中
fetch(/api/axios等关键词和内嵌请求路径;发现的公开请求路径限于radar_manifest.json、日期 shard、radar_data/rank_history...json、radar_data_latest.json和sector_rankings/...,未发现 XHR API。
主会话复核补充
主会话对 2026-08-26 全部 791 条记录复算确认:概念和行业两个排名池内,Swing_RankPos 与 Swing_Score 降序、Ratio_RankPos 与 Ratio_Score 降序、Amount_RankPos 与 Amount_Raw_BN 降序均为零不匹配;三个 RankPct 字段均满足 100 * (N - RankPos + 1) / N,最大浮点误差约 1.42e-14。这使排名外层逻辑可以精确复现,但不能反推出三个 score 的服务端构造公式。