昨天发现TA-Lib的布林线与其他某些软件计算的不一致,首先排除了均线计算不一致的可能,那么只能是标准差计算不一致了
查看TA-Lib的标准差计算方式,根号内的分母为N,而非有些软件默认使用的样本标准差N-1
这样就对TA-Lib进行两处修改
1.ta_STDDEV.c
行号335
原代码:output[outIdx] = std_sqrt(meanValue2)
改为:output[outIdx] = std_sqrt(meanValue2*timePeriod / (timePeriod-1))
2.ta_VAR.c
行号322
原代码:outReal[outIdx++] = (meanValue2 - meanValue1*meanValue1)
改为:outReal[outIdx++] = (meanValue2 - meanValue1*meanValue1)*optInTimePeriod / (optInTimePeriod-1)
文章评论