历史数据权限(经纪商拒绝)
历史数据权限(history permission)是让账户从经纪商的历史服务器下载过往成交、K 线或深度的那项权限,与接收实时数据是两件事。缺了它,经纪商会带着状态码拒绝请求,例如 Rithmic 的 rp_code 13(「permission denied」),此时图表必须把该区间显示为不可用,而不是空。
Senzoukria · 术语表 · 更新于 2026 年 9 月
实时、历史与深度是三项权限
一个能推送实时成交的账户,照样可能被拒绝历史 K 线;一个能返回历史逐笔的账户,照样可能没有历史深度。供应商把它们分开出售,并放在不同的服务器上;在 Rithmic 上,history plant 与 ticker plant 和 order plant 是分开的。登录成功只证明这个账户在那套系统上存在,关于它能下载什么则什么也没证明。
- 实时成交:所用 plant 上的 ticker 权限。
- 历史 K 线和逐笔:history 权限,两者可以只开其中一项。
- 历史深度:经纪商很少提供;热力图历史需要被录制下来的订单簿更新。
- 每一次拒绝都带着一个码;向供应商发问时,请把这个码和请求区间一并带上。
读懂一次拒绝
登录时出现「permission denied」,通常意味着该系统上不认识这个账户,这与权限不足是两回事;system name 不存在则由另一个码来报告。同样的措辞出现在历史请求上,则意味着该数据类型的 history 权限没有开通。拒绝还可能是间歇性的:负载过高的 plant 可能拒绝请求的一部分,而重试时又接受了。一个被接受却什么也没返回、并且没有任何状态码的请求,通常意味着该系统上的归档回溯不到那么早,或者 history plant 宕机了。
在 Senzoukria 里
回测数据面板用这样的措辞报告一次被拒的回补:「经纪商拒绝了这次请求:« permission denied »(rp_code 13)。这个账户上没有开通历史 K 线 —— 那是经纪商的权限,不是应用设置。历史逐笔是可用的,手动回放用的正是它。」在图表上,针对部分拒绝的历史提示会说明:这类拒绝通常是间歇性的、图表会继续用缓存和实时数据运行、并且它会自行重试;而一个完成了却没有任何码的尝试,则作为空归档单独报告。连接帮助还给出了该向经纪商提的原话:我的登录名是否已开通第三方 API 访问、开通了哪些数据、以及挂在哪个 system name 下。
历史被拒时该做什么
- 先别动指标;把品种、到期月、时段、连接状态和那个码记下来。
- 问供应商:这个登录名上的历史 K 线和历史逐笔是不是分开开通的。
- 用好本机缓存:已经下载过的时段照样可以打开、滚动和计算。
- 做回测时,可以考虑一个持有自己许可的专用历史数据源,而不是经纪商的归档。
相关内容
其他语言版本
常见问题
- rp_code 13 是软件的 bug 吗?
- 不是。它是经纪商历史服务器返回的一个状态,含义是该请求权限被拒。应用可以重试,也可以继续用缓存和实时数据工作,但它没法授予这项权限。要修的是账户一侧,找供应商。
- 为什么我的实时足迹图正常,回测却加载不了 K 线?
- 因为实时数据和历史是两项独立权限。ticker plant 正在把成交推给图表,而 history plant 拒绝了这次 K 线请求。请让供应商在这个登录名上开通历史数据,或者改用一个为此目的授权的历史数据源。
- 历史 K 线被拒时,历史逐笔还能用吗?
- 在某些账户上可以。K 线和逐笔在 history 权限上可以分别开通。逐笔可用时,可以改用基于逐笔的回放或在本地聚合出 K 线;两者都不可用时,这段区间就必须继续标为不可用。