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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → GLOBALVARIABLE函数的问题

   

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


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

主题:GLOBALVARIABLE函数的问题

帅哥哟,离线,有人找我吗?
百湛必胜客
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:723 积分:355 威望:0 精华:0 注册:2011/1/25 9:58:24
GLOBALVARIABLE函数的问题  发帖心情 Post By:2020/2/20 16:04:06 [只看该作者]

金字塔升级升出不少原本没有的毛病
以下内容为程序代码:

GLOBALVARIABLE:ohe=0,QIANYUE='初始字符';

if ISLASTBAR then 
 begin
  G0:STRLEN(QIANYUE),linethick0; 
    if ohe=0 then 
      begin
     ohe:=1;
     老主力合约:='IH05'; 
         QIANYUE:='老主力合约:'&老主力合约; 
      end;
      
  G1:STRLEN(QIANYUE),linethick0; 
 end;
DRAWTEXTEX(ISLASTBAR,1,100,100,QIANYUE),COLORYELLOW; 
这个代码存成逐K模式的交易系统,在任何一个品种下加载到主图,刚加载,能正常显示,再来一笔新的TICK数据,就完全消失所有显示项目了

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


加好友 发短信
等级:黑侠 帖子:723 积分:355 威望:0 精华:0 注册:2011/1/25 9:58:24
  发帖心情 Post By:2020/2/20 16:22:27 [只看该作者]

现在是休盘时间了,可以用“Alt+ 1或2或3”切换画面组合的办法去测试(等同于动态行情刷新)

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/20 16:25:08 [只看该作者]

没办法,GLOBALVARIABLE函数不是你这么用的。GLOBALVARIABLE初始化的时机根本不符合图表的机制。

你之前好像问过类似的问题。建议你用ext的全局变量。

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
百湛必胜客
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:723 积分:355 威望:0 精华:0 注册:2011/1/25 9:58:24
  发帖心情 Post By:2020/2/20 16:48:41 [只看该作者]

上次问那个是换品种或者换了周期,再换回来的问题,跟这个不同,这个是不换品种,也不换周期,全部没变的情况下,只是公式的第二次跟随动态行情动态刷新,怎么该显示的项目全部消失了呢?
超全局变量的功能和意义不就是为了保存一些需要需要保存的数据,供后面读取调用的吗?
[此贴子已经被作者于2020/2/20 16:49:30编辑过]

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/20 16:52:39 [只看该作者]

这个全局变量设计的初衷是给后台用的。不是让他用在图表上的。

解决方法也已经提供给您了,使用ext全局变量处理,或者你使用注册表、配置文件的方式也可以。

[此贴子已经被作者于2020/2/20 16:54:40编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
百湛必胜客
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:723 积分:355 威望:0 精华:0 注册:2011/1/25 9:58:24
  发帖心情 Post By:2020/2/20 16:52:58 [只看该作者]


//    if ohe=0 then 
//      begin
//      ohe:=1;
//      老主力合约:='IH05'; 
//         QIANYUE:='老主力合约:'&老主力合约; 
//      end;
如果把这部分代码注释掉,就不管怎么刷新,都能显示那些项目,注释掉的这段代码难道还起到销毁变量的作用?那也不对啊,能解释一下其中原因?
感觉就是升级出来的BUG
[此贴子已经被作者于2020/2/20 16:53:46编辑过]

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/20 16:55:46 [只看该作者]

超全局变量一般会在客户停止后台程式化交易或者关闭框架图表后销毁重置

 

另外你注释掉的代码之后,剩余的输出, QIANYUE就是个固定字符串。怎么折腾当然都不会变,

[此贴子已经被作者于2020/2/20 16:58:03编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2020/2/20 17:26:24 [只看该作者]

这个是跟升级没关系的,只是超全局变量的缺陷造成的,你就是用旧版也同样会存在这个问题。
出现这个问题的主要原因是超全局变量的字符串是不能更改的,更改后的字符串地址系统没法正常去保护,容易被清理掉,建议你的这种需求使用用ext的全局变量来代替字符串的变量。

 回到顶部