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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如果几个策略同时对同一个extgbdata变量作累加操作,会否出错?

   

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


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

主题:如果几个策略同时对同一个extgbdata变量作累加操作,会否出错?

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


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
如果几个策略同时对同一个extgbdata变量作累加操作,会否出错?  发帖心情 Post By:2015/5/14 14:18:23    Post IP:14.19.155.173[只看该作者]

例如  extgbdataset('a',extgbdata('a')+1);

打个比方今天发生一次开仓,我就加一,当几个策略同时执行这个(同时开仓),有没可能算错?
比如现在这个 extgbdata('a')=1,两个策略同时发生开仓,会不会算成了 =2?(就是说两个都是1+1=2),并且写进去结果

如果这个操作是有锁住记录的话应该是不会算错的,我就是问金字塔的系统上有没锁住


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/5/14 14:52:35    Post IP:58.246.57.26[只看该作者]

那就+2了,这种全局变量是金字塔内部公用的,你所有代码对他的操作都是执行的。

你所谓锁住是要则么锁呢,同时开仓是指同一根k?那你不同策略周期是否都是同样的。


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


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2015/5/14 15:02:07    Post IP:14.19.155.173[只看该作者]

我意思是,同一时间两个程序都发生这个extgbdataset('a',extgbdata('a')+1);
的话,会不会只加了1,因为不知道金字塔机制到底是怎样的。

比如说,如果是先读出来,然后再+1,写回去这个变量,由于同时,就有可能读出来的都是1,然后都是各自+1,就是都等于2了,所以同时写回去,就有可能是2

但是如果有锁记录,就变成是串行操作,先处理完一个再一个,就不会算错

用数据库语言来理解就是:select for update,

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/5/14 15:44:12    Post IP:58.246.57.26[只看该作者]

会写2的,这个写入的速度远远比你所谓的同时来得快。你同一时刻的程序运行在内部还是有细微的前后的


 回到顶部