以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请教数组问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182847) |
-- 作者:marks -- 发布时间:2020/11/3 11:56:10 -- 请教数组问题 代码如下: VARIABLE:a[10]=0; FOR I=0 TO 9 DO
BEGIN a[i]:=i+1; END;
for q=0 to 9 do begin
DEBUGOUT(\'JIA=%.2f\',a[q]);
end; 用后台加载后开启预警,刚开始可以正常输出数值,过几秒钟之后输出全部为零,请问是哪的问题。 同样保存到文件也会出现这种情况。 |
-- 作者:FireScript -- 发布时间:2020/11/3 13:22:31 -- 金字塔数组下标不是从0开始。从1开始。其他地方没有啥错误了。 你改下试试呢。 [此贴子已经被作者于2020/11/3 13:22:40编辑过]
|
-- 作者:marks -- 发布时间:2020/11/3 13:36:41 -- 改了还是不行,一开始是正常输出的,过几秒就全部输出零了 |
-- 作者:FireScript -- 发布时间:2020/11/3 13:37:46 -- 你是序列模式的公式吧? |
-- 作者:marks -- 发布时间:2020/11/3 13:54:42 -- 我点的逐K线计算 |
-- 作者:FireScript -- 发布时间:2020/11/3 14:03:41 -- 你重新设置下公式 然后重启后台预警,可能前面修改了,没奏效。 我本地用这个代码运行几分钟都OK。 |
-- 作者:marks -- 发布时间:2020/11/3 14:30:12 -- 这样写的话还是过一会就输出零了,像刚才数组那样没有问题了,因为一直在向数组存数据,下面写法向文件写一次数值就不再写了,只去读数值,一开始能读出来,过一会就读不出来了 GLOBALVARIABLE:F=0; 文件编号=0; IF F=0 THEN BEGIN
名称:=STRCAT(STRCAT(STRCAT(STKNAME(),numtostr(DATATYPE,0)),\'多\'),NUMTOSTR(文件编号,0));
PATH:=STRCAT(STRCAT(\'D:\\\',名称),\'.INI\'); // WRITEINIFILE(PATH,名称,\'SUMM\',SUMM);
//WRITEINIFILE(PATH,名称,\'AVG\',AVG);
for i=1 to 5 do
WRITEINIFILE(PATH,名称,STRCAT(\'开仓价\',numtostr(i,0)),i+1);
F:=1;
END
for z=1 to 5 do DEBUGOUT(\'FFF=%.2f\',GETINIFILE(PATH,名称,STRCAT(\'开仓价\',numtostr(z,0))) );
|
-- 作者:marks -- 发布时间:2020/11/3 14:50:37 -- 你这样再试一下,这样写就不行。 GLOBALVARIABLE:F=0; 文件编号:=0; IF F=0 THEN BEGIN
名称:=STRCAT(STRCAT(STRCAT(STKNAME(),numtostr(DATATYPE,0)),\'多\'),NUMTOSTR(文件编号,0));
PATH:=STRCAT(STRCAT(\'D:\\\',名称),\'.INI\');
for i=1 to 5 do
WRITEINIFILE(PATH,名称,STRCAT(\'开仓价\',numtostr(i,0)),i+1);
F:=1;
END
for z=1 to 5 do DEBUGOUT(\'FFF=%.2f\',GETINIFILE(PATH,名称,STRCAT(\'开仓价\',numtostr(z,0))) ); |
-- 作者:FireScript -- 发布时间:2020/11/3 15:31:59 -- 因为你后面K这个路径就是出于未定义的状态了。 你不要把名称 PATH这2个变量都放在IF里面。你放在IF前面。
[此贴子已经被作者于2020/11/3 15:32:24编辑过]
|