故障排除:连接、行情数据与图表问题
77 个交易者真实遇到的问题——登录失败、历史数据缺失、图表卡住、桥接或行情错误——每个问题都附有屏幕上的提示信息、原因与解决方法。
Senzoukria · 故障排除 · 更新于 2026 年 9 月
- 首次登录经纪商之前没有历史数据 — 一张 Senzoukria 图表要离线打开,只能靠已经下载到这台机器上的历史。对一个从来没有加载过的合约来说,在第一次连上经纪商把缓存(cache)填满之前,根本没有东西可画;而换成另一个合约,此刻仍然完全可能离线打开。
- 此登录下已订阅(1029) — 当你的登录名上已经存在一份针对同一个合约的订阅时,Rithmic 会回一个 rp_code 1029,“update bit type already exists”。连接本身没有问题;这路数据流被别处占着,最常见的是 Senzoukria 的第二个副本,或者同一个登录名上的另一个平台。
- 价格网格未知 — 当 Senzoukria 不知道一个合约的最小变动价位(tick size)时,历史下载照样能跑,但什么都不会被缓存,因此每次打开图表都要把整个时间窗重新下载一遍。图表看起来一切正常,这条提示是唯一的迹象。
- 历史加载卡住 — 如果一次历史下载连续 120 秒没有发出任何进度,Senzoukria 就不再等下去:它会用缓存和实时数据里已有的部分把加载遮罩收掉,并写出“历史加载已停滞”。用“重新加载历史”可以重新开始这次下载。
- 本地数据,不是实时行情 — 在没有连接任何经纪商时,Senzoukria 图表会以本机已保存的历史数据打开,并带有“本地数据”徽标。它照常滚动和计算,但不会向前推进;实时 tick、订单簿和正在形成的 K 线都需要连接经纪商。
- 需要先保存密码 — 一个没有保存过密码的 Rithmic 连接配置无法连接,而“测试连接”按钮也需要你把密码再打一遍,因为已经存下来的那一份永远不会离开钥匙串(keychain)。请编辑这份配置,输入密码,然后保存或者测试。
- 全部被接受,却没有数据进来 — 当连接诊断在网关、系统、登录和订阅上全部通过、却没有一个 tick 到达时,Senzoukria 会照实说出来,而不是把责任推给权限:市场休市、合约到期、同一个登录名上还有第二个会话,或者这个登录名根本没有被开通 —— 这四种情况在屏幕上看起来一模一样。
- 热力图无法启动(EvalError) — 在 Senzoukria 0.45.0 里,已安装的应用有可能显示“热力图无法启动”,并附上一条关于 'unsafe-eval' 和内容安全策略(Content Security Policy)的 EvalError。当时使用的渲染库会在运行时生成代码,而应用的安全策略禁止这种做法。0.46.0 换掉了这个库;请升级到 0.46.0 或更高的版本。
- 凭据未能保存 — 勾上“Save my credentials”之后,Senzoukria 会把你的密码存进操作系统的钥匙串(keychain)。如果这次写入失败了,你其实已经登录进去了,而应用会把真实的错误短暂显示出来,而不是假装凭据已经保存好了。
- 导入停止:达到内存上限 — Senzoukria 的 Databento 导入器会把成交留在内存里,直到每一天都完整为止。当各个合约上累积起来的未完成日期太多时,它会以“已停止:达到内存上限”停下来。已经完整的时段会被保留;请一次导入更少的合约。
- 需要订阅或订阅已过期 — 桌面端会在登录时、以及每一次会话续订时检查授权。没有一个有效的 PRO 订阅,服务器就会拒绝它,而应用会说清楚到底是订阅缺失、订阅过期,还是授权被暂停。
- NinjaTrader 桥接一直在连接 — 当 Senzoukria 的足迹图一直停在“Bridge: connecting to NinjaTrader on 127.0.0.1:7272…”上时,说明那个本机端口上没有任何东西在监听:可能是 NinjaTrader 关着、OrderflowBridge 指标没有挂在某张图表上,或者它的端口不是 7272。
- NinjaTrader 桥接配置错误 — 橙色的“NT misconfigured”横幅意味着 NinjaTrader 桥接送过来的逐笔成交没有带序号:要么这个指标老于 v2,要么图表上的 Tick Replay 是关的。在你到上游把它修好并重新连接之前,100 tick 的 K 线和 NinjaTrader 的图表是对不齐的。
- 回放加载被拒(rp_code 13) — 一个不在磁盘上的回放时段,是从 Rithmic 的历史里一笔一笔下载下来的。当经纪商在这次下载过程中回了 rp_code 13 时,Senzoukria 会停下来,并说经纪商拒绝了此账户的逐笔历史;而历史登录被拒有它自己的消息。
- 该账户用 Google 登录 — 一个用 Google 创建出来的 Senzoukria 账户是没有密码的,而桌面端没办法直接用 Google 登录。请在网站上用“Forgot password?”给它设一个密码,然后在应用里用这个邮箱和密码登录。
- 已达到最大设备数 — 每一个 Senzoukria 授权都允许一定数量的设备。当所有名额都被占满时,一台新机器在登录时会被拒绝。请在网站的设备页面上腾出一个名额,然后重新登录。
- 该连接上交易被禁用 — 当一条连接配置上的“交易”开关是关着的时候,Senzoukria 会拒绝下单和改单,而在已出资账户上,这个开关默认就是关的。撤单和一键全平仍然是允许的,因为它们只会降低风险。
- 邮箱或密码不正确 — 桌面端是用你 Senzoukria 网站账户的邮箱和密码来登录的。“Invalid email or password.”意味着授权服务器没有接受这一对凭据;反复失败还有可能让这个账户被临时锁住几分钟。
- 最大下单量护栏 — Senzoukria 会拒绝任何超过你在 设置 → 交易 里设定的“单笔订单上限”的订单。这道护栏是在后端为应用里每一个下单入口强制执行的;把这一栏留空就等于不设上限。
- 问题反馈未能发送 — Senzoukria 的“反馈问题”界面会把你的描述连同一份实测出来的技术上下文一起发出去。如果连不上服务器,什么都不会被发送;如果这台机器最近发出去的反馈太多,它会让你等几分钟。
- 从 Databento 导入回测数据 — 自动回测会把一个 Databento 文件夹按同一个合约根代码导入为一条连续序列:成交数据(trades)生成带 Delta 和价位的 K 线,ohlcv-1m 生成不带这些信息的 K 线。两者都没有的文件夹会被拒绝,换月日会被排除,而缓存中已有的 K 线永远不会被替换。
- 回放下单被拒(L1) — 在一个带最优买价和卖价的回放时段里(从 Databento 的 mbp-1 导入、并保留了 L1),模拟订单是按买价或者卖价成交的,绝不会按最新成交价。当那一侧是空的、还没有到达、或者已经丢失时,订单会被拒绝,而消息会说明是哪一种。
- 回放加载停止响应 — 回放加载在下载过程中会不断报告进度。如果连续 90 秒没有任何进度到来,Senzoukria 就放弃等待,并说后端停止了响应。另外还有两条简短的消息,分别说明已经有一次加载在跑、以及回放已经走到尽头。
- 回放:这一天没有逐笔数据 — 当一个回放日期的历史下载一笔逐笔成交都没有带回来时,Senzoukria 拒绝打开一个空的时段,并写出“no ticks for {day} — market closed that day, or nothing archived”,后面带上它收到的经纪商状态码。
- 回放:未保存经纪商凭据 — 回放会用你默认那条 Rithmic 连接的凭据,从 Rithmic 历史里下载一个不在磁盘上的时段。如果没有这样一份配置、或者它没有保存密码,加载就会以“no broker credentials saved”失败;而磁盘上的时段和导入进来的时段照样能回放。
- 交易台:没有账户数据 — Senzoukria 的交易台只根据经纪商实际报告的内容来点亮它那四个阶段(连接、账户、持仓、防护)。“没有就绪的连接”、“没有账户数据流”和“数据流错误”各自指向一个不同的步骤,要在任何订单能被路由出去之前先检查它。
- 诊断:已有会话在运行 — Senzoukria 的连接诊断会开启它自己的 Rithmic 会话,所以只要同一个登录名上还有一路行情会话活着,它就拒绝运行。它还会报告服务器在测试期间做了什么,例如一次强制登出,或者一次被拒绝的逐笔订单深度。
- 免费 Rithmic 演示账户被拒 — 一个带实时行情的免费 14 天 Rithmic 演示账户无法登录 Senzoukria:Rithmic 不向演示账户开放这款应用所使用的 R | Protocol API。你需要一个自营交易公司的评估账户,或者一个带付费行情订阅的经纪商账户。
- 热力图图形上下文丢失 — Senzoukria 会去测量自己的热力图是否还在被真正绘制。“图形上下文已丢失”意味着 WebGL 上下文被系统收走了,这张图不会自己回来;“渲染已停止”意味着数据仍在到达,但屏幕上什么也没有被画出来,于是你看到的是一张定格的画面。
- Databento 订单簿被拒 — 当热力图的数据源是 Databento CME 时,订单簿来自 Databento 的实时 mbp-10 schema,用的是你自己的密钥。一旦 Databento 拒绝了它,Senzoukria 会停掉这条流,并把 Databento 自己的原话显示出来(例如“Not authorized for mbp-10 schema”),而不是留给你一张空图。
- 热力图空白,数据流却在跑 — 当渲染器工作正常、热力图却仍然是空的时候,Senzoukria 用三条不同的横幅来解释原因:一段时间内没有收到订单簿、颜色标度从来没有被校准过,或者当前显示的窗口落在保留的历史范围之外。三种情况的解决办法各不相同。
- Databento 文件名缺日期 — Senzoukria 是靠 Databento 文件名里的日期来核对一次导出覆盖了哪些天的。一个被改过名、名字里没有日期的文件没法核对,因此不会被导入;请保留 glbx-mdp3-20250910.trades.csv 这样的名字。
- 下单格被禁用(价格) — 当 Senzoukria 手上没有一个可信的价格时,它会把那些依赖价格的下单格禁用掉:还没有见到任何价格、没有经过验证的最优买价和卖价,或者 15 秒之内没有新价格。它拒绝用一笔旧成交去猜一个价格。
- DBN 母合约代码未导入 — Senzoukria 不导入那些以父代码(例如 MNQ.FUT)、或者只以合约 ID 请求出来的 DBN 文件:没有合约定义,里面的合约就没法和价差区分开。请改用合约代码、连续代码,或者带代码的 CSV 重新导出一次。
- Tradier token 检查失败 — 在保存一个 Tradier 令牌之前,Senzoukria 会先上线测一下它:向 Tradier 的生产 API 请求一条 SPY 报价。如果 Tradier 拒绝,这个令牌就不会被保存,而错误以“token check failed”开头。
- 网关没有应答 — 当 Senzoukria 连接诊断的第一步就失败时,说明根本没能向 Rithmic 网关打开一个 WebSocket 会话:可能是 URL 写错了、选了一个只给托管服务器用的接入点,或者中间有防火墙、VPN 或者代理挡着。关于账户本身,此刻还什么都没有测过。
- 气泡重建被拒(rp_code 13) — Senzoukria 的气泡重建会再一次向 Rithmic 请求逐笔历史,用来把过去的 Big Trades 气泡重新造出来。当经纪商回的是 rp_code 13 时,从那个点往后就什么也重建不了;而缓存里已有的 K 线一动不动。
- AI 模型无法连通 — Senzoukria 助手的模型选择器会测试你选中的引擎。“无法连通”表示引擎没有作出应答,但并不说明问题出在密钥、网络还是引擎本身;原始应答会显示在状态下方。本地引擎必须运行在本机上,Groq 密钥则在使用前先经过测试。
- Big Trades 不显示 — Senzoukria 足迹图上的 Big Trades 气泡只在 K 线视图中绘制,只根据真正收到的成交生成,而且当视图中的气泡过多时会暂停显示。图表上会有一行简短的文字,说明是这三种情况中的哪一种。
- Databento 时段未写入 — 只有当一个导入进来的回放时段既完整又没有歧义时,Senzoukria 才会把它写出来。如果前一天的文件缺失、当天自己的文件缺失、两个文件带着同一个合约、它超出了回放的上限,或者磁盘写入失败,这个时段就不会被写出来。
- Databento 文件被搁置 — 在导入之前,Senzoukria 会把整个 Databento 文件夹清点一遍,并按原因分组列出它不会使用的那些文件:不支持的格式、Databento 元数据、无法读取或为空、受密码保护的压缩包、出于安全原因拒绝,或者超出清点范围的限制。在你确认之前什么都不会被导入,而你的文件从头到尾都不会被改动。
- DOM:仅有聚合 L2 — 在 Rithmic 的 DOM 上,MBO 徽标告诉你完整的逐笔订单簿是否处于启用状态。徽标灰着的时候,阶梯只能显示数据源发布出来的那些聚合档位。另有一个单独的时效指示器,在深度超过 3 秒没有更新时转为红色。
- Alpaca 未授权 — Alpaca 密钥保存到 Senzoukria 时不做在线测试,所以错误的密钥要等到 GEX 或 Option Flow 向 Alpaca 请求数据时才会失败。失败显示为“Alpaca unauthorized (HTTP 401/403) — check your API keys”;触发限速时则显示 HTTP 429。
- GEX 需要密钥 — 只有在存在期权数据密钥时,GEX 和 Option Flow 页面才会打开。在 0.45.0 中,即使已经保存了 Tradier token,界面仍然要求 Alpaca 密钥;0.46.0 接受任何一种期权密钥(Tradier、Alpaca,GEX 还接受 Market Data),只有在一个密钥都没有时才显示“需要期权数据密钥”。
- 流动性追踪不可用 — Senzoukria 热力图里的 Liquidity tracker 会跟踪每一笔订单的一生,从而把被撤走的流动性和被成交的流动性区分开。它需要逐笔订单(MBO)数据流,而目前只有 Rithmic 提供,所以在其他数据源上它的开关是不可用的。
- Python 引擎不可用 — Senzoukria 里的 Python 脚本需要一个引擎,它从 senzoukria.com 上一次性下载下来,之后完全离线运行。“引擎不可用”的意思是它没有启动起来;JavaScript 脚本不受影响。另有一条单独的消息,会在一个脚本声明的语言和它的代码不一致时提醒你。
- Quantower 桥接连不上 — Quantower 桥接通过 127.0.0.1:7273 把一张正在运行的 Quantower 图表喂给 Senzoukria。横幅一直停在连接上,说明 Quantower 或者它的桥接插件没有在跑;而橙色的“QT misconfigured”横幅说的是到达的逐笔成交没有带序号。
- Rithmic 登录被拒(rp_code 13) — 当 Rithmic 用 rp_code 13“permission denied”回应一次 Senzoukria 登录时,意味着这个账户在那个系统上、针对 R | Protocol API 被拒绝了;而这个代码并没有说是哪一层拒绝的。应用会把该检查的原因按代价从低到高列出来,并且从不把它当成一份关于权限的判决书。
- GEX 延迟或过期 — Senzoukria 的 GEX 状态标签会说明期权链有多旧,以及这个数据源是不是带延迟发布的。只有当一条带时间戳、而且很新的期权链来自实时数据源时才会显示 LIVE;带延迟的数据源、超过 20 分钟的期权链,以及没有时间戳的期权链,都会被如实标注出来。
- GEX 无数据或数据商报错 — NO DATA 意味着还没有收到任何期权链,而且上一次请求失败了;PROVIDER ERROR 意味着屏幕上确实有一条期权链,但上一次请求失败了,所以你看到的东西来自更早的时候。悬停提示里带着数据商给出的那个错误。
- 请在主窗口登录 — Senzoukria 分离(detach)出去的窗口共用主窗口的会话。当没有会话存在时,一个分离出去的图表会显示“请在主窗口登录以打开图表。”,而其他分离出去的模块会让你到主窗口那边登录,然后重新打开这个视图。它们自己没有登录表单。
- 更新安装失败 — Senzoukria 在运行任何安装程序之前都会校验它的签名。一次更新可能在启动时的提示里失败(“Install failed: …”),也可能在 Versions 卡片上失败,而那里会把原因点名说出来:没有发布签名、签名不匹配、下载出错,或者这个平台还不支持在应用内安装。
- 数据商不可用 — 当 CME 开着市、一次回放(Replay)历史请求却拿不到任何应答时,Senzoukria 会显示“数据商不可用”:现在下载不了新的历史,你本机的缓存(cache)一点没动,而只要数据商恢复应答,这个请求就会自己重新发出去。这张卡片只报告它测到的事实,不对你的凭据或者权限下任何结论。
- 未收到市场深度(加密) — 在 Binance 和 Bybit 的交易对上,如果订单簿订阅已经被接受、却在 15 秒之内没有任何订单簿到达,Senzoukria 会抛出“未收到市场深度”。这条提示是应用自己在本地下的判断,不是交易所的拒绝,它会给出一个“重试”,重新订阅一次。
- 加密历史不完整 — Senzoukria 的加密图表是分步搭建历史的:先是 K 线,然后是从 Binance 成交存档里重建出来的 bid × ask,最后才是图表 K 线。在 Binance 上过了 5 分钟之后,图表会先把已有的数据显示出来并继续加载;缺掉的部分会被点名说出来,绝不会被悄悄补上。
- 加密 DOM 剖面:没有实时深度 — 在加密足迹图(footprint)上,只要订单簿(order book)出现一次空档,DOM 剖面(DOM Profile)和流动性墙(liquidity walls)就会消失,同时一条提示会说明订单簿当前处于哪种状态。等到后端彻底放弃重试之后,这条提示会转为红色,并给出一个需要等待片刻才能按下的“重试”。
- 没有收到止损侧离场单 — 交易台的防护(protections)阶段只有在经纪商把一个止损(stop)列进挂单、而且它覆盖持仓的全部剩余数量时才会把它计入。“未收到亏损侧退出订单”意味着没有任何这样的订单被报上来;“需核对退出数量”意味着有一个,但它的数量和持仓不一样。
- 脚本在 2000 毫秒后被停止 — Senzoukria 的每一个脚本都跑在一个沙箱化的 worker 里,每次运行有 2 秒的预算。超出这个预算的脚本会被停掉,并写出“脚本在 2000 毫秒后被中断(死循环?)”;而一个从来没有启动起来的沙箱报的是另一条消息。
- dxFeed:没有订单簿 — 在 dxFeed 数据源上,Senzoukria 只接收逐笔成交:这里根本不请求订单簿,所以 DOM 和热力图按设计就是空的。dxFeed 的演示端点(demo endpoint)比市场慢大约 15 分钟,连接表单里也这么写着。
- 未检测到 ThetaData 终端 — ThetaData 没有远程 API:你要在自己这台机器上跑他们的 Theta Terminal,而 Senzoukria 在 localhost 上读它。“未检测到终端”或者“Theta Terminal unreachable on … — is ThetaTerminal.jar running?”的意思是那个地址上没有任何东西应答。
- 已有一次历史加载在运行 — 同一时刻每个合约只能跑一路历史加载。当第二张图表或者第二个窗口去请求同一个合约时,Senzoukria 会先等一等、3 秒后自动重试一次,如果那一路加载还占着位置,它就会让你手动重新加载历史。
- 这个界面已停止 — 当 Senzoukria 的某个界面在绘制过程中抛出错误时,只有那一块区域会被一张“此界面已中断”的卡片替换掉;应用的其余部分、你的数据和你的经纪商连接都照常运行。“重新加载”会把这个界面重启,而“复制详情”会把错误原文交给技术支持。
- 历史比请求的短 — 当 Rithmic 无错地处理了一个历史时间窗、里面却没有任何逐笔成交时,说明对这个合约和这个账户来说,它的存档就到那里为止了。Senzoukria 会把它真正加载到的天数和你请求的范围一起报出来。
- 市场已休市,没有新数据 — 在 CME 的交易时间之外不会有任何 tick 被发布,所以 Senzoukria 也没有新的历史可以下载。它会在图表里和回放(Replay)里把这件事直接说出来,同时让所有已经缓存好的数据继续可以滚动、可以计算、可以回放。
- Databento 需要实时许可 — 在让某个模块动用你的 Databento 密钥之前,Senzoukria 会先实测这把密钥能打开什么。如果某个模块所需要的数据集在你的密钥上不是实时的,这个模块的开关就会保持不可用,并写着“需要您的 Databento 套餐包含 {dataset} 实时许可”。
- 历史未能补全 — 在连续两次历史下载都什么也没带回来之后,Senzoukria 的图表会把这件事说出来。如果经纪商给了状态码,它就原封不动地打印出来;如果一个状态码都没有,通常的含义是那个 Rithmic 系统上的存档是空的。
- 网关上没有这个系统名 — 当你填的系统名并不由你所连接的那个网关服务时,Rithmic 会回一个 rp_code 1067。Senzoukria 会去把网关自己那份列表取回来并打印出来,这样你就能挑出你的账户真正所在的那个系统。
- 没有更新提示 — Senzoukria 会在启动时检查有没有更新的版本,除非某个版本在 Versions 卡片上被钉住(pinned),或者这个应用是从源码跑起来的。一个被钉住的版本会显示“Automatic updates are off while a version is pinned.”,点一下就能恢复自动更新。
- 订单簿数据流已停止 — 当后端用尽有上限的重连尝试、仍然无法把一个加密订单簿重新同步时,Senzoukria 就不再把最后已知的那份订单簿当作实时数据展示,并写出“订单簿数据流已停止”。短暂等待之后,“重试”会变为可用,它会开启一次新的订阅。
- 热力图一直在等订单簿 — Senzoukria 的热力图只有在收到第一份同时带买盘和卖盘的订单簿之后才会开始绘制。在那之前,它的状态行写着“{symbol} · 等待第一个订单簿”。具体原因取决于数据源:市场休市、这条链路不提供深度、桥接还没有上线,或者一份加密订单簿始终没有到。
- 历史被拒(rp_code 13) — 这条图表提示的意思是,Rithmic 对其中一些历史时间窗回了 rp_code 13。在一个真实账户上实测到的情况是:这些拒绝是间歇性的,而登录一直是被接受的;图表会继续用缓存和实时数据跑下去,并且自己重试。
- 桥接 drift 徽标 — 当 NinjaTrader 宣布的历史 tick 数多于桥接实际交付给 Senzoukria 的数量时,就会出现 drift 徽标。对于该交易时段,100T 这类基于 tick 数的 K 线可能无法与 NinjaTrader 逐根对齐;重新连接会重试历史数据。
- 订阅被拒 — 这条提示表示 Rithmic 登录已经通过,但该合约的行情订阅被拒绝了。Senzoukria 会按出现频率列出可能的原因,保留经纪商返回的原文,并且从不把任何一个原因当作确定的结论。
- 无法启动图表 — 如果 Senzoukria 的某个图表窗格在 15 秒后仍未完成挂载,它会显示“无法启动图表。”,并提供“重试此图表”按钮;如果一个分离的图表窗口在 15 秒内没有创建成功,则会报告“无法打开:窗口无响应。”
- Anthropic 拒绝了此密钥 — Senzoukria 在保存 Claude API 密钥之前,会先向 Anthropic 测试它。401 或 403 的应答表示密钥被拒绝,且不会被保存;如果是网络问题或 Anthropic 服务中断,密钥会被保存,但界面会说明它未经验证。
- 登录服务器无法连通 — 当桌面端连不上授权服务器(licence server)时,登录会以一条网络消息失败,而这条消息会明确让你把密码留着:一个网络错误并没有对你的凭据说任何话,重置密码也帮不上忙。应用把“连不上”和“被拒绝”这两件事刻意分开写。
- 资讯源被限流 — Senzoukria 的快讯来自 GDELT,一个免费的开放数据源,它对每个 IP 大约只允许每几秒一次请求。当它开始限流时,应用会停下来一段时间不再去调用,并把还要等多久说出来,而不是一直重试、把封锁期拖得更长。