大家对于投研和GT这两个系统都不陌生,GT和投研都是属于迅投的系统,那可能就会有疑问:这两个系统怎么联合使用呢? 该帖子主要介绍如何通过Python脚本进行投研对接GT预埋单下单股票,期货,期权的自动下单。通过提供具体的代码示例和配置步骤,完成自动化下单。 (ps:完整代码在帖子最后)
一、 环境配置
为了顺利运行脚本,需要在自己的电脑里面配置如下环境:
1)Python环境:读写DBF文件需要用到对应Python库,用户可以自行寻找三方的DBF读写库或者我们提供的dbf读写库,需要注意的是我们现在的DBF读写库需要用到Python3.6版本 2)依赖库:三方库一般可以通过pip安装,我们的dbf读写库位于投研安装目录\bin.x64\Lib\site-packages\xtdbf 可以自行复制该库到自己的Python环境变量下 3)GT监控设置:在GT平台上打开预埋单,设置监控路径(默认为GT安装路径下export_data文件夹),勾选自动运行(如需要)。
4)文件路径:根据实际情况修改脚本中的DBF文件路径。 5)查询函数时间修改:我们这个客户端的导出是带着日期的,这个日期需要改成当日日期。
二、 代码关键部分简单介绍
以下是代码的关键部分及其功能介绍:
1)设置下单参数: - # dbf_order_path 需要填在GT设置的监控路径
- dbf_order_path = r'C:\迅投资产管理平台交易终端r2\export_data\XT_DBF_ORDER.dbf'
- if not os.path.exists(dbf_order_path):
- raise FileNotFoundError(f"{dbf_order_path} dbf报单文件不存在")
- file = dbf(dbf_order_path, 'w') #以读写打开dbf报单文件
- # 委托列表
- order_list = []
- # 参数配置
- order_type = 23 # 下单类型 # 0 开多(六键风格)
- price_type = 'gdj' # 迅投算法 可在gt批量预埋单设置界面的快捷交易参数设置里面添加
- mode_price = '' # 用算法时,价格可不用填
- stock_code = 'SH600000' # 下单标的代码 如:股票SH600000, 期货 i2401
- volume = 200
- account_id='2000465'
- act_type = 49 # # -1:期货、期货期权账号,49:股票及其他账号账号
- brokertype = 2 # 期货1,股票2
- strategy='' # 策略备注
- note='' # 投资备注
复制代码
2)构建下单请求: - order_data = {
- 'ORDER_TYPE': str(order_type),
- 'PRICE_TYPE': str(price_type),
- 'STOCK_CODE': str(stock_code),
- 'VOLUME': str(volume),
- 'ACCOUNT_ID': str(account_id),
- 'ACT_TYPE': str(act_type),
- 'BROKERTYPE': str(brokertype),
- 'NOTE': str(note),
- }
- order_list.append(order_data)
复制代码
3)写入DBF文件: - file.write_datas(order_list) # 将订单数据写入DBF文件
复制代码
4)读取DBF文件:
- result = file.read_datas(0) # 读取所有数据
- if result:
- pprint(result[-1]) # 显示最新订单信息
复制代码
三、程序运行效果
在运行脚本并下单后,可在GT交易端查看下单效果
注:示例里面的read_dbf_file函数可以读取GT端导出的交易回报
|