以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- EXTGBSTRINGSET写参数入文件 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=168481) |
-- 作者:hnalbert -- 发布时间:2019/2/28 2:09:23 -- EXTGBSTRINGSET写参数入文件 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 -- 发布时间:2019/2/28 9:07:46 -- EXTGBSTRINGSET 设置的全局变量只能记住最新值,也就是il的最大值。和VARIABLE不一样。 可以参考下这里对全局变量的说明:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm |
-- 作者:hnalbert -- 发布时间:2019/2/28 9:15:33 -- 但我这是逐K线模式下运行,处理第一根K线时,最新值是1,savefile()写一次文件那就是应该写入了1. 处理第二根k线时, 最新值是2,savefile()写一次文件那就是应该写入了2. 。。。。 因为写的时候,都是写入了当时的最大值。 逻辑难道不是这样吗?
|
-- 作者:FireScript -- 发布时间:2019/2/28 9:55:17 -- 你这个 savefile 具体代码是怎样的?输出的变量是用 VARIABLE全局变量i1 还是用EXTGBSTRING 取出来的? |
-- 作者:hnalbert -- 发布时间:2019/2/28 10:10:42 -- i1是用EXTGBSTRING存放的。 savefile()就是用Document.GetExtString取出来的,如下: Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(xxx, 8) s=Document.GetExtString("i1") objFile.WriteLine s 保存在文件。 就这简单的代码。
|
-- 作者:FireScript -- 发布时间:2019/2/28 10:54:06 -- 不行的。超全局变量保存的只能是最新值。或者你也可以这样理解超全局变量的计算只在最新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\')); |
-- 作者:FireScript -- 发布时间:2019/2/28 13:38:26 -- 1.全局变量无法通过代码删除,只能手动删除 2.和VBA的交互只能全局变量传参。按照K先一个K传一个参数的是不行的。
|