程序自带lowest函数计算结果错误咨询

在使用系统自带的lowest函数时发生了以下错误,请教一下怎么解决?

工作区和公式文件   https://yunpan.360.cn/surl_ykFX2MtyUf9 (提取码:f5f3)

 

错误 error C2664: “autotrade::Numeric _function_Lowest::Lowest(autotrade::Numeric,
Highest和Lowest为何计算错误
咨询自编函数
TBQuant期权TradingDayLeft函数计算结果错误
咨询函数
函数咨询
咨询函数
外部程序计算结果如何送入到TB程序
BlackModel函数错误
新安装的TB3编译系统自带的用户函数/策略应用均报错

谢谢!

您好!您反馈的这个问题是TB量化中一个常见问题——序列函数问题,TB的很多视频课程里一定会提到这个问题的。

既然发帖问到,就顺带解释下。因为量化交易所需要的序列数据,是和一根根BAR关联的,所以基于序列数据的函数,也必须保证每根BAR中都有正确的值,否则函数计算返回的值就有可能发生错误,这个问题就是TB里的序列函数问题。所以只要是函数中用到了序列变量或序列参数的就是序列函数,或者函数内部调用了序列函数的也是序列函数。

回到您的代码,只在CurrentBar==5才会调用Lowest这个函数,所以这个函数内部的序列数据是不完整的。这是导致数据看起来错误的原因。

正确的写法是:

保证Lowest函数在每根BAR都会执行,结果放到一个普通变量中,再用条件语句去显示,这样就不会出现您说的错误问题了。