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


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

   

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


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

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

帅哥哟,离线,有人找我吗?
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 了。有什么方法解决这个时间差问题,请老师帮忙解答,谢谢!                                               


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


加好友 发短信
等级:论坛游侠 帖子:196 积分:594 威望:0 精华:2 注册:2011/8/22 18:26:49
时间差问题  发帖心情 Post By:2011/11/29 15:20:22 [显示全部帖子]

谢谢fly,我原来记录仓位是用全局变量,我现在要实现的功能是:后台运行,在前台通过画趋势线开平仓,也就是手动和后台自动结合,我的后台程序自动开平仓没有问题,主要是用趋势线平仓时,后台的平仓条件不满足所以没有触发,无法靠后台得到平仓的仓位和价格等信息,所以我采取不断扫描账户读取账户的持仓信息,来检查是否是趋势线触发平仓或开仓的,以此不断更新记录仓位等信息的全局变量,供后台运行的程序以新的持仓头寸和价格计算加仓和止损止盈的条件,达到手动和自动结合的目的。现在的问题是在取账户仓位返回真实信息之前的时间间隙中,返回的信息是0,表示还暂时未取到账户持仓(交易开拓者和文华财经在未取到信息或无效信息,返回的值为-1,金字塔返回的值是0),这和账户真正的无头寸是一样的值0,所以我请fly老师能否教我用什么方法,区分未取到账户仓位或账户信息无效时候的0返回值,和真实仓位为0时返回的0值,拜托,谢谢!

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


加好友 发短信
等级:论坛游侠 帖子:196 积分:594 威望:0 精华:2 注册:2011/8/22 18:26:49
求高手解决仓位取值问题  发帖心情 Post By:2011/12/6 10:43:07 [显示全部帖子]

为了实现5分钟后台自动运行和1分钟前台手动监控相结合的模型,我需要不断的读取账户的持仓状态,以确定是否是手动开仓或平仓(画趋势线自动),如属于前台手动开平仓,将持仓等信息传递给后台的自动化程序,以此实现手动自动相互配合的目的。现在我有一个问题用了各种方法无法解决,但又非解决不可,否则前功尽弃,请高手指导求解:用后台取持仓的函数X:=TBUYHOLDING, X:=TSELLHOLDING, X:=THOLDING取仓位时,在期货公司账户未返回结果(可能1秒钟)或账户无效时的延迟时间里,金字塔系统会暂时赋值为X=0,过后才赋值取到的仓位结果,如仓位是20手,结果将是赋值X=20,但如果账户本身就是空仓无仓位,返回的结果也会为0,即X=0,那么用什么方法能够区分两个不同的X=0值呢?因为我要根据持仓的结果做下一步。这个问题纠结了我10多天了,请高手帮忙,拜谢了!

 回到顶部