|
@@ -463,6 +463,38 @@ func refreshAllCalculateNhcc(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
|
|
|
bDataList, bDataMap = handleNhccData(secondDataList, existItemB.MoveValue)
|
|
|
}
|
|
|
|
|
|
+ if len(aDataList) <= 0 {
|
|
|
+ err = errors.New("指标A没有数据")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(bDataList) <= 0 {
|
|
|
+ err = errors.New("指标B没有数据")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 拟合残差计算的结束日期判断
|
|
|
+ {
|
|
|
+ endAData := aDataList[len(aDataList)-1]
|
|
|
+ tmpEndDate, tmpErr := time.ParseInLocation(utils.FormatDate, endAData.DataTime, time.Local)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 如果A指标的最新数据日期早于拟合残差的结束日期,那么就用A指标的最新数据日期
|
|
|
+ if tmpEndDate.Before(nhccDate.EndDate) {
|
|
|
+ nhccDate.EndDate = tmpEndDate
|
|
|
+ }
|
|
|
+ endBData := bDataList[len(bDataList)-1]
|
|
|
+ tmpEndDate, tmpErr = time.ParseInLocation(utils.FormatDate, endBData.DataTime, time.Local)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 如果B指标的最新数据日期早于拟合残差的结束日期,那么就用A指标的最新数据日期
|
|
|
+ if tmpEndDate.Before(nhccDate.EndDate) {
|
|
|
+ nhccDate.EndDate = tmpEndDate
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 计算线性方程公式
|
|
|
var a, b float64
|
|
|
{
|