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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 求助:取持仓时间差问题

   

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


  共有4702人关注过本帖平板打印复制链接

主题:求助:取持仓时间差问题

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


加好友 发短信
等级:论坛游侠 帖子:196 积分:594 威望:0 精华:2 注册:2011/8/22 18:26:49
求助:取持仓时间差问题  发帖心情 Post By:2011/11/29 14:18:30 [只看该作者]

我将程序移植到后台运行模式时,有一段通过读取持仓来判断是否有仓位,决定后续赋值和操作的实例,但在通过函数读取账户仓位时,中间有时间差,所以在这个时间差中,金字塔系统默认账户未返回数据时,函数返回值为0,如果账户返回数据确是没有仓位返回值也是0,在这时间差中(可能是1秒),我如何区分是仓位确是为0,还是有仓位(如10手)只是在账户返回持仓10手信息的瞬间,返回值也为0?请老师帮助解惑,谢谢!    

Myholding:=THOLDING();                                                     //当前持仓           
Lasthold:=EXTGBDATA(‘Lastholding');                                       //储存在全局变量中的持仓
If Myholding<>Lasthold  Then
EXTGBDATASET('Lastholding',Myholding);                                 //更新实际持仓

If EXTGBDATA('Lastholding')=0 Then EXTGBDATASET('NumEnter',0);

If EXTGBDATA('Lastholding')<>0 Then EXTGBDATASET('NumEnter',1);

以上实例由于Myholding:=THOLDING()这个语句, 在执行的瞬间,信息未返回取到的账户实际持仓之前(假如持仓为10手),Myholding的暂时返回值为0,等到账户返回真实持仓10手后,Myholding为10,但在这之前,系统已经为 EXTGBDATASET('NumEnter',0)赋值为0 了。有什么方法解决这个时间差问题,请老师帮忙解答,谢谢!                                               


 回到顶部