IF TSELLHOLDINGEX('',STKLABEL,1)=0 THEN BEGIN
DEBUGFILE('test.txt','[平空]理论价:'&NUMTOSTR(Pkprice,2)&' 实际成交价:'&NUMTOSTR(TEXITPRICE,2)&' 平仓盈亏:'&NUMTOSTR(TNUMPROFIT(1),2),0);
END
------------------
实际结果如下:
[平空]理论价:2331.00 实际成交价:-1.#R 平仓盈亏:0.00
请问是哪里出了问题,为什么没有返回值。
返回-1.#R就是表示无效值,说明还没有平仓记录
实际已经平仓了,有记录
2014-08-21 09:59:55.747 【后台】RM01 TSellShort 已成功触发下单操作 价格:2426.000000 数量:1 类型:0 账户: 品种:RM01
2014-08-21 09:59:55.747 【后台】实际账户持仓 1
2014-08-21 09:59:55.747 【后台】下单已发送
2014-08-21 09:59:55.747 【后台】RM01 TSellShort 已成功触发下单操作 价格:2426.000000 数量:1 类型:0 账户: 品种:RM01
2014-08-21 09:59:55.747 【后台】实际账户持仓 1
2014-08-21 09:59:55.747 【后台】下单已发送
2014-08-21 09:59:56.013 【后台】RM01 运行结束
2014-08-21 09:59:56.262 【后台】L01 运行结束
2014-08-21 09:59:56.262 【下单】RM01 价2426.000000 量1 买卖0 类型0 开平2 账户** Formula 1
2014-08-21 09:59:56.262 【下单】确认报单已发送 ID=112499541 RefID = 66
2014-08-21 09:59:56.262 【后台】FG01 运行结束
2014-08-21 09:59:56.262 【下单】实际持仓为0下单失败
2014-08-21 09:59:56.262 【指令】收到回报指令 ID = 112499541 RefID = 66
2014-08-21 09:59:56.293 【指令】收到回报指令 ID = 112499541 RefID = 66
2014-08-21 09:59:56.293 【指令】收到回报指令 ID = 112499541 RefID = 66
2014-08-21 09:59:56.293 【指令】收到回报指令 ID = 112499541 RefID = 66
2014-08-21 09:59:56.293 【指令】收到成交回报指令 REFID = 66
2014-08-21 09:59:56.325 【后台】RM01 运行结束
2014-08-21 09:59:56.325 【后台】L01 运行结束
2014-08-21 09:59:56.325 【后台】FG01 运行结束
2014-08-21 09:59:56.325 【后台】RM01 运行结束
2014-08-21 09:59:56.325 【后台】L01 运行结束
2014-08-21 09:59:56.325 【后台】FG01 运行结束
2014-08-21 09:59:56.325 【回报】**: RM501 - 已报单 1 价格:2426 平 买
2014-08-21 09:59:56.340 【回报】**: RM501 - 已成交 1 价格:2331 平 买
2014-08-21 09:59:56.340 【后台】RM01 运行结束
我的程序结构是这样
TSELLSHORT.....
IF TSELLHOLDINGEX('',STKLABEL,1)=0 THEN BEGIN
DEBUGFILE('test.txt','[平空]理论价:'&NUMTOSTR(Pkprice,2)&' 实际成交价:'&NUMTOSTR(TEXITPRICE,2)&' 平仓盈亏:'&NUMTOSTR(TNUMPROFIT(1),2),0);
END
--------------------------
分笔轮询模式,是不是因为TSELLSHORT下完单,虽然没有成交但是TSELLHOLDINGEX已经返回持仓为0,所以暂时得不到成交价?
单独的这样一句
debugfile('d:\test.txt','tenterprice = '+numtostr(texitprice,2),0);
你看看有没有问题