在天勤中运行TqSdk程序

天勤软件中内置了完整的Python环境和TqSdk包。使用TqSdk开发的python程序,可以不加任何修改,放入天勤软件中运行或回测,但有一些重要差别

策略的交易账户将是天勤软件的当前登录账户

按照TqSdk文档,我们总是在创建TqApi时指定交易账户,类似这样:

api = TqApi(TqSim())  # 使用模拟交易
api = TqApi(TqAccount("xx期货", "475892", "123838"))  # 使用实盘交易账户

当这个策略被放入天勤中运行时,指定交易账户的代码将【无效】,策略的所有交易行为,将指向当前天勤软件登录的交易账号 (实盘或模拟)

类似的,这个程序在天勤中也可以直接进行回测,而不需要修改代码,在TqApi创建时加入backtest参数

天勤将为策略程序中的参数变量自动提供输入面板

如果您希望在策略中设置一些参数,在策略每次运行时输入,您只需要:

  • 用全大写字符作为参数变量名
  • 确保这些参数在TqApi创建前出现
  • 参数是整数、浮点数或字符串类型

以 doublema.py 为例:

from tqsdk import TqApi, TqSim, TargetPosTask

SHORT = 30  # 短周期
LONG = 60  # 长周期
SYMBOL = "SHFE.bu1906"  # 合约代码

api = TqApi(TqSim())
...

这个策略在天勤中运行时,会自动出现这样的参数输入面板:

../_images/dialog_param_run.png

回测时则会出现这样的参数输入面板:

../_images/dialog_param_backtest.png

天勤为策略回测结果提供可视化支持

在天勤中对策略执行回测,会在行情图表上展示完整的交易情况,包括:

  • 在行情图上标出持仓时段和持仓盈亏
  • 在行情图上标出所有成交点
  • 点击成交记录,K线图直接定位到对应时间
  • 行情图可以任意切换周期
  • 支持涉及多个合约的交易策略
../_images/page_backtest_demo.png

天勤为策略运行提供沙盒隔离、实时监控、图表标记和记录存档

在天勤中运行策略时,天勤对每个策略实例的报单和交易记录分别管理,体现在:

  • 在天勤的【策略运行】页面上,任意选中一个策略,都会立即显示出这个策略的报单、成交记录。
  • 和策略回测一样,天勤也为策略运行的交易记录提供图表标记。
  • 【策略运行】上放置的下单板,允许用户以任意策略的身份手工下单。
  • 每个策略都可以随时停止或重新开始运行。策略多次运行的交易记录和日志,会合并到同一个文件。
  • 天勤中启动运行的策略实例与当前登录账号绑定,当天勤以其它账号登录时,不会显示非此账号创建的策略实例。
../_images/page_run_demo.png

其它注意事项

  • 在天勤中运行策略程序时,不会开启控制台窗口,因此 策略代码中所有 print 输出均不可见 。我们推荐遵循python规范,使用logging库输出日志信息。天勤能与logging配合,将信息存档到文件并同时显示到屏幕上
  • 天勤默认的策略代码位置在天勤的 strategies 目录,其中 user 目录用来保存用户在天勤中创建的策略
  • 天勤中内置的Python版本为 3.6.7 64位版,并预装了 tqsdk, numpy, pandas 等库。如果您的策略使用了某些天勤没有预装的库,您可以自行将相应的库文件放置到天勤安装目录的python目录下
  • 天勤中每启动一个策略,都会在天勤的instances目录下创建两个文件,其中 xxxxx.desc 含有策略程序名和策略参数表,xxxxx.report 记录了策略的报单、成交及日志。
  • 天勤中执行的策略回测,也会在天勤的backtests目录下创建两个文件,格式同上