PDF下载 下载

文件单(新版)

阅读 1437

文件单功能使用指南

功能简介

掘金终端提供了一种委托指令的处理方式,让用户的委托指令,能够以文件的形式,提交给掘金终端进行报单处理,并通过文件的形式,获得相关交易数据的结果反馈。

什么是文件单?

  • 文件单是记录用户的委托指令的数据文件,目前掘金终端支持 dbfcsv 这2种数据文件格式的文件单。
  • 每个文件单中,包含1~n条记录,每条记录代表一笔委托指令
  • 文件单中的字段来描述每笔委托指令的参数,具体的字段请参考下文的接入规范

文件单处理流程

  • 流程如下图所示:
    文件单处理流程

快速上手

下文的示例中,我们将创建一个仿真的交易账户,进行相应的配置,开启文件单功能。

准备交易账户

账户管理仿真账户 界面下,添加仿真账户。 我们新建一个账户,名称为 王富贵

交易账户

账户管理仿真账户 界面下,为刚创建的仿真账户转入资金,以便进行测试。

配置文件单功能

进入配置界面

手工交易 界面下,选择 文件单, 进入文件单配置界面,如下图所示:
手工交易

文件单输入配置

  • 新增一个文件单配置,名称为 王富贵的文件单
  • 设置文件单的输入目录的路径为: C:\test\scan_order

文件单输入配置

文件单输出配置

  • 如果我们的下单的策略需要获取委托执行后的反馈数据,则需要开启对应交易账户的文件单输出
  • 文件单输出的数据项分成6类, 每类数据对应一个数据文件

文件单输出配置

文件单输出目录结构说明

以上图的配置为例,在文件单的输出目录 C:\test\push , 会为每个 启动 了文件单输出的交易账户,创建一个以交易账户ID为名称的子目录,在该子目录下输出相应的数据项文件。例如:王富贵的账户ID为:1395dc4f-3601-11eb-bda5-001018b67b94C:\test\push目录下结构如下所示:

  1. C:\test\push
  2. ├── 1395dc4f-3601-11eb-bda5-001018b67b94
  3. ├── cash.csv
  4. ├── execution_report.csv
  5. ├── func_response.csv
  6. ├── order_status.csv
  7. ├── order_status_change.csv
  8. └── position.csv
  9. └── readme.txt

数据项与文件名的对应关系,请看下表:

csv格式文件名 dbf格式文件名 数据项
cash.csv cash.dbf 交易账户资金数据
position.csv position.dbf 交易账户持仓数据
order_status.csv order_status.dbf 日内委托数据
execution_report.csv execution_report.dbf 委托执行回报数据
order_status_change.csv order_status_change.dbf 委托状态变更流水记录
func_response.csv func_response.dbf 功能号执行结果数据

启动文件单输入

  • 准备下单前,请检查使用文件单输入配置是 启动状态

启动文件单输入

启动文件单输出

  • 准备下单前,请检查使用的交易账户的文件单输出是 启动状态
  • 如果您的策略程序不需要用到文件单输出的数据,则可以不开启

启动文件单输出

检查交易账户的连接状态

  • 准备下单前,请检查使用的交易账户当前处于 已连接 状态
    检查交易账户的连接状态

执行策略程序下发文件单

策略程序请参考示例策略,内含示例策略使用说明。下载地址:示例策略

扫单性能

运行环境

  • 掘金仿真柜台
  • 操作系统:Windows 10,64位,SSD 固态硬盘
  • 掘金版本:3.12.0
  • 硬件配置:4核8G

委托场景

  1. 场景1:委托10笔,每次一笔,收到已报确认后委托下一笔
  2. 场景2:委托100笔,每次一笔,收到已报确认后委托下一笔
  3. 场景3:委托1000笔,每次一笔,收到已报确认后委托下一笔

存量委托对文件单性能影响可忽略不计

测试结果

各测试场景下委托耗时,时间单位为毫秒.

CSV扫单性能数据结果

场景 最小值 中位数 平均值
场景1 10.9706 10.9206 11.0704
场景2 10.9701 10.9706 11.7486
场景3 10.9611 11.0560 11.7765

DBF扫单性能数据结果

场景 最小值 中位数 平均值
场景1 8.9960 13.0940 17.9999
场景2 7.9960 14.0015 18.5304
场景3 6.9980 14.0075 21.7687

测试脚本

测试所用脚本,包含在扫单示例策略源码中。

注意事项

  • 文件单的输入目录和输出目录所在磁盘,最好使用SSD磁盘,能够有效降低磁盘读写操作而引起的延时,进一步提高报单速度。
  • 请勿使用如网络位置的硬盘、WSL(windows虚拟的linux环境)等较为小众环境,在一定情况下会因磁盘读写不稳定造成数据丢失。
  • 因为受 dbf 文件格式规范的内,字符串字段的内容最大长度不能超过 254 个 ANSI 字符。所以,如果要使用的功能号请的 func_args 字段的值,或者返回结果的 data 字段的值得长度超出了限制,请改用 csv 格式的文件单。
  • 推荐开启 数据归档 功能。开启后,会将交易过程中产生的交易数据进行归档保存。方便进行盘后数据分析,并提供了报单速度统计,异常合约检测功能。
  • 扫单功能是通过刷新文件来传递数据由于公网复杂环境以及磁盘IO导致的延迟可能会出现回推数据变更不及时,使用时如出现不同回推文件出现信息不一致的情况,可以等待一段时间后反复查询以确保一致
  • DBF文件定义字段长度超过实际字符长度会默认用空格来填充剩余长度。取数据凡是字符串类型的数据需要去掉空格。
  • DBF格式扫回推信息会存在中文,解析是需要指定utf编码格式。在python中使用dbf库可以在创建table时指定codepage:dbf.Table(dbf_file, codepage='utf8')
  • execution_report和order_status_change 是流水表,如果交易途中没有开启下行,没有收到的数据会丢失。

开启数据归档

请按下图所示,开启数据归档功能。
开启数据归档

接入规范

文件单的输入和输出,现在支持 dbfcsv 这2种格式,请根据选择,查看对应的接入规范文档

0 篇笔记