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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 超全局变量失效?

   

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


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

主题:超全局变量失效?

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


加好友 发短信
等级:黑侠 帖子:723 积分:355 威望:0 精华:0 注册:2011/1/25 9:58:24
超全局变量失效?  发帖心情 Post By:2020/2/8 15:19:33 [只看该作者]

建立一个逐K模式的交易系统,代码如下:
以下内容为程序代码:

1 GLOBALVARIABLE:hpin=STKLABEL,zhouuq=datatype;
2 if hpin<>STKLABEL or zhouuq<>datatype then
3 begin
4 msgout(hpin<>STKLABEL,'换品种!');
5 msgout(zhouuq<>datatype,'换周期!');
6 hpin:=STKLABEL;
7 zhouuq:=datatype;
8 end;

加载到图表后,按照代码意思,每次切换品种或者切换周期,都应该有消息框文字提示,可是,就是没有,为何?
感觉金字塔升级到现在,很多问题丛生。

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


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

这个并不是你认为的超全局变量就是在窗格上位置不动的,在窗格上每个品种,周期都会被认做不同的全局变量,因为你更换不同的周期以后,每次都会被相同的初始化导致的。
建议你这样改

1 GLOBALVARIABLE:hpin='',zhouuq=-1;

另外,字符串不能用你这个方法,你要用字符串函数STRCMP判断

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


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

这个代码:
以下内容为程序代码:
GLOBALVARIABLE:hpin='',zhouuq=-1;
//原周期:zhouuq,linethick0;
//现周期:datatype,linethick0;
//drawtextex(islastbar,1,500,50,'原合约:'&hpin&'\n现合约:'&STKLABEL);
if islastbar and (hpin<>STKLABEL or zhouuq<>datatype) then 
begin
clmsg(),NODRAW;
msgout(yi'j<>STKLABEL,'换品种!');
msgout(zhouuq<>datatype,'换周期!');
hpin:=STKLABEL;
zhouuq:=datatype;
end;
改成上面的代码
假如
一开始从5MIN调到15MIN,会提示换周期。但是,
再次从15MIN调到5MIN,就不再提示了换周期了!
第一次换周期(从5MIN到15MIN)全局变量zhouuq不是刷新成3了吗,这样,再换回5MIN应该也提示才对啊,因为这时zhouuq<>datatype是成立的啊
[此贴子已经被作者于2020/2/8 18:53:43编辑过]

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


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

这个没办法了,建议你不要用超全局变量做周期保存,你可以考虑使用EXTGBDATA函数。
目前的问题是品种代码和周期是做为系统参数与超全局变量进行处理的,你这个周期变量被周期初始化一次后,就没法再按照周期的不同来处理了。
打个比方来说假设日期周期你的某个超全局变量的值被你设置为10,你切换到5分钟周期设置为20,那么你再切换回日线后,那么这个超全局变量是之前你日线设置过的10,而不是20

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


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

EXTGBDATA效率慢很多,毕竟不是内存级别的读写
数据库读写,要跟硬盘发生关系

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


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

EXTGBDATA是内存读写的,效率高

 回到顶部