- 精华
- 0
- 在线时间
- 90 小时
- UID
- 15384
- 积分
- 238
- 帖子
- 13
- 阅读权限
- 40
- 注册时间
- 2010-8-25
- 最后登录
- 2016-7-4
- 精华
- 0
- UID
- 15384
- 积分
- 238
- 帖子
- 13
- 主题
- 0
- 阅读权限
- 40
- 注册时间
- 2010-8-25
- 最后登录
- 2016-7-4
|
这个不是Bug,运行此函数的时候:Num序列的确被初始化了,但是它的作用域只是在函数内部,当运行到这个位置:- if(ind<0)
- {
- Num = dat;
- return dat;
- }
复制代码 随着函数返回dat,Num序列也就在内存里消失了。当你再次调用testseries的时候,Num会被重新初始化为0序列。
所以较好的解决办法是直接讲Num作为返回值,返回一个数字序列,先将收盘价保存起来,然后直接使用这个序列就好了,在testseries函数中,- if(ind<0)
- {
- Num = dat;
- return Num;
- }
- return 0;
复制代码 然后,这样调用,- Params
- Numeric sn(5);
- Vars
- Numeric tm(0);
- NumericSeries NumClose(0);
- Begin
- NumClose = testseries(-1,close);
- Commentary(Text(NumClose[0]));
- Commentary(Text(NumClose[1]));
- Commentary(Text(NumClose[10]));
复制代码 |
|