brucecolvin 发表于 2011-2-21 09:41:25

报告:发现一个bug,严重级别

fc类的函数,如lowestfc函数。如果你使用fc函数在if分支中就有bug,但如果没有分支结构则无bug。
开始我反复思考为什么会这样,还看了求极值函数Extremes的实现过程,也并未发现什么缺陷和设计不对路的地方。
但,左思右想,突然眼睛一亮居然看到Extremes函数中有局部的序列变量定义NumericSeries MyVal;NumericSeries MyBar;,问题找到了,就在这里。
由于程序设计使用if等分支结构,导致使用fc类的函数,如lowestfc函数,在某些bar下无法执行fc类函数,而符合条件的bar则执行fc类函数,所以中间出现空缺导致Extremes函数中的序列变量MyVal/MyBar未赋正确的值,终止导致程序求值而出现错误。
核心问题还在于序列变量的设计思想上,没有考虑分支结构导致未赋值的情况。
未赋值,虽然Tb会初始化,但其初始化的值并非是程序最终想要的值。

qiyunshllj 发表于 2016-11-18 21:54:09

这个问题到现在还存在,将lowestfc改成lowest函数就好了
页: [1]
查看完整版本: 报告:发现一个bug,严重级别