页面调试 · 21 / 29
调试
IDE 可以在调试器下运行您的 Python 代码,这样您就可以在某一行暂停并检查调用栈和变量。共有两种调试模式,均从调试工具栏启动。
| 模式 | 运行内容 |
|---|---|
| Debug Run | 在调试器下直接运行当前 Python 文件。只要打开了文件就始终可用。 |
| Debug Test | 在调试器下让您的策略遍历历史 K 线(回测)。仅当活动文件是实现了回测回调的策略时才会出现。 |
Debug Test 会先打开回测配置对话框,然后再运行。它仅支持单次回测——不支持优化扫描——并且仅支持 Selected symbols 来源(不支持选股器)。它读取基本面数据的方式与回测完全相同,包括披露日期规则,因此您检查到的内容与 Test 运行所看到的一致。
当 QuantCraft AI 控制 IDE 时,调试工具栏会被隐藏;AI 会话结束后会恢复。有关这些模式与普通运行的关系,请参阅运行代码和回测。
设置断点
- 点击行号左侧的边栏可切换该行的断点;再次点击可移除。
- 断点按文件保存,并在会话启动时从您所有打开的标签页中收集。
- 边栏仅在没有任何运行时才可点击——请在开始运行之前设置断点。
启动会话
- 您第一次启动调试会话时,会看到一次性的运行免责声明(下次可以跳过)。
- Debug Run 需要打开一个文件。当活动标签页是定义了 IDE 可识别的策略回调(
on_init/on_bar/on_finish)的.py文件时,会出现 Debug Test;它不需要有效的券商交易账户。B2 / QuantCraft 数据在需要时使用您的 QC 登录信息。 - 回测引擎仍然要求有可调用的
on_tick(以及其他必需的回调)。如果缺少on_tick,Debug Test 仍可能显示在工具栏中,但回测开始时运行会失败。 - 同一时间只能运行一个调试会话,并且在普通 Run 或回测进行期间调试会被阻止。
控件
工具栏会根据会话状态显示相应的控件。
| 控件 | 何时 | 作用 |
|---|---|---|
| Stop | 运行时 | 结束调试会话。 |
| Continue | 暂停时 | 继续运行到下一个断点。 |
| Step Over | 暂停时 | 运行当前行,并停留在同一函数内。 |
| Step Into | 暂停时 | 进入当前行的函数调用。 |
| Step Out | 暂停时 | 运行直到当前函数返回。 |
| Step Bar | 暂停时(仅 Debug Test) | 将回测推进一根 K 线。 |
没有 Restart —— 如需重新开始,请停止后再次点击 Debug Run / Debug Test。
暂停时您会看到什么
- 编辑器会跳转到暂停的文件并高亮显示暂停的那一行。
- 输出面板中会打开一个 Debug 子标签页,包含两个窗格:
- Call Stack — 栈帧链,每个栈帧显示函数名和
文件:行。点击某个栈帧可检查其变量。 - Variables — 按作用域(Locals、Globals、Closure 等)分组。每个变量显示其名称、类型和值;对象和列表可展开以查看其内容。
- Call Stack — 栈帧链,每个栈帧显示函数名和
- 在 Debug Test 中,步骤上下文横幅会显示您在回测中的位置,例如
Bar 12 / 240 · AAPL · <time> · O … H … L … C …。 - 程序输出照常流式显示在输出面板中。
限制
- 没有监视面板或表达式求值器——只有 Call Stack 和 Variables。
- 没有 Restart 控件(停止后重新启动)。
- Debug Test 仅支持单次回测——无法调试优化运行。
- 不支持选股器标的来源 — Debug Test 会以
Debug test doesn't support a Screener symbol source …停止。请切换到 Selected symbols 并选择几个股票代码。 - Debug Test 要求活动标签页是带有回测回调的
.py策略文件;普通脚本只能使用 Debug Run。 - 工具栏中 Debug Test 的显示不会检查
on_tick;检查由引擎完成。

