如图, 这个是在tb里计算均线的,
当test_num <= 45时, 和聚宽数据+talib计算是完全一样的, 但是test_num大于45, 结果差距很大, 这是怎么回事??? (两边取的数据都是沪深300指数5m K线)
均线周期大于45, 则结果完全不同:
群里不给问问题, 论坛提问也不回复, 代码也不开源, 数据也不能下载, 失望
Params
Numeric length(100);
Events
OnBar(ArrayRef<Integer> indexs)
{
PlotNumeric("average",AverageFC(close[1],length));
Print(datetimetostring(date+time)+":"+text(AverageFC(close[1],length)));
}
上面这是测试代码
下面是输出结果和talib的输出结果
差别确实是有,但是浮点数本来就容易产生误差,这种差别对于浮点数计算的精度来说是可接受的,不知道你说的不一样是哪里不一样。
另外你在客服群咨询的问题客服第一时间也回复了,不让提问回帖不回不知道是什么意思?
排查错误要用控制变量的方法
如果你现在的定义是,averagefc函数计算是错的 ,那就单独新建一个公式,只计算averagefc,再进行比较。如果像这样排除了其他所有因素影响,那就说明averagefc确实是错的。但是你提供的代码,还有很多其他因素,并不能确定是不是因为序列类型使用错误导致。
单独测试了一下, 误差在可接受范围内; 在策略里还是对不上, 我再复查下, 谢谢回复
AverageFC提供了源代码的,问题应该是这个函数,参数不能用变量吧,您直接用个超过45的常量试试。
谢谢回复, 我用的就是常量. 您也可以试试看
test_num只是在K线图表加载时候方便调节的, 实际上也是一个常量