在图表程式化交易当中,我发现了下面几个错误下单的情况:
(1)账户->【成交明细】【委托记录】Tab,这两个账户的中的记录情况会有错误。
其中【成交明细】可能会出现重复记录同一时间的买入,如下红字部分:
1 11:28:58 IF11 股指1411 买入 2376.4 1 平 809529 投机
2 11:24:58 IF11 股指1411 买入 2376.6 1 平 809529 投机
3 11:24:58 IF11 股指1411 买入 2376.6 1 平 809529 投机
4 11:24:58 IF11 股指1411 买入 2376.6 1 平 809529 投机
5 11:16:00 IF11 股指1411 卖出 2378.4 1 开 809529 投机
6 11:11:59 IF11 股指1411 卖出 2378.4 1 开 809529 投机
7 11:11:59 IF11 股指1411 卖出 2378.4 1 开 809529 投机
8 11:11:59 IF11 股指1411 卖出 2378.4 1 开 809529 投机
9 10:31:58 IF11 股指1411 买入 2378.6 2 平 809529 投机
10 10:27:59 IF11 股指1411 买入 2379.2 2 平 809529 投机
11 10:27:59 IF11 股指1411 买入 2379.2 2 平 809529 投机
12 10:27:59 IF11 股指1411 买入 2379.2 2 平 809529 投机
但其实在【委托记录】中并不存在以上的重复委托
2 13:32:58 IF11 股指1411 限价 卖出 开 已报单 2384.2 1 0 809529
3 11:24:58 IF11 股指1411 限价 买入 平 全部成交 2376.6 1 1 809529
4 11:11:59 IF11 股指1411 限价 卖出 开 全部成交 2378.4 1 1 809529
5 10:27:59 IF11 股指1411 限价 买入 平 全部成交 2379.2 2 2 809529
6 10:18:59 IF11 股指1411 限价 卖出 开 全部成交 2379.4 1 1 809529
7 10:08:59 IF11 股指1411 限价 卖出 开 全部成交 2377.0 1 1 809529
8 09:52:59 IF11 股指1411 限价 买入 平 全部成交 2374.0 1 1 809529
9 09:45:59 IF11 股指1411 限价 卖出 开 全部成交 2376.4 1 1 809529
(2)还有一个问题是,会发现【交易状态】状态栏与上述的【成交明细】【委托记录】Tab对不起来(前两条记录不一致)
| 10/27/2014 9:49 |
| 809529 : IF11 - 正在申报 1 价格:2376.40 开仓 卖出 |
| 10/27/2014 9:49 |
| 809529 : IF11 全部成交 1 价格:2376.4 开 卖 |
| 10/27/2014 9:56 |
| 809529 : IF11 - 正在申报 1 价格:2374.00 平仓 买入 |
| 10/27/2014 9:56 |
| 809529 : IF11 全部成交 1 价格:2373.4 平 买 |
| 10/27/2014 10:12 |
| 809529 : IF11 - 正在申报 1 价格:2377.00 开仓 卖出 |
| 10/27/2014 10:12 |
| 809529 : IF11 全部成交 1 价格:2380.0 开 卖 |
| 10/27/2014 10:22 |
| 809529 : IF11 - 正在申报 1 价格:2379.40 开仓 卖出 |
(3)最后一个问题,【交易状态】状态栏里面的记录开平,会和DEBUGFILE语句打出来的不同,我在每次BUYSHORT,SELLSHORT前都使用DEBUGFILE,但是出现了在【交易状态】状态栏里面显示“全部成交”的记录,但是DEBUGFILE打出来的log文件中不存在这笔交易的成交
希望各位大虾们可以帮忙看看,不知道是否也遇到过此类问题
1,这个是模拟交易的问题,账户成交回报返回重复。导致您本地有多条记录显示,实际不影响
2,这个你是指时间匹配不上吧?交易状态和账户栏成交明细实时交易的都是记录为本地时间,但如果您交易账户重新登录后,则成交明细返回为模拟交易柜台时间,这个时间和您本地时间可能存在差异
3,这个您最好贴下对应这部分的代码,我们看看是否触发下单后一定会DEBUGFILE
(1)针对第二点,时间匹配不上是否有办法可以让时间对上?还是说只要交易账户重新登录我们就没有办法了(其实我基本没有动过账户,重新登录也只是模拟账户自己的操作,是不是收费用户就没有这样的问题)
(2)针对第三点
if (holding = 0 AND flagtb = 1) then
begin
DEBUGFILE('C:\Users\Administrator\Desktop\exchange.txt' , '1a2:%.2f',a2 );
BUYSHORT(1,1,LIMITR,a2);
exchangeType: = 1;
end;
其中flagtb 是一个信号而已
1,模拟都有这个问题,实盘比较准确。
这个是模拟柜台后台时间,暂无很好的处理方案。其实对实际交易没有影响
2, 这段代码如果下单DEBUGFILE一定会记录当时A2的值。
对应时间为条件满足时间及信号产生时间,而不是实际触发下单时间
这边您要自己区分好