在 Python IDE 中开发和调试策略程序

天勤策略程序与天勤软件采用网络协议通讯. 因此, 天勤策略程序可以在天勤软件中运行, 也可以在其它任何标准的python环境下执行, 甚至可以与天勤软件分别在两台电脑上运行.

如果您非常熟悉 python 开发, 天勤支持您在自己喜欢的 IDE 中开发和调试策略程序.

todo: 构架图, 通讯协议参考文档

在外部运行天勤策略程序有什么好处

  • 可以使用功能完备的IDE来调试程序, 包括加断点, 查看变量等等
  • 如果策略程序需要使用更多的第三方库, 外部python环境可能更便于库的安装和管理
  • 允许策略程序和天勤软件在两台甚至多台电脑上运行. 其中运行策略程序的电脑可以使用Linux或MacOs

环境准备

您准备用来开发策略程序的电脑需要已经安装 Python 3.6 或以上版本, 并安装 tqsdk 开发包:

pip install tqsdk

您也可以到 https://github.com/shinnytech/tqsdk-python 下载 tqsdk 源码手动安装:

$ git clone https://github.com/shinnytech/tqsdk-python.git
$ cd tqsdk-python
$ python setup.py install

您可以选择自己喜欢的IDE工具. 需要注意: TqSdk 使用了 python3 的原生协程和异步通讯库 asyncio,您需要选择支持 asyncio 的 IDE, 例如:

  • pycharm
  • vscode

部分 IDE 不支持 asyncio, 是无法运行 tqsdk 的, 例如:

在IDE中运行天勤策略程序的一些注意事项

与在天勤软件中直接运行策略程序相比, 通过外部IDE运行策略程序有一些重要的区别:

  • 在外部运行天勤策略程序, 必须在程序中明确写入交易账号和策略ID, 像这样:

    api = TqApi("7382621.abcd")  # 7382621 是期货账号, 必须与天勤当前登录的期货账号一致. abcd 是策略ID, 可以任意设定, 用于策略运行监控
    
  • 在外部执行策略程序时, 不会出现参数输入板, 策略会直接按代码中写入的参数运行

  • 策略程序在外部运行时, 天勤中的【策略运行】页面依然会对策略运行情况进行监控. 但是你无法在天勤中【停止策略】, 如果要停止策略程序运行, 你需要自己在IDE中停止

  • 策略程序在外部运行时, 所使用的tqsdk版本是你通过pip安装的版本, 与天勤安装包中携带的tqsdk版本可能不一致, 这可能导致难以预见的后果. 尽量保持天勤终端和tqsdk都更新到最新版本可以降低这一风险, 但仍不能完全避免. 如果你的IDE支持, 也可以考虑指定IDE使用天勤安装目录下的那份 python 解释器

关于TqSdk的更多资料

如需更深入了解 TqSdk, 可以阅读TqSdk的文档 https://doc.shinnytech.com/tqsdk/latest