以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助] 公式编译时提示:函数"xxx"未定义  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=149156)

--  作者:fourbrother
--  发布时间:2017/3/16 10:31:22
--  [求助] 公式编译时提示:函数"xxx"未定义
代码如下:

variable: qsztnum[7]=0;

n:=4;

趋势状态month:="05趋势状态.新趋势#month"(n);
趋势状态week:="05趋势状态.新趋势#week"(n);
趋势状态day:="05趋势状态.新趋势#day"(n);
趋势状态M60:="05趋势状态.新趋势#min60"(n);
趋势状态M30:="05趋势状态.新趋势#min30"(n);

qsztnum[1]:=趋势状态month;
qsztnum[2]:=趋势状态week;
qsztnum[3]:=趋势状态day;
qsztnum[4]:=趋势状态m60;
qsztnum[5]:=趋势状态m30;

前面是有定义"趋势状态month",为什么编译时通不过?
图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:gxx978
--  发布时间:2017/3/16 10:46:07
--  
金字塔目前不支持二维数组。趋势状态month,这个其实已经是一个序列数组,目前无法将一个数组赋值给数组中的一个元素,必须使一个元素赋值给一个元素,例如qsztnum[1]:=趋势状态month[1];
--  作者:fourbrother
--  发布时间:2017/3/16 10:56:08
--  
原来是这样,问题已解决, 谢谢 gxx978 !
[此贴子已经被作者于2017-3-16 10:56:36编辑过]

--  作者:fourbrother
--  发布时间:2017/3/17 0:37:55
--  
问题没有完美解决,把代码改为:qsztnum[1]:=趋势状态month[1]; 虽然能通过编译,但是结果不对。

代码如下: 

趋势状态day:"05趋势状态.新趋势#day"(n),linethick0;
aaa1:趋势状态day[1];

结果:趋势状态day:33 aaa1:100

理论上的结果为: aaa1=趋势状态day=33 为什么它们的值不一样呢?

--  作者:wenarm
--  发布时间:2017/3/17 8:51:56
--  

趋势状态day是序列变量.

你“趋势状态day[1];”其实是序列变量的第一个值。也就是aaa1=序列变量的第一个值(引用使用的第一根k线位置的值)

而  趋势状态day返回的是当前K线的位置的值。


--  作者:fourbrother
--  发布时间:2017/3/17 23:10:48
--  
谢谢解答。现在问题已得到解决,用下标DATACOUNT可以取最后一根K线位置的值。 即: aaa1:趋势状态day[DATACOUNT];

结果:  aaa1: 33