文档1.0 (latest)
页面运行代码 · 7 / 29

运行代码

带有 Run(播放)、Test、Compile 和侧边栏控件的 QuantCraft 编辑器工具栏。

QuantCraft IDE 为您提供三种方式来执行您正在编辑的文件(工作区),每种都有特定用途:

按钮作用何时使用
Run将当前文件作为普通 Python 脚本执行。快速检查、原型开发、打印数值、检验辅助函数、生成临时图表。
Test启动对策略的回测。在历史数据上评估策略、单次运行、参数扫描或遗传优化。参见回测。
Compile构建策略的可运行包,之后可将其附加到图表。为在 IDE 之外的图表上运行而准备已完成的策略。

打开文件时,这三个按钮都位于编辑器区域的右上角。Run 和 Test 对任何文件始终可用;Compile 则出现在符合 QuantCraft 策略模板的 .py 文件上。


快速运行(Run 按钮)

Run 按钮是执行代码最简单的方式:它从头到尾运行您正在查看的文件,就像一个普通的 python myfile.py。

如何运行

  1. 在编辑器中打开您想要运行的文件(不必是策略——任何 .py 文件均可)。
  2. 点击编辑器上方工具栏中的 Run。
  3. 每个会话第一次使用时,您会看到 Disclaimer 对话框(见下文)。点击 I understand 继续。
  4. 输出会在产生时流式显示在工作区底部的输出面板中。

代码运行期间,Run 和 Test 按钮会被禁用,以防止运行重叠。

执行的内容

  • 活动文件是入口点。
  • 工作区中的所有其他文件和文件夹都可供使用,这样您就可以在运行的文件中 import 它们(工作区文件夹的工作方式与 Python 包类似——from my_folder import my_module)。
  • 代码在 QuantCraft IDE Python 环境(依赖项)中运行,因此 Packages 下列出的任何软件包(包括您添加的)都可以导入。

Run 中可用的功能

  • print(...) 以及写入 stdout / stderr 的任何内容都会实时显示在输出面板中(错误以红色显示)。
  • Matplotlib 图(plt.show() 风格的图表)会作为图像内联渲染在输出面板中。
  • Plotly 图会渲染为内联的交互式图表。
  • 脚本可以使用标准库、您环境中的第三方软件包以及您自己的工作区模块。

何时不使用 Run

Run 执行的是纯 Python——它不会驱动 QuantCraft 回测引擎。如果您的文件依赖策略回调 on_init、on_bar 和 on_finish,Run 不会调用它们;请改用 Test(策略生命周期)。


输出

无论您的代码在哪里打印、绘图或报错,都可以在工作区底部的输出面板中看到。

您会看到什么

  • 写入 stdout 的所有内容对应的带时间戳的日志行。
  • 写入 stderr 的所有内容对应的红色错误,以及面板标题栏中的一个小型错误计数徽章。
  • 内联图表 — Matplotlib 图像和 Plotly 交互式图表。
  • 如果脚本成功运行但没有打印任何内容,则显示 (no output)。
  • 如果脚本以非零退出码结束且未写入错误,则显示 (exit code N)。

使用面板

  • 点击 Output 标题(或其旁边的箭头)可折叠 / 展开面板。
  • 新行到达时,面板会自动滚动到最新输出。
  • 面板在各文件之间共享 — 下次运行 Run 或 Test 时,之前的输出会被清除,让您重新开始。
  • 使用面板上方的分隔条来调整它占据的屏幕大小。

Run 和 Test 都写入同一个输出面板;Test 还会在编辑器区域的 Test Results 视图中显示结构化结果。


免责声明

QuantCraft 在您的机器上使用您的用户账户执行 Python。在会话中首次运行之前,您会看到一个 Disclaimer 对话框,用通俗的语言解释这一点。

免责声明涵盖的内容

  • 代码不在沙箱中运行——脚本可以读写您有权访问的文件、使用网络并启动其他程序(例如通过 subprocess)。
  • 这适用于使用您信任的代码进行本地开发。
  • 您需要对您运行的代码、安装的软件包以及发送给外部服务的数据负责。

出现的两种方式

  • Run 流程免责声明 — 在您点击 Run(或 Test)时出现。它包含一个**“Don't show this again”**复选框。如果您在点击 I understand 之前勾选它,之后的 Run 和 Test 将跳过该对话框并立即执行。
  • 参考免责声明 — 也可随时通过输出面板标题栏中的 Disclaimer 按钮打开。此版本为只读 —— 关闭它不会更改您的设置。

如果您之后改变主意,想让该对话框重新出现,请清除浏览器/应用中 QuantCraft 的网站数据(或使用您常用的应用重置方式),下次 Run 时免责声明将再次出现。


Run、Test 与 Compile —— 何时使用哪一个

使用这份简短的指南选择合适的操作。

在以下情况使用 Run…

  • 您想快速执行脚本并查看它打印或绘制的内容。
  • 您正在为辅助函数做原型、探索数据或验证计算是否符合预期。
  • 您正在编写一个根本不是策略的小型实用脚本。
  • 您想在开发过程中打印中间值。

Run 是最快的反馈循环。它不模拟交易,不计算绩效指标,也不需要策略模板。

在以下情况使用 Test…

  • 您想在历史数据上回测策略。
  • 您的文件遵循 QuantCraft 策略模板(包含 on_init、on_bar、on_finish)。
  • 您需要结构化结果:净值曲线、绩效指标、交易历史和图表。
  • 您想扫描参数(暴力优化)或运行遗传优化来搜索较好的参数组合。

点击 Test 时,会打开 Backtest 对话框,您可以在其中选择标的、日期范围、参数以及(可选的)优化设置。Test 通过回测子进程运行您的策略(与普通 Run 的路径不同)——IDE 通过 WebSocket 发送配置,并将进度流式输出到输出面板。结果随后显示在编辑器的 Test Results 视图中。您可以随时用 Stop 停止长时间运行的测试。

在以下情况使用 Compile…

  • 您有一个已完成的策略,想将其附加到图表(以便它在 IDE 之外针对实时或已记录的数据运行)。
  • 该文件是包含必需回调(on_init、on_bar、on_finish)的 .py 策略。

Compile 会将策略连同其导入的工作区模块和所需的 IDE 软件包打包成单个可运行包文件(*.qcraft.json),您可通过系统文件对话框将其保存到磁盘。该包不会自行运行——它旨在附加到图表,从那里驱动策略。

如果 Compile 按钮被禁用,说明文件缺少必需的策略回调之一。添加 def on_init():、def on_bar(...): 和 def on_finish():(或使用默认策略模板)即可启用。


提示

  • 停止长时间运行 — 回测进行时,Run/Test 控件旁边会出现 Stop 按钮。普通的 Run 脚本可通过关闭文件或中断后端来结束。
  • 我的输出去哪了? — 输出面板在 Run 和 Test 之间共享。如果您在两者之间切换过,请在面板中向上滚动;最近一次运行的输出在底部。
  • 导入工作区中的其他文件对 Run 同样有效 — Run 和 Test 都将您的工作区视为包树,因此相同的 import 语句在两者中的行为一致。
  • 分享前先编译 — 如果您想在图表上使用该策略,请务必在最后一次编辑后进行 Compile,以便包反映您最新的代码。
阅读约 2 分钟建议修改 ↗
运行代码 — 文档 (1.0 (latest)) | QuantCraft