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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → EXTGBSTRINGSET写参数入文件

   

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


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

主题:EXTGBSTRINGSET写参数入文件

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


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2018/9/3 11:10:10
EXTGBSTRINGSET写参数入文件  发帖心情 Post By:2019/2/28 2:09:23    Post IP:106.6.67.110[只看该作者]

RUNMODE:0; //工作于逐K线模式

VARIABLE:  i1=0;//定义参数值 

i1:=i1+1;
MSGOUT(1,'i1 is : ' + NUMTOSTR(i1,5));
EXTGBSTRINGSET('参数', NUMTOSTR(i1,5) );

savefile();//将i1写入文件

-----------------------
运行后窗口打印出i1的值为:1,2,3。。。。。681

但写入的文件确是681,681,。。。681

为什么文件里不是写入1,2,3。。。。。681呢?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/28 9:07:46    Post IP:180.169.30.6[只看该作者]

 EXTGBSTRINGSET 设置的全局变量只能记住最新值,也就是il的最大值。和VARIABLE不一样。

可以参考下这里对全局变量的说明:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hnalbert
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2018/9/3 11:10:10
  发帖心情 Post By:2019/2/28 9:15:33    Post IP:106.6.66.136[只看该作者]

但我这是逐K线模式下运行,处理第一根K线时,最新值是1,savefile()写一次文件那就是应该写入了1.
                                    处理第二根k线时, 最新值是2,savefile()写一次文件那就是应该写入了2.
                                    。。。。
                                   因为写的时候,都是写入了当时的最大值。
逻辑难道不是这样吗?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/28 9:55:17    Post IP:180.169.30.6[只看该作者]

 你这个 savefile  具体代码是怎样的?输出的变量是用
VARIABLE全局变量i1 还是用EXTGBSTRING 取出来的?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hnalbert
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2018/9/3 11:10:10
  发帖心情 Post By:2019/2/28 10:10:42    Post IP:106.6.66.136[只看该作者]

i1是用EXTGBSTRING存放的。
savefile()就是用Document.GetExtString取出来的,如下:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(xxx, 8)
s=Document.GetExtString("i1")
objFile.WriteLine s
保存在文件。

就这简单的代码。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/28 10:54:06    Post IP:180.169.30.6[只看该作者]

 不行的。超全局变量保存的只能是最新值。或者你也可以这样理解超全局变量的计算只在最新K上奏效或者说它只算最新 K上的情况。 机制上它和其他变量不太一样。
比如这个代码的运行,你会发现即使是从历史K上运行到最新K,i1的输出也始终是最新K上对应的值。
VARIABLE:  i1=0;
i1:=i1+1;
MSGOUT(1,'i0 is : ' + NUMTOSTR(i1,5));
EXTGBSTRINGSET('i1', NUMTOSTR(i1,5) );
MSGOUT(1,'i1 is : ' +EXTGBSTRING( 'i1'));




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hnalbert
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2018/9/3 11:10:10
  发帖心情 Post By:2019/2/28 11:05:32    Post IP:106.6.66.136[只看该作者]

内容待审核

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/2/28 13:38:26    Post IP:180.169.30.6[只看该作者]

 1.全局变量无法通过代码删除,只能手动删除
2.和VBA的交互只能全局变量传参。按照K先一个K传一个参数的是不行的。


命数如织,当如磐石。
 回到顶部