天勤策略程序与天勤软件采用网络协议通讯. 因此, 天勤策略程序可以在天勤软件中运行, 也可以在其它任何标准的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 的, 例如:
- spyder: 详见 https://github.com/spyder-ide/spyder/issues/7096
- jupyter: 详见 https://github.com/jupyter/notebook/issues/3397
在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