设为首页收藏本站

 找回密码
 注册
查看: 1942|回复: 5
打印 上一主题 下一主题

序列变量出现BUG!求解~ [复制链接]

Rank: 2

精华
0
UID
202484
积分
72
帖子
48
主题
16
阅读权限
30
注册时间
2015-1-26
最后登录
2017-10-6
跳转到指定楼层
1#
发表于 2017-7-6 16:36:43 |只看该作者 |倒序浏览
本帖最后由 ktzddz 于 2017-7-6 16:47 编辑

TempDATA = 自定义函数A(MA30);
if (InvalidNumeric != TempDATA) 显示函数B(MA30,CurrentBar-2,CurrentBar);
显示函数B(MA30,CurrentBar-2,CurrentBar);

"显示函数B"两次显示的值不一致!
第一次显示(错误值):
3033.133333
3033.133333
3033.133333
第二次显示(正常值):
3033.133333
3032.866667
3033.033333

而且第一次无论取MA[N],全部都只能是3033.133333。求解!!!

补充:【显示函数B】
Params
   NumericSeries TestSeries;
   Numeric BeginBar;
   Numeric EndBar;
Vars
        Numeric LoopCount;
Begin
For LoopCount = EndBar DownTo BeginBar
{
        Commentary(Text(TestSeries[CurrentBar - LoopCount]));
}
End

推测:是不是TB编译器在某些情况下,将NumericSeries变量当作Numeric处理了?

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2017-7-7 09:19:48 |只看该作者
本帖最后由 小米 于 2017-7-7 09:21 编辑

函数B的参数是需要序序列值进行计算的,这类的函数在公式应用中计算时,不要放条件下。。
建议增加一个中间变量,将函数B赋值 给中间变量,再将中间变量代入判断条件下使用。

使用道具 举报

Rank: 2

精华
0
UID
202484
积分
72
帖子
48
主题
16
阅读权限
30
注册时间
2015-1-26
最后登录
2017-10-6
3#
发表于 2017-7-8 19:58:32 |只看该作者
小米 发表于 2017-7-7 09:19
函数B的参数是需要序序列值进行计算的,这类的函数在公式应用中计算时,不要放条件下。。
建议增加一个中间 ...

暂时只能如此了,感谢版主。
不过还是希望尽快修复。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2017-7-10 09:06:02 |只看该作者
ktzddz 发表于 2017-7-8 19:58
暂时只能如此了,感谢版主。
不过还是希望尽快修复。

抱歉啊,这个不是修复不修复的事了。
机制如此 ,在TB的整个公式系统没有改变前,确实需要以此规则来进行公式的编写的。

使用道具 举报

Rank: 1

精华
0
UID
243793
积分
13
帖子
9
主题
4
阅读权限
10
注册时间
2016-11-28
最后登录
2017-11-30
5#
发表于 2017-11-26 02:40:34 |只看该作者
序列变量问题太大了, 我也遇到放条件下的序列变量问题, 资深程序都会遇到这种问题, 这样的功能限制, 对编程实在是太不方便了.

使用道具 举报

Rank: 1

精华
0
UID
201963
积分
28
帖子
19
主题
6
阅读权限
10
注册时间
2015-1-19
最后登录
2021-4-18
6#
发表于 2018-2-26 12:47:48 来自手机 |只看该作者
序列变量不要放在判断里,会发生莫名其妙的问题

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-27 05:50

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部