欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 奇怪:做空条件不成立,却有下单,但下单手数为0

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5883人关注过本帖树形打印复制链接

主题:奇怪:做空条件不成立,却有下单,但下单手数为0

帅哥哟,离线,有人找我吗?
阿火
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
奇怪:做空条件不成立,却有下单,但下单手数为0  发帖心情 Post By:2011/11/10 8:36:49 [显示全部帖子]

日志情况是这样,以下的日志从09:44 一直出现,直到10:11

2011-11-09 09:44:46.125    【后台】IF11 TBuyShort 出现信号
2011-11-09 09:44:46.125    【后台】IF11 TBuyShort 委托数量为0
2011-11-09 09:44:46.125    【后台】IF11 运行结束
2011-11-09 09:44:47.218    【后台】IF11 运行结束
2011-11-09 09:44:47.546    【后台】IF11 TBuyShort 出现信号
2011-11-09 09:44:47.562    【后台】IF11 TBuyShort 委托数量为0
2011-11-09 09:44:47.562    【后台】IF11 运行结束
2011-11-09 09:44:49.031    【后台】IF11 运行结束
……

……

2011-11-09 10:11:30.343    【后台】IF11 运行结束
2011-11-09 10:11:30.703    【后台】IF11 运行结束
2011-11-09 10:11:31.031    【后台】IF11 TBuyShort 出现信号
2011-11-09 10:11:31.046    【后台】IF11 TBuyShort 委托数量为0

 

下单语句是这样的:

kc:=abs(cc821888888)-sellhold;

if buyhold=0 and wt=0 and kc>0 and sellhold>=0 then begin//buyhold、sellhold、wt分别代表多头持仓、空头持仓、委托单数量

   tbuyshort(abb821888888 =tm,kc,mkt,0,0,'821888888 '),allowrepeat;
   tbuyshort(abb821888888 <=0,kc,lmt,dynainfo(21)-s*0.2,0,'821888888 '),allowrepeat;
   extgbdataset('abb821888888 ',1);
   debugfile('D:\LOG\821888888 .txt',numtostr(cc821888888 ,0)+'    开空    '+numtostr(buyhold,0)+'    '+numtostr(sellhold,0)+'    %.0f',wt);

end

 

debugfile 输出的日志为(09:44——10:11,都是以下的样子):

2011-11-09 09:44:46.109    -8    开空    0    8    0
2011-11-09 09:44:47.546    -8    开空    0    8    0
……

2011-11-09 10:11:29.687    -8    开空    0    8    0
2011-11-09 10:11:31.031    -8    开空    0    8    0

 

也就是:buyhold=0、wt=0、sellhold>=0都成立,但kc=abs(-8)-8=0,并不符合“kc>0”的条件。但是会下单,这是什么原因?

难道是精度问题?

幸好tbuyshort(1,0,mkt),在手数为0时,并不表示满仓开空。呵呵

 

[此贴子已经被作者于2011-11-10 8:42:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/10 8:48:58 [显示全部帖子]

那岂不是所有与0比较的变量都要取整?

比如以上条件中,buyhold=0 ,可能buyhold=0.00001 。wt也可能是 0.00001 或者 0.999999 ,都要取整?

 

也就是,如果比较的2个量 如果可能很接近的话,都要考虑精度问题

 

我最经常用的 if holding=0 and buycond then buy(1,1,limitr,c); 这里的holding需要取整吗

[此贴子已经被作者于2011-11-10 8:51:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/10 9:12:56 [显示全部帖子]

恩。holding应该不用

 

不过想想,还是有点不明白

sellhold:=tbuyholding(AC,stklabel,N) 这个可能出现浮点数吗,还是一定是整数?

cc821888888的整个计算过程都是整数计算,应该一直都是整数吧。

cc821888888的计算过程是: 引用其它3个模型的holding ,分别为cc1、cc2、cc3,然后乘以系数

即:cc821888888:=2*cc1 + 3*cc2 +1*cc3 ;

 

cc821888888和sellhold ,这2个变量,谁搞的鬼。把它揪出来


 回到顶部
帅哥哟,离线,有人找我吗?
阿火
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/10 22:15:49 [显示全部帖子]

球哥真幽默

 

KC>=1会不会变成 0.999999>=1 不成立啊

 

看来只能这样,用kc>0.5 ,这样肯定没问题

[此贴子已经被作者于2011-11-10 22:18:23编辑过]

 回到顶部