我在图形交易的时候碰到了如下问题,我发出了平空指令SELLSHORT,但是发现在模拟账户中的空单并没有平掉。我想请教一下各位大侠。
下面是我的程序,在log文件中的确有DEBUGFILE打出的记录,但是账户中的空单就是没有平掉,然后log显示我一直在平,不知道原因是什么,close是实盘中的实时价格,我想知道平不掉的原因,平仓价close是否不行,求教了
DEBUGFILE(exchangeFilePath , '4close:%.2f',close);
SELLSHORT(1,0,LIMITR,close);
有勾选交易日志吗?把日志贴出来看下
有勾选,但是没有任何交易日志打出(也就是【图表交易化】dialog中没有平仓记录,【交易状态】中没有平仓记录,账户的【委托明细】tab和【成交明细】tab中都没有平仓记录),但是前面的开仓信号是打出的,下面是【交易状态】中没有开仓记录,但是后面没有平仓记录
2014-11-12 11:08:17
8110XX : 已断开
2014-11-12 11:08:34
8110XX : 登录成功
2014-11-12 11:12:03
8110XX : IF11 - 正在申报 1 价格:2550.400 开仓 卖出
2014-11-12 11:12:03
8110XX : IF11 全部成交 1 价格:2550.6 开 卖
我说的日志是交易-下单设置-程式化交易-记录下单位置 这里
你图表程序化交易记录那里什么都没吗?那说明条件没有触发。你确定当时的平仓条件是满足的?
的确,你说的这个我已经设置好了,那两行代码我是连在一起写的,前面DEBUGFILE打出来了,后面应该必然走到的。
D:\Weisoft Stock\Setting\OrderLog
日志文件在这里,把哪个时间点的也说明下,贴在这里。
另外你程序化运行模式是轮询吗?间隔多少,有没有可能间隔太长导致漏过了这个信号
if cross(a,b) then begin
DEBUGFILE(exchangeFilePath , '4close:%.2f',close);
SELLSHORT(1,0,LIMITR,close);
end
看上面的代码
1、当实际持仓为0时 满足cross(A,B) 进入条件 代码自上而下运行 debugfile会输出 但是sellshort不会触发
2、当cross(a,b)满足条件,进入条件语句,输出debugfile 但虚拟持仓holding=0 所以sellshort实际不起作用,图表程序化没有记录。
你看看是否发生了类似的事情。
1应该不会漏掉,恩有可能是7楼的问题。
你可以在外面条件那里价格if cond and holding<0 then debugfile sellshort //这样在有空仓时才会去输出记录和平空
7楼原来的帖子 有说的清楚的地方。
我补充,完善了下