策略程序的多种入口场景¶
基于TqSdk开发的策略程序可能在多种场景下运行
用户自己在独立python环境下执行策略程序¶
一种常见的运行方式是用户自己运行python策略程序, 象这样:
$python3 my_prog.py
在这种场景下,用户需要在TqApi创建时提供必要的参数
TqApi 独立运行模拟交易¶
创建 TqApi 实例时传入 TqSim
from tqsdk import TqApi, TqSim
api = TqApi(TqSim())
或者不填任何参数, 默认为使用TqSim:
api = TqApi()
TqApi 独立运行实盘交易¶
创建 TqApi 实例时传入 TqAccount
from tqsdk import TqApi, TqAccount
api = TqApi(TqAccount("H海通期货", "022631", "123456"))
特别的, 如果需要连接到期货公司的特定服务器, 可以在 TqAccount 中指定:
api = TqApi(TqAccount("H海通期货", "022631", "123456", front_broker="8888", front_url="tcp://134.232.123.33:41205"))
如果要连接到自己架设的交易网关, 可以使用:
api = TqApi(TqAccount("H海通期货", "022631", "123456"), url="ws://202.33.21.34:7878/")
TqApi 独立运行回测¶
创建 TqApi 实例时传入 TqBacktest
from tqsdk import TqApi, TqSim, TqBacktest
api = TqApi(TqSim(), backtest=TqBacktest(start_dt=date(2018, 5, 1), end_dt=date(2018, 10, 1)))
由天勤拉起策略进程¶
策略程序由天勤拉起执行时, TqApi始终使用默认构造函数, 由天勤提供命令行参数设定策略程序运行方式. 命令行参数包括这些:
_action : run/backtest/mdreplay, 指定运行方式
_tq_pid : int, 天勤进程ID. 策略进程会监控天勤进程的存活情况, 天勤进程退出时所有由天勤创建的策略进程都会自行终止
_tq_url : str, 天勤ws入口. 策略进程通过此端口与天勤通讯
当 _action == run 时, 策略程序按正常交易模式运行, 其它参数:
_broker_id : str, 期货公司代码
_account_id : str, 用户账号
_password : str, 用户密码
当 _action == backtest 时, 策略程序按回测模式运行, 其它参数:
_dt_start : YYYYMMDD, 回测起始日期
_dt_end : YYYYMMDD, 回测结束日期
当 _action == mdreplay 时, 策略程序按复盘模式运行, 其它参数:
_ins_url : url, 合约服务地址
_md_url : url, 行情服务地址
天勤发起实盘运行(含快期模拟)¶
天勤通过命令行参数传递交易账户信息给策略进程:
$ python3 my_prog.py --_action=run --_tq_pid=3233 --_tq_url=ws://127.0.0.1:7777 --_broker_id=快期模拟 --_account_id=13012345678 --_password=123456
天勤发起回测¶
天勤通过命令行参数传递交易账户信息给策略进程:
$ python3 my_prog.py --_action=backtest --_tq_pid=3233 --_tq_url=ws://127.0.0.1:7777 --_dt_start=20180101 --_dt_end=20180630
天勤发起复盘¶
天勤先创建好复盘服务器, 再传递:
$ python3 my_prog.py --_action=mdreplay --_tq_pid=3233 --_tq_url=ws://127.0.0.1:7777 --_md_url=ws://239.12.212.34:43232/... --ins_url=http://123.23.12.34/...