|
@@ -59,7 +59,6 @@ func FormatCompanyTradeData2EdbData(companyTradeData *tradeAnalysisModel.Contrac
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// GetOriginTradeData 获取原始持仓数据
|
|
|
func GetOriginTradeData(exchange, classifyName string, contracts, companies []string, predictRatio float64) (companyTradeData []*tradeAnalysisModel.ContractCompanyTradeData, err error) {
|
|
|
// 各原始数据表期货公司名称不一致
|
|
|
companyMap := make(map[string]string)
|
|
@@ -99,7 +98,6 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
|
|
|
}
|
|
|
var queryCompanies []string
|
|
|
for _, v := range companies {
|
|
|
- // TOP20用空名称去查询
|
|
|
if v == tradeAnalysisModel.TradeFuturesCompanyTop20 {
|
|
|
queryCompanies = append(queryCompanies, tradeAnalysisModel.TradeFuturesCompanyTop20)
|
|
|
continue
|
|
@@ -134,9 +132,9 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
|
|
|
keyDateData := make(map[string]*tradeAnalysisModel.ContractCompanyTradeDataList)
|
|
|
keyDateDataExist := make(map[string]bool)
|
|
|
for _, v := range originList {
|
|
|
- // Rank999-对应的是TOP20
|
|
|
+ // Rank999和0对应的是TOP20
|
|
|
companyName := v.CompanyName
|
|
|
- if v.Rank == 999 {
|
|
|
+ if v.Rank == 999 || v.Rank == 0 {
|
|
|
companyName = tradeAnalysisModel.TradeFuturesCompanyTop20
|
|
|
}
|
|
|
|
|
@@ -214,7 +212,7 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
|
|
|
}
|
|
|
|
|
|
// 以[公司]为组, 计算合约加总
|
|
|
- companyTradeData = make([]*tradeAnalysisModel.ContractCompanyTradeData, 0)
|
|
|
+ mussyTradeData := make(map[string]*tradeAnalysisModel.ContractCompanyTradeData)
|
|
|
for k, v := range companyContracts {
|
|
|
companyData := new(tradeAnalysisModel.ContractCompanyTradeData)
|
|
|
companyData.CompanyName = k
|
|
@@ -283,7 +281,21 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
|
|
|
return companyData.DataList[i].Date.Before(companyData.DataList[j].Date)
|
|
|
})
|
|
|
companyData.ClassifyType = strings.Join(contractArr, ",")
|
|
|
- companyTradeData = append(companyTradeData, companyData)
|
|
|
+ mussyTradeData[k] = companyData
|
|
|
+ }
|
|
|
+
|
|
|
+ // 数据根据公司排序, 不然会随机乱
|
|
|
+ companyTradeData = make([]*tradeAnalysisModel.ContractCompanyTradeData, 0)
|
|
|
+ for _, v := range companies {
|
|
|
+ // 没数据也需要加进去, 不然edbList会少
|
|
|
+ if mussyTradeData[v] == nil {
|
|
|
+ companyData := new(tradeAnalysisModel.ContractCompanyTradeData)
|
|
|
+ companyData.CompanyName = v
|
|
|
+ companyData.DataList = make([]*tradeAnalysisModel.ContractCompanyTradeDataList, 0)
|
|
|
+ companyTradeData = append(companyTradeData, companyData)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ companyTradeData = append(companyTradeData, mussyTradeData[v])
|
|
|
}
|
|
|
return
|
|
|
}
|