2.7 内置编辑器

适用版本 V3 Windows

本篇重点:本篇讲怎么用内置编辑器(VS Code)打开策略、打断点,一步步调试回测。

想在编辑器里用 AI?

这个编辑器就是 VS Code,可以装 AI 编程插件,直接在里面让 AI 改代码。不过我们更推荐在命令行里用 Codex、Claude Code 这类 AI 助手调用 khQuant Skill:它能按真实命令下数据、跑回测、汇总结果,一条线做完研究,见 2.2 命令行模式与 AI 智能策略研究。编辑器更适合你自己看代码、打断点排查问题。

1 它是什么

「编辑器」打开的是一个单独的 VS Code 窗口。khQuant 给它用了独立的扩展目录和设置目录(在安装目录下的 vscode_extensions、vscode_userdata),所以里面装的插件、改的设置,和你平时用的 VS Code 互不影响。

打开时 khQuant 会自动:

  • 以策略文件所在的文件夹作为工作区,打开当前策略文件;
  • 在这个文件夹下生成 .vscode\launch.json(调试配置,名为「看海策略调试 - 附加到进程」)和 .vscode\settings.json(深色主题、自动保存、khQuant 函数的代码提示路径)。这两个文件每次打开编辑器都会重新生成,不要手动改。

2 第一次使用前:安装 VS Code

到 VS Code 官网 code.visualstudio.com 下载 Windows 版并安装,用默认安装位置即可。

没装时点「编辑器」,会弹出「需要安装VSCode」:

没装 VS Code 时的提示
没装 VS Code 时的提示

装好以后再点一次「编辑器」就行。弹窗里说要重启,但装在默认位置时一般不用重启 khQuant。(装在非默认位置、只能通过 PATH 找到的,需要重启 khQuant。)

3 打开策略

  • 已经加载了 .kh 配置:点「编辑器」,打开配置里的策略文件。
  • 还没有策略:会问「当前未设置策略文件,是否创建新策略?」。点「是」,选择保存位置(默认 文档\KhQuant\strategies\新策略.py),软件用模板生成一个带 init、khHandlebar、khPreMarket、khPostMarket 四个空函数的策略,并把主界面的策略文件改成它。点「否」则什么也不打开。
  • 换一个策略:在主界面加载另一个 .kh,再点一次「编辑器」,会在已经开着的窗口里打开新的策略文件。
没有策略时点「编辑器」的提问
没有策略时点「编辑器」的提问

编辑器里改的代码会自动保存(停顿 1 秒后)。策略每次运行都会从磁盘重新读取,改完直接点「开始运行」就是新代码,不用重启软件。

4 第一次打开要做的三件事

第一次点「编辑器」,会弹出一个独立的 VS Code 窗口,打开策略所在的文件夹和当前策略:

第一次打开:左边是策略文件夹,中间是策略代码;顶部提示「Restricted Mode」,右下角提示安装 Python 扩展
第一次打开:左边是策略文件夹,中间是策略代码;顶部提示「Restricted Mode」,右下角提示安装 Python 扩展
  1. 欢迎页:VS Code 第一次启动会显示「Welcome to VS Code」,提示登录。不需要登录,点右下角「Continue without Signing In」,再点「Get Started」即可。
  2. 安装 Python 扩展:右下角提示安装微软的 Python 扩展时点「Install」;没有提示的话,按 Ctrl+Shift+X 打开扩展面板,搜索「Python」安装。它会顺带装上 Python Debugger 和 Pylance,之后有语法高亮、代码补全(包括 khQuant 的函数)和调试功能。需要联网,只装一次。
  3. 信任这个文件夹:顶部「Restricted Mode」表示 VS Code 还不信任这个文件夹,此时扩展和调试都用不了。安装扩展时弹出「Do you trust the authors of the files in this folder?」,点「Trust Workspace & Install」;或者点顶部提示条里的「Manage」,选择信任。
信任文件夹并安装扩展
信任文件夹并安装扩展

5 断点调试

  1. 设断点:在策略代码(例如 khHandlebar 里)某一行的行号左边点一下,出现红点。
  2. 开始运行:回到主界面点「开始运行」。编辑器开着时这就是调试运行。
  3. 自动进入调试:主界面日志依次显示「调试服务器已启动在端口 15678」(端口被占用时会换成后面的端口)「正在自动启动VSCode调试会话…」,连上后显示「✓ 调试器已连接,自动附加成功」。VS Code 停在断点处,当前行高亮。
  4. 查看和单步:左侧 Variables(变量)面板看当前的数据、持仓和变量,Call Stack(调用栈)看停在哪个函数;鼠标悬停在变量上看值;在 Debug Console(调试控制台)里输入表达式求值。
按键作用
F5继续运行到下一个断点
F10单步跳过(执行当前行)
F11单步进入(进入函数内部,可以进到 khQuant 框架代码)
Shift+F11单步跳出
Shift+F5断开调试
停在断点处:左侧 Variables 面板显示当前的参数、价格和均线值,调用栈停在 khHandlebar,代码行内也显示变量值
停在断点处:左侧 Variables 面板显示当前的参数、价格和均线值,调用栈停在 khHandlebar,代码行内也显示变量值

如果自动连接试了 3 次都没成功,日志会提示「自动附加未成功,请手动在VSCode中按F5启动调试」。这时到 VS Code 里按 Ctrl+Shift+D,在顶部下拉框里选「看海策略调试 - 附加到进程」,再按 F5。

注意

每次打开软件后的第一次调试运行,会一直等到 VS Code 连上才开始回测。回测停在开头不动时,按上面的方法手动连接;VS Code 已经被关掉的,再点一次主界面的「编辑器」,打开后会自动连上,回测随即继续。不要指望关掉编辑器或点「停止运行」来解决:这次回测会一直等下去,「停止运行」会停在「正在停止策略…」。

回测结束或中途停止后,调试服务继续在后台等着。下次点「开始运行」会再次自动连接,不需要重启主程序。

6 调试运行和平时回测的区别

  • 编辑器开着,每次「开始运行」都是调试运行。本次打开软件后的第一次运行会一直等 VS Code 连上;之后只要调试器还连着就直接运行,已断开则最多等 30 秒,超时后不再等待、继续运行。
  • 调试运行时策略线程处在调试器的跟踪下(包括框架代码),所以比平时回测慢。
  • 编辑器已经开着时再切到另一个文件夹里的策略,点「编辑器」只会在原窗口里打开这个文件,工作区和调试配置仍是第一次打开的文件夹;需要的话先关掉编辑器再重新打开。
  • 关掉编辑器窗口,日志显示「调试模式已自动禁用(编辑器关闭)」,之后的回测恢复正常速度。
  • 关掉以后还可以再点「编辑器」重新打开。
  • kh 命令行和 Web 回测没有断点调试,排查问题时请用图形界面。

常见问题

问:明明装了 VS Code,还是提示「需要安装VSCode」?
答:先确认装在默认位置(用户版在 %LOCALAPPDATA%\Programs\Microsoft VS Code,系统版在 Program Files\Microsoft VS Code)。另外,同时开了两个 khQuant 主程序,或者其他软件占用了本机 8765 端口时,也会出现这个提示:关掉多余的程序,重启 khQuant 再试。

问:VS Code 打开了,但没有代码高亮、不能调试?
答:还没装 Python 扩展,或者文件夹还处在「Restricted Mode」(未信任),见第 4 节。

问:断点是灰色的,或者不停?
答:看主界面日志有没有「✓ 调试器已连接」。没连上就手动连接(第 5 节)。连上了还不停,检查断点所在的代码这次运行有没有被执行到。

问:点了「开始运行」,回测一直不动?
答:编辑器开着时第一次运行在等调试器连接。到 VS Code 里手动连接;编辑器已经关了的,再点一次「编辑器」,打开后会自动连上,回测就会继续。关掉编辑器或点「停止运行」都解不开。

问:Mac 上怎么调试?
答:Mac 版没有内置编辑器和断点调试。可以用自己的编辑器写策略,用日志输出排查问题。

本篇基于 V3.4.1.10 编写。

×
没有账号?注册  忘记密码?

风险提示

投资有风险,开户需谨慎。本系统仅为投资者提供量化交易相关的数据处理与分析工具,不构成任何投资建议。 请您在审慎思考后作出选择。特别声明:本系统对您与券商之间的交易、合作不承担任何法律责任。 市场有风险,投资需谨慎。

© 2024 khQuant看海量化回测平台 版权所有

官网:www.khsci.com/khQuant