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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 建议Document对象增加对全局变量的遍历机制

   

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


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

主题:建议Document对象增加对全局变量的遍历机制

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
建议Document对象增加对全局变量的遍历机制  发帖心情 Post By:2012/8/21 14:34:08 [只看该作者]

我经常需要将程序运行过程中的临时变量写到全局变量中,如果每天都不清除这些全局变量,那么就会很混乱,有些变量是需要保留的,而有些是不需要的,这些变量在保存的时候会以当时的账户、合约代码和价格等信息组合而成的变量名称,要删除这些变量的话,最好的方法就是循环读取每一个变量,逐个删除,或者删除具有一定前缀的特定变量。

 

所以建议开发人员对document对象进行功能增强,提供:

1、基于0的索引遍历机制

2、删除某1个全局变量的功能

3、删除某些前缀的全局变量的功能。

4、批量修改某一特征的全局变量的值的功能。

 


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/8/21 15:13:04 [只看该作者]

采纳



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/8/21 15:15:03 [只看该作者]

王锋版主,今天你心情肯定很好吧,我以前都提过的问题,你都没有理我,今天全部采纳。

我也很开心,谢谢你了,我越来越喜欢金字塔了。做的项目一个比一个大了。


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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
为什么我的交易框里没有这个窗口  发帖心情 Post By:2012/8/30 23:17:23 [只看该作者]

2.92果然增加了这些功能,我简单测试了一下,属性中的 ExtDataNumExtDataStringNum可以分别返回数值型和字符型变量的个数

但是不能遍历,每次返回的都是第一个变量。

 

以下是测试代码:

 

sub testglobal()
 dim KeyName
 
 iCount1=Document.ExtDataNum()
 application.MsgOut cdate(time)&",iCount1:"&iCount1
 for i=0 to iCount1-1
  Result = Document.GetExtDataByIndex(i,KeyName)
  KeyValue=document.GetExtData(KeyName)
  application.MsgOut "KeyName:"&KeyName &",KeyValue:"&KeyValue
 next
 
 iCount2=Document.ExtDataStringNum()
 application.MsgOut cdate(time)&",iCount2:"&iCount2
 for i=0 to iCount2-1
  Result = Document.GetExtStringByIndex(i,KeyName)
  KeyValue=document.GetExtString(KeyName)
  application.MsgOut "KeyName:"&KeyName &",KeyValue:"&KeyValue
 next
 
end sub

 

而删除指定索引位置的变量的方法RemoveExtData不能删除,RemoveExtString只能删除索引为0位置的变量,请开发人员测试。

 

[此贴子已经被作者于2012-8-30 23:24:30编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/8/31 11:57:10 [只看该作者]

已经看到问题,下个升级版会进行修正


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/8/31 12:09:51 [只看该作者]

谢谢了。期待着

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/9/1 19:17:28 [只看该作者]

2.93版已经修改了,可以返回正确的数据了,但是还有一个小小问题,那就是删除的时候,得从最后一个开始删除,不然就会间隔一个删除,因为删除第一个以后,后面的提上来了,就不会在下次删除的时候删除。

比如:

a1

a2

a3

a4

a5

a6

这几个全局变量,如果从0 开始删除,删除前三个变量,最后就会剩下a2,a4,a6三个全局变量,不是a4,a5,a6,而从5开始删除,一直删除到3,就可以。

[此贴子已经被作者于2012-9-2 7:12:51编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
取昨天最高最低价k线到当前的距离  发帖心情 Post By:2012/9/1 20:09:15 [只看该作者]

for循环的时候,每删除一个,控制循环变量应该进行自减一操作


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/9/2 7:11:23 [只看该作者]

是的,这样也可以。

还有,能不能增加一个按照键名部分代码过滤出一个子集来做循环,比如:我有5套策略,都需要用到全局变量,分别以不同的字母开头的,开头分别是TT,GG,FB,RG,HT,每一组下有多个变量,我想对TT进行循环读取、判断,而不需要全部读取(加入全部变量有几百个,循环一次是要耗费较多时间的),这样就可以大大减少循环的次数,提高效率,减少每次循环的时间。

 

 另外,按照键值批量删除的功能能不能增加,比如,批量删除键值为0的所有全局变量。

 

[此贴子已经被作者于2012-9-2 7:22:24编辑过]

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/9/5 8:37:45 [只看该作者]

这个问题在2.93版中已经处理的很好了,具体的说明和例子程序,大家可以看:http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=11642&authorid=0&page=1&star=8

74楼得专门讲解。


 回到顶部
总数 12 1 2 下一页