页面输出面板 · 19 / 29
输出面板
输出面板位于 QuantCraft 工作区的底部,您的代码输出或绘制的一切内容都会显示在这里 —— print() 语句、错误消息、图表,以及长时间运行的回测的进度。
它由 Run 和 Test 共享:每次执行都会清空它,并在运行过程中写入新的输出。结构化的指标和图表显示在测试结果中。
打开、折叠和调整大小
- 一旦有新内容被记录或绘制,面板就会自动打开,这样您不会错过输出。
- 点击 Output 标题(或其旁边的箭头)可折叠或展开面板。
- 面板上方的水平分隔条可以向上或向下拖动,以给它更多或更少的屏幕空间。您也可以聚焦分隔条并使用上/下方向键微调。
- 输出面板的高度(以及编辑器的分割)会在会话之间保留。
日志(stdout 和运行消息)
您的脚本写入标准输出的任何内容,都会在面板中显示为带时间戳的日志行:
[14:32:11] Loaded 480 bars
[14:32:11] Entering position at 192.40
[14:32:13] Final equity: 102450.13需要了解:
- 每个条目都带有您本地时钟的时间戳。
- 日志文本使用等宽字体并自动换行,因此长行无需水平滚动即可阅读。
- 新输出到达时,面板会自动滚动到最新消息,无论是在运行期间还是在运行刚结束之后。
- 如果脚本结束时没有任何内容可打印,会显示简短的
(no output)占位符。 - 启用日历数据时,引擎会为每个已应用的公司行动(拆股或分红)写入一行
[calendar],并在末尾给出汇总,例如:如果根本没有出现[calendar] 2024-01-10 AAPL — SPLIT 4:1 applied to 1 position(s): 100 -> 400 shares (cost basis unchanged; bars stay unadjusted) [calendar] 2024-02-09 AAPL — DIVIDEND $0.2400/share on 400 share(s): +$96.00 cash … [calendar] corporate actions — 1 split(s) applied; 1 dividend(s) applied (0 exact ex-date, 1 estimated +/-7d)[calendar]行,请检查运行对话框中是否已开启 Include calendar data —— 参见日历数据。 - 在 Screener 回测中,Logs 旁边会出现一个 Screener Output 标签页,列出每个再平衡日期以及该窗口内交易的标的 —— 参见选股器。
每个标签页有约 200 条的上限;达到上限后,较早的行会被丢弃。对于产生大量输出的运行,建议在代码中汇总,或每隔 N 根 K 线打印一次。
错误(stderr)
写入标准错误的任何内容 —— 异常回溯、您的代码通过 stderr 输出的警告,或框架消息 —— 都会以红色高亮显示,并在面板标题栏中计数:
- Output 标题旁会出现一个小型
N error / N errors徽章,显示已记录的错误行数。 - 错误与普通日志行一样保留时间戳,便于您将其与周围的事件对应起来。
- 如果运行以非零退出码结束,但自身没有向 stderr 打印内容,您会看到一行
(exit code N)错误,让您知道运行失败了。
错误计数是一个实时计数器 —— 清空输出(每次 Run / Test 开始时都会发生)会将其重置,如果新的运行安装了软件包或从先前的失败中恢复,计数将被移除。
图表
输出面板会渲染您代码生成的内联图形,因此您不需要外部查看器。
Matplotlib
运行期间您的代码显示的任何 Matplotlib 图形,都会以符合面板宽度的 PNG 图像形式出现。它们非常适合快速的探索性图表。
Plotly
Plotly 图形会在面板内渲染为完全交互式的图表:
- 悬停在某个序列上可查看精确数值。
- 使用鼠标 / 触摸进行缩放和平移。
- 使用 Plotly 工具栏进行下载、自动缩放及其他操作。
- 图表会随面板调整大小。
每个图表 —— 无论是 Matplotlib 还是 Plotly —— 都会在面板时间线中与日志行并列,显示在各自的带边框块中,因此您能准确看到它相对于 print() 输出是在何处生成的。
图表和日志共享每个标签页相同的上限,因此非常长的图形序列最终会把较早的输出挤出视野。
长时间运行的进度
回测运行时,面板标题栏会多出两个元素,让您无需盯着滚动的日志就能掌握进度:
- 一个带有如下标签的进度条:
Bar 1234 / 5000—— 已处理的模拟 K 线数量。Run 3 / 10—— 对于进行中的优化,当前正在执行的运行(占总数)。Gen 2/5 · 7/16—— 对于遗传优化,当前的代/个体。Backtest running—— 引擎已启动但尚无确切进度时。
- 进度条随引擎报告进度而增长,并在运行结束后立即消失。
您可以折叠面板,进度条仍会显示在标题栏中,因此即使您专注于编辑器,运行状态也始终一目了然。
Disclaimer 按钮
标题栏中有一个 Disclaimer 按钮,可打开一段简短的说明,介绍 QuantCraft 如何在您的机器上执行 Python。它与您首次 Run 之前看到的说明相同,只是可随时再次阅读。关闭此对话框不会更改您的设置。
提示
print()是您的好帮手,适合快速调试。保持消息简短并加上标记(f"[ENTRY] {symbol} {qty} @ {price}"),便于快速浏览。- 将冗长的细节写入文件,而不是打印数千行 —— 只有最后约 200 条仍然可见。
- 错误是红色的并计入徽章 —— 当您看到计数增加时,请滚动到底部;最新的错误通常就是中止运行的原因。
- 对于 Plotly,使用面板的调整大小分隔条为图表提供更多高度;它会自动缩放。
- 面板在各文件之间共享:如果您在运行中途切换标签页,您看到的输出属于最近一次/当前活动的执行。

