在使用金字塔交易过程中,不可避免的会碰到各种交易问题,读懂交易日志将成为我们快速定位异常问题的必不可少的技能之一。

注:日志受柜台类型不同、下单功能不同等因素的影响,内容上会有些许差异;但是日志结构相同。本章节则使用CTP交易产生的日志为示例进行分析。

# 手工交易日志

下面这段日志是手工下单的一个完整过程。是由本地触发记录柜台回报交互构成。其中单条日志可分解为本地时间类型日志内容三部分组成。其他交易日志都是在此结构基础上填充实现的;因此掌握基础日志分析将有利于后期快速分析复杂的日志记录。

        本地时间             类型                日志内容
----------------------------------------------------------------------------------------------------
2021-12-17 11:22:02.644    【手工】 下单面板 执行下单操作,品种:RB00 螺纹钢连续
2021-12-17 11:22:02.645    【下单】 RB05 价4509.000000 量1 买卖0 类型0 开平0 账户001351 
2021-12-17 11:22:02.649    【下单】 确认报单已发送 ID=32346547 RefID = 1748
2021-12-17 11:22:02.740    【指令】 收到回报指令 ID = 32346547 RefID = 1748 品种:rb2205 账户:001351
2021-12-17 11:22:02.741    【回报】 001351 : rb2205 - 已报单 1 价格:4509 开 买
2021-12-17 11:22:02.755    【指令】 收到回报指令 ID = 32346547 RefID = 1748 品种:rb2205 账户:001351
2021-12-17 11:22:02.759    【指令】 收到成交回报指令 REFID = 1748 vol = 1 Account = 001351
2021-12-17 11:22:02.767    【回报】 001351 : rb2205 - 已成交 1 价格:4509 开 买
1
2
3
4
5
6
7
8
9
10

# 注解

//此条日志记录触发交易相关的操作信息,内容包含使用的功能、相关操作、品种等信息

2021-12-17 11:22:02.644 【手工】[1]  下单面板[2]  执行下单操作[3],品种:RB00 螺纹钢连续[4]

//实际下单品种的委托信息,含委托数量、买卖方向、交易指令等信息

2021-12-17 11:22:02.645 【下单】RB05[5] 价4509.000000[6] 量1[7] 买卖0[8] 类型0[9] 开平0[10] 账户001351 [11]

//执行到出处时,说明本地下单指令已经发出。同时生成本地的ID,用于对于柜台返回的回报信息对应

2021-12-17 11:22:02.649 【下单】确认报单已发送 ID=32346547[12]   RefID = 1748 [13]

//对【回报】信息的补充说明,看到它说明已经接收到了柜台回报信息,此处时对委托回报进行补充说明

2021-12-17 11:22:02.740 【指令】收到回报指令 ID = 32346547 RefID = 1748 品种:rb2205 账户:001351

//柜台回报有很多种,含委托、成交、异常等类型的回报内容;此处为委托回报内容,表示柜台已经成功接收到委托请求

2021-12-17 11:22:02.741 【回报】001351 : rb2205 - 已报单 1 价格:4509 开 买 [14]

//对【回报】信息的补充说明,看到它说明再次接收到了柜台回报信息,此处是对成交回报进行补充说明

2021-12-17 11:22:02.755 【指令】收到回报指令 ID = 32346547 RefID = 1748 品种:rb2205 账户:001351

//此处为成交回报内容,表示柜台已经完成撮合成交,含成交数量、成交价等信息

2021-12-17 11:22:02.759 【指令】收到成交回报指令 REFID = 1748 vol = 1[15] Account = 001351

2021-12-17 11:22:02.767 【回报】001351 : rb2205 - 已成交 1[16] 价格:4509[17] 开 买 [18]

标号 字段解释
[1] 日志类型 含:手工、下单、指令、回报、图表、后台等标记
[2] 触发动作所属的功能;如:下单面板、闪电下单、篮子下单等
[3] 执行的动作类型;如下单操作、撤单操作等
[4] 操作的品种
[5] 实际下单品种
[6] 委托价格 【等于0时表示市价指令】
[7] 下单数量
[8] 买卖方向 【买=0,卖=1】
[9] 交易指令 【限价=0, 市价=1, 停损=2, FAK=4, FOK=5, 对手方最优价=6 , 本方最优价=7
[10] 开平方向 【开=0,平=1,平今=2】
[11] 此次下单的账户
[12] 本地生成的委托订单ID,与柜台回报产生对应关系,可以根据它找到后续相应的柜台回报信息
[13] 本地生成的委托订单RefID ,作用同上
[14] 回报内容,结合上下文,此处为委托信息,涵盖委托数量、委托价格、品种、买卖方向等特征信息
[15] 柜台返回的已成交数量
[16] 同上
[17] 柜台返回的成交价
[18] 柜台返回的成交方向【开买=开多、开卖=开空、平买=平空、平卖=平多】
其它手工日志

日志1:
分析得知:采用闪电下单功能,对IC01合约按照市价指令平多委托1手,成交价为7294元

2021-12-21 13:27:58.841    【手工】闪电下单 执行下单操作,品种:IC01 500股指2201
2021-12-21 13:27:58.843    【下单】IC01 价0.000000 量1 买卖1 类型1 开平1 账户001351 Formula 1
2021-12-21 13:27:58.847    【下单】确认报单已发送 ID=535375324 RefID = 1946
2021-12-21 13:27:58.853    【指令】收到回报指令 ID = 535375324 RefID = 1946 品种:IC2201 账户:001351
2021-12-21 13:27:58.855    【回报】001351 : IC2201 - 已报单 1 价格:7293.4 平 卖
2021-12-21 13:27:58.859    【指令】收到回报指令 ID = 535375324 RefID = 1946 品种:IC2201 账户:001351
2021-12-21 13:27:58.863    【指令】收到成交回报指令 REFID = 1946 vol = 1 Account = 001351
2021-12-21 13:27:58.868    【回报】001351 : IC2201 - 已成交 1 价格:7294.0 平 卖
1
2
3
4
5
6
7
8

日志2:
分析得知以下信息:

  1. 由第1--6行知:使用复合下单功能,针对RB05合约按照4400元委托多头开仓2手。
  2. 由第7行知:1分钟后并未成交,手工执行了对价追单操作。
  3. 由第8--18行知:手工追撤单操作已经执行完毕。
  4. 由第19--25行知:第二次委托追单,委托价4472元,并且完成成交,成交价4472元。

总结:此次下单总共产生了2次委托交易过程,第一次委托(ID=535375366)未成交,手动执行了对价追单操作,委托被撤销。第二次委托(ID=535375367)完成成交操作

 
 
 
 
 
 



 


 
 
 
 


 
 
 
 
 
 
 

2021-12-21 14:29:51.580    【手工】复合下单 执行下单操作
2021-12-21 14:29:51.580    【下单】RB05 价4400.000000 量2 买卖0 类型0 开平0 账户001351 Formula 1
2021-12-21 14:29:51.586    【下单】确认报单已发送 ID=535375366 RefID = 1988
2021-12-21 14:29:51.591    【指令】收到回报指令 ID = 535375366 RefID = 1988 品种:rb2205 账户:001351
2021-12-21 14:29:51.612    【回报】001351 : rb2205 - 已报单 2 价格:4400 开 买
2021-12-21 14:29:51.616    【指令】收到回报指令 ID = 535375366 RefID = 1988 品种:rb2205 账户:001351
2021-12-21 14:31:03.598    【手工】下单面板 执行对价追单操作
2021-12-21 14:31:03.598    【C++】至队列单方式委托
2021-12-21 14:31:03.605    【队列】当前队列准备处理数据:2条
2021-12-21 14:31:03.608    【队列】发送撤单指令 订单号:535375366
2021-12-21 14:31:03.613    【队列】当前队列准备处理数据:2条
2021-12-21 14:31:03.617    【队列】当前有未处理队列,返回等待
2021-12-21 14:31:03.621    【下单】RB05 执行撤单指令 RefID:1988 帐号:001351
2021-12-21 14:31:03.626    【指令】收到回报指令 ID = 535375366 RefID = 1988 品种:rb2205 账户:001351
2021-12-21 14:31:03.633    【指令】收到撤单回报指令 ID = 535375366 RefID = 1988
2021-12-21 14:31:03.638    【回报】001351 : rb2205 - 已撤单 量:2
2021-12-21 14:31:03.643    【队列】当前队列准备处理数据:1条
2021-12-21 14:31:03.648    【队列】发送下单指令
2021-12-21 14:31:03.652    【下单】RB05 价4472.000000 量2 买卖0 类型0 开平0 账户001351 Formula 1
2021-12-21 14:31:03.659    【下单】确认报单已发送 ID=535375367 RefID = 1989
2021-12-21 14:31:03.663    【指令】收到回报指令 ID = 535375367 RefID = 1989 品种:rb2205 账户:001351
2021-12-21 14:31:03.670    【回报】001351 : rb2205 - 已报单 2 价格:4472 开 买
2021-12-21 14:31:03.675    【指令】收到回报指令 ID = 535375367 RefID = 1989 品种:rb2205 账户:001351
2021-12-21 14:31:03.679    【指令】收到成交回报指令 REFID = 1989 vol = 2 Account = 001351
2021-12-21 14:31:03.685    【回报】001351 : rb2205 - 已成交 2 价格:4472 开 买
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 程序化交易日志

程序化交易日志的结构,其核心在手工交易日志结构的基础上的扩充。下面我们分别进行分析图表和后台两种程序化交易日志。日志都可以分解为程序化交易记录和下单操作两部分。下方示例采用----分隔。便于观看。

图表交易日志
2021-12-22 09:03:02.006    【图表】框架:Technic 触发下单 SELL 品种 RB05 下单K线 2021.12.22 13:04:00 公式:MA交易系统 窗格ID:Main 代码行:18
2021-12-22 09:03:02.007    【图表】模型下单 1
2021-12-22 09:03:02.011    【图表】下单系数调整后 手数:1
2021-12-22 09:03:02.014    【图表】实际持仓 7
2021-12-22 09:03:02.018    【图表】直接下单
2021-12-22 09:03:02.023    【图表】RB05 运行完毕
- -------------------------------------------------------------------------------------------------------------
2021-12-22 09:03:02.026    【下单】RB05 价0.000000 量1 买卖1 类型1 开平1 账户001351 Formula 1
2021-12-22 09:03:02.029    【下单】确认报单已发送 ID=2017177127 RefID = 1992
2021-12-22 09:03:02.288    【指令】收到回报指令 ID = 2017177127 RefID = 1992 品种:rb2205 账户:001351
2021-12-22 09:03:02.288    【回报】001351 : rb2205 - 已报单 1 价格:4481 平 卖
2021-12-22 09:03:02.293    【指令】收到回报指令 ID = 2017177127 RefID = 1992 品种:rb2205 账户:001351
2021-12-22 09:03:02.298    【指令】收到成交回报指令 REFID = 1992 vol = 1 Account = 001351
2021-12-22 09:03:02.304    【回报】001351 : rb2205 - 已成交 1 价格:4484 平 卖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  1. 第1行:图表交易中,Technic框架中的Main窗格中的公式(第18行),在2021.12.22 13:04:00这根k上触发了平仓操作。
  2. 第2行:公式中的下单数量为1手
  3. 第3行:若启用了多账户及下单系数功能,那么此时应该为【系数X公式中的手数】。否者等于公式中的下单数量。此处为1手
  4. 第4行:图表平仓操作时,系统会判断账户是否存在可平仓位(开仓无此输出判断),此处得知可平手数为7手。
  5. 第5-6行:图表相关检测执行完毕,执行下单操作。
  6. 第8-14行:请参照手工交易章节中的解释进行分析。此处不再赘述。
后台交易日志
2021-12-22 10:40:02.356    【后台】AG00 TSell 第 2 行 策略:<123> 出现信号
2021-12-22 10:40:02.356    【后台】AG00 TSell 已成功触发下单操作 价格:4826.000000 数量:1 类型:0 账户: 品种:AG00
2021-12-22 10:40:02.363    【后台】实际账户持仓 2
2021-12-22 10:40:02.369    【后台】下单已发送
2021-12-22 10:40:02.454    【后台】AG00 运行结束
- -------------------------------------------------------------------------------------------------------------
2021-12-22 10:40:02.461    【下单】AG06 价4826.000000 量1 买卖1 类型0 开平1 账户001351 Formula 1
2021-12-22 10:40:02.466    【指令】收到回报指令 ID = 2017177138 RefID = 2003 品种:ag2206 账户:001351
2021-12-22 10:40:02.471    【下单】确认报单已发送 ID=2017177138 RefID = 2003
2021-12-22 10:40:02.478    【回报】001351 : ag2206 - 已报单 1 价格:4826 平 卖
2021-12-22 10:40:02.483    【指令】收到回报指令 ID = 2017177138 RefID = 2003 品种:ag2206 账户:001351
2021-12-22 10:40:02.521    【指令】收到成交回报指令 REFID = 2003 vol = 1 Account = 001351
2021-12-22 10:40:02.527    【回报】001351 : ag2206 - 已成交 1 价格:4826 平 卖
1
2
3
4
5
6
7
8
9
10
11
12
13
  1. 第1-2行:白银在后台预警<123>触发了平多操作,按照限价4826元处理。
  2. 第3行:平仓操作时,系统会判断账户是否存在可平仓位(开仓无此输出判断),此处得知可平手数为2手
  3. 第4-5行:后台执行结束,执行下单操作。
  4. 第7-13行:请参照手工交易章节中的解释进行分析。此处不再赘述。
辅助功能日志

程序化追撤单功能参与图表程序化交易产生的日志。图表触发交易后,由于挂单未成交,触发了10s未成交则撤单追单的功能。日志如下所示:

2021-12-22 11:14:01.815    【图表】框架:Technic 触发下单 BUY 品种 RB00 下单K线 2021.12.22 15:14:00 公式:Formula5 窗格ID:Main 代码行:1
2021-12-22 11:14:01.815    【图表】模型下单 1
2021-12-22 11:14:01.820    【图表】下单系数调整后 手数:1
2021-12-22 11:14:01.824    【图表】直接下单
2021-12-22 11:14:01.833    【图表】RB00 运行完毕
2021-12-22 11:14:01.835    【下单】RB05 价4437.000000 量1 买卖0 类型0 开平0 账户001351 Formula 1
2021-12-22 11:14:01.843    【下单】确认报单已发送 ID=2017177153 RefID = 2018
2021-12-22 11:14:01.848    【指令】收到回报指令 ID = 2017177153 RefID = 2018 品种:rb2205 账户:001351
2021-12-22 11:14:01.852    【回报】001351 : rb2205 - 已报单 1 价格:4437 开 买
2021-12-22 11:14:01.862    【指令】收到回报指令 ID = 2017177153 RefID = 2018 品种:rb2205 账户:001351
- -------------------------------------------------------------------------------------------------------------
2021-12-22 11:14:11.738    【追单】发送了首次追单下单指令到队列 追单数量:1 账户001351 报单:1 成交0
2021-12-22 11:14:11.739    【追单】追单队列 撤单操作 订单号:2017177153 账户:001351
2021-12-22 11:14:11.745    【下单】RB05 执行撤单指令 RefID:2018 帐号:001351
2021-12-22 11:14:11.768    【指令】收到回报指令 ID = 2017177153 RefID = 2018 品种:rb2205 账户:001351
2021-12-22 11:14:11.778    【指令】收到撤单回报指令 ID = 2017177153 RefID = 2018
2021-12-22 11:14:11.781    【回报】001351 : rb2205 - 已撤单 量:1
- -------------------------------------------------------------------------------------------------------------
2021-12-22 11:14:11.784    【下单】RB05 价4441.000000 量1 买卖0 类型0 开平0 账户001351 Formula 1
2021-12-22 11:14:11.792    【下单】确认报单已发送 ID=2017177154 RefID = 2019
2021-12-22 11:14:11.799    【追单】撤单成功,发送追单指令
2021-12-22 11:14:11.803    【指令】收到回报指令 ID = 2017177154 RefID = 2019 品种:rb2205 账户:001351
2021-12-22 11:14:11.810    【回报】001351 : rb2205 - 已报单 1 价格:4441 开 买
2021-12-22 11:14:11.815    【指令】收到回报指令 ID = 2017177154 RefID = 2019 品种:rb2205 账户:001351
2021-12-22 11:14:11.819    【指令】收到成交回报指令 REFID = 2019 vol = 1 Account = 001351
2021-12-22 11:14:11.827    【回报】001351 : rb2205 - 已成交 1 价格:4441 开 买
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  1. 第1-10行:完整的图表下单日志,整个交易完成了交易委托,并收到了委托成功的回报。
  2. 第11-17行:通过时间可知,在收到委托回报后,经过10秒挂单后,触发撤单动作。并且成功完成撤单
  3. 第19-26行:完成撤单后,追单委托交易。并且完成成交。

其他辅助类功能参与交易中,其日志机构基本类似,不再枚举示例进行分析。用户可以自行尝试分析。遇到问题可以论坛咨询技术人员协助处理。

# 异常日志

异常日志分析

异常日志1:
分析得知:此次手工下单,已经正常委托至柜台(第5行)。之后被柜台撤单。撤单原因:由前缀时间得知,是在非交易时段委托造成的。

2021-12-21 13:10:40.608    【手工】下单面板 执行下单操作,品种:AG00 白银连续
2021-12-21 13:10:40.609    【下单】AG06 价4321.000000 量1 买卖0 类型0 开平0 账户001351 Formula 1
2021-12-21 13:10:40.612    【下单】确认报单已发送 ID=535375315 RefID = 1937
2021-12-21 13:10:40.623    【指令】收到回报指令 ID = 535375315 RefID = 1937 品种:ag2206 账户:001351
2021-12-21 13:10:40.623    【回报】001351 : ag2206 - 已报单 1 价格:4321 开 买
2021-12-21 13:10:40.674    【指令】收到撤单回报指令 ID = 535375315 RefID = 1937
2021-12-21 13:10:40.675    【回报】001351 : ag2206 - 26:已撤单报单被拒绝SHFE:当前状态禁止此项操作 量:1
1
2
3
4
5
6
7