使用 Python

通过代码创建策略适合偏好 Python 编程的用户。与策略图相比,此类策略不受功能限制,可以实现任意算法。

可以直接在 Designer 中创建策略,也可以使用 Python 开发环境(最常用的是 Visual StudioJetBrains Rider),结合专业的 Python 交易机器人开发库和 API 进行开发。

要添加新策略,可以在 常规 选项卡中单击 添加 按钮 Designer 线路面板 01,然后选择 策略。也可以在 策略图 面板中右键单击 策略 文件夹,再在下拉菜单中单击 添加 按钮 Designer 线路面板 01

Designer 创建策略 00

单击 添加 按钮 Designer 线路面板 01 后,会显示用于选择策略内容类型的窗口:

Designer_Creation_of_element_containing_source_code_00

要通过 Python 代码创建策略,请选择第二个选项卡。还可以选择一个模板作为初始代码。

单击 确定 后,新策略会显示在 策略图 面板的 策略 文件夹中,与通过策略图创建策略时相同。删除和重命名策略的操作也相同。

但此时显示的不是策略图,而是 Python 代码编辑器:

Designer_Creation_of_element_containing_source_code_01

代码编辑器选项卡由 源代码错误列表 面板组成。源代码 面板包含 Python 代码编辑器。顶部工具栏可用于启用或禁用 当前行行号 等显示选项。可以使用 CTRL+鼠标滚轮放大或缩小字体。

错误列表 面板以表格形式显示代码错误。双击某一行后,源代码 面板中的光标会自动移动到对应的错误位置。

编辑代码时,错误列表 面板右下角会显示 Designer 创建包含源代码的方块 03 图标,表示程序已开始跟踪更改。代码停止变化后会自动编译。

策略的回测实盘运行及其他操作,与使用策略图创建的策略相同。

限制

Warning

Designer 使用 IronPython,因此存在以下限制:

  • 兼容 Python 3.4。
  • 通过专用 .NET 实现提供部分 numpy 支持(使用示例参见此处)。
  • 不支持 pandas、scipy 等使用 C 编写的其他常用库。
  • 对异步编程的支持有限。
  • 某些依赖 CPython 特定实现的 Python 内置模块无法使用。
  • 某些操作的性能可能低于 CPython。

Designer 中使用 Python 开发交易策略时,应充分考虑这些限制。