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