|
@@ -53,12 +53,12 @@ func InitTradePosition(exchange, startDate, endDate string) (err error, errMsg s
|
|
|
errMsg = "新增原始数据失败,MultiInsertTradeBaseDataToTop() Err: "
|
|
|
return
|
|
|
}
|
|
|
- originList, err :=data_manage.GetTradePositionTopByExchangeDataTime(exchange, startDate, endDate)
|
|
|
+ originList, err := data_manage.GetTradePositionTopByExchangeDataTime(exchange, startDate, endDate)
|
|
|
if err != nil {
|
|
|
errMsg = "查询原始数据失败, GetTradePositionTopByExchangeDataTime() Err: "
|
|
|
return
|
|
|
}
|
|
|
- if len(originList) <=0 {
|
|
|
+ if len(originList) <= 0 {
|
|
|
err = fmt.Errorf("原始数据没有值")
|
|
|
return
|
|
|
}
|
|
@@ -89,7 +89,7 @@ func InitTradePosition(exchange, startDate, endDate string) (err error, errMsg s
|
|
|
list = make([]*data_manage.TradePositionTop, 0)
|
|
|
}
|
|
|
}
|
|
|
- if len(list) > 0 {
|
|
|
+ if len(list) > 0 {
|
|
|
err = data_manage.InsertMultiTradePositionTop(exchange, list)
|
|
|
if err != nil {
|
|
|
errMsg = "批量新增昨日数据失败,InsertMultiTradePositionTop() Err: "
|
|
@@ -103,20 +103,20 @@ func InitTradePosition(exchange, startDate, endDate string) (err error, errMsg s
|
|
|
_, ok2 := onlyEmptyMap[k+"_2"]
|
|
|
var dealType int
|
|
|
if ok1 && !ok2 {
|
|
|
- dealType =2 //只有买单没有卖单
|
|
|
- }else if !ok1 && ok2 {
|
|
|
+ dealType = 2 //只有买单没有卖单
|
|
|
+ } else if !ok1 && ok2 {
|
|
|
dealType = 1 //只有卖单没有买单的情况
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
continue
|
|
|
}
|
|
|
if dealType > 0 {
|
|
|
- str := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_"+strconv.Itoa(dealType)
|
|
|
+ str := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DataTime + "_" + strconv.Itoa(dealType)
|
|
|
dealValue := 0
|
|
|
if lastVal, ok := topLastMap[str]; ok {
|
|
|
- dealValue = int(float64(lastVal) * 0.7+0.5)
|
|
|
+ dealValue = int(float64(lastVal)*0.7 + 0.5)
|
|
|
}
|
|
|
|
|
|
- tmp :=&data_manage.TradePositionTop{
|
|
|
+ tmp := &data_manage.TradePositionTop{
|
|
|
ClassifyName: v.ClassifyName,
|
|
|
ClassifyType: v.ClassifyType,
|
|
|
DealShortName: v.DealShortName,
|
|
@@ -164,7 +164,7 @@ func InitTradePosition(exchange, startDate, endDate string) (err error, errMsg s
|
|
|
|
|
|
func dealTradeOriginData(dataTimeMap map[string]*data_manage.TradePositionTop, onlyEmptyMap map[string]bool, onlyEmptyNameMap map[string]*data_manage.TradePositionTop, currentItem *data_manage.TradePositionTop, topLastMap map[string]int, topLastRankMap map[string]int, startDate string, now time.Time) (tmp0 *data_manage.TradePositionTop, err error) {
|
|
|
classifyName := currentItem.ClassifyName
|
|
|
- classifyType :=currentItem.ClassifyType
|
|
|
+ classifyType := currentItem.ClassifyType
|
|
|
dealShortName := currentItem.DealShortName
|
|
|
dealValue := currentItem.DealValue
|
|
|
dealChange := currentItem.DealChange
|
|
@@ -196,7 +196,7 @@ func dealTradeOriginData(dataTimeMap map[string]*data_manage.TradePositionTop, o
|
|
|
if ok1 {
|
|
|
yesterdayChange = yesterdayVal - beforeYesterdayItem.DealValue
|
|
|
}
|
|
|
- tmp0 =&data_manage.TradePositionTop{
|
|
|
+ tmp0 = &data_manage.TradePositionTop{
|
|
|
ClassifyName: classifyName,
|
|
|
ClassifyType: classifyType,
|
|
|
DealShortName: dealShortName,
|
|
@@ -223,7 +223,7 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- if startDate == firstItem.DataTime { //如果当前是起始日,则无需统计修改前一天的数据
|
|
|
+ if startDate == firstItem.DataTime { //如果当前是起始日,则无需统计修改前一天的数据
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -237,7 +237,7 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
return
|
|
|
}
|
|
|
// 先查出T日最原始的数据
|
|
|
- originList, err :=data_manage.GetTradePositionTopByExchangeDataTime(exchange, startDate, startDate)
|
|
|
+ originList, err := data_manage.GetTradePositionTopByExchangeDataTime(exchange, startDate, startDate)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -247,10 +247,10 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
if v.SourceType != 0 {
|
|
|
continue
|
|
|
}
|
|
|
- str := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DealShortName
|
|
|
+ str := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DealShortName
|
|
|
if v.DealType == 1 {
|
|
|
originBuyMap[str] = v
|
|
|
- }else if v.DealType == 2 {
|
|
|
+ } else if v.DealType == 2 {
|
|
|
originSoldMap[str] = v
|
|
|
}
|
|
|
}
|
|
@@ -260,7 +260,7 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- if len(changeList) <=0 {
|
|
|
+ if len(changeList) <= 0 {
|
|
|
//err = fmt.Errorf("前天的数据无需修改")
|
|
|
return
|
|
|
}
|
|
@@ -276,10 +276,10 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
if v.SourceType == 2 {
|
|
|
continue
|
|
|
}
|
|
|
- str := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DealShortName
|
|
|
+ str := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DealShortName
|
|
|
if v.DealType == 1 {
|
|
|
beforeYesterdayMap1[str] = v.DealValue
|
|
|
- }else if v.DealType == 2 {
|
|
|
+ } else if v.DealType == 2 {
|
|
|
beforeYesterdayMap2[str] = v.DealValue
|
|
|
}
|
|
|
}
|
|
@@ -289,17 +289,17 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
// 批量更新到分析表中,
|
|
|
var updateAnalysisData []data_manage.UpdateDealValueChange
|
|
|
for _, v := range changeList {
|
|
|
- str := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DealShortName
|
|
|
+ str := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DealShortName
|
|
|
dealValue := 0
|
|
|
dealChange := 0
|
|
|
if v.DealType == 1 {
|
|
|
if n, ok := originBuyMap[str]; ok {
|
|
|
- dealValue = n.DealValue - n.DealChange
|
|
|
+ dealValue = n.DealValue - n.DealChange
|
|
|
if beforeVal, ok1 := beforeYesterdayMap1[str]; ok1 {
|
|
|
dealChange = dealValue - beforeVal
|
|
|
}
|
|
|
tmp := data_manage.UpdateDealValueChange{
|
|
|
- Id: v.Id,
|
|
|
+ Id: v.Id,
|
|
|
DealValue: dealValue,
|
|
|
DealChange: dealChange,
|
|
|
SourceType: 1,
|
|
@@ -307,14 +307,14 @@ func DealYesterdayData(exchange, startDate string) (err error) {
|
|
|
}
|
|
|
updateAnalysisData = append(updateAnalysisData, tmp)
|
|
|
}
|
|
|
- }else if v.DealType == 2 {
|
|
|
+ } else if v.DealType == 2 {
|
|
|
if n, ok := originSoldMap[str]; ok {
|
|
|
- dealValue = n.DealValue - n.DealChange
|
|
|
+ dealValue = n.DealValue - n.DealChange
|
|
|
if beforeVal, ok1 := beforeYesterdayMap2[str]; ok1 {
|
|
|
dealChange = dealValue - beforeVal
|
|
|
}
|
|
|
tmp := data_manage.UpdateDealValueChange{
|
|
|
- Id: v.Id,
|
|
|
+ Id: v.Id,
|
|
|
DealValue: dealValue,
|
|
|
DealChange: dealChange,
|
|
|
SourceType: 1,
|
|
@@ -356,8 +356,8 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
now := time.Now()
|
|
|
var subDataList data_manage.TradePositionSubList
|
|
|
|
|
|
- subChangeMap1 := make(map[string]int) //净多单map
|
|
|
- subChangeMap2 := make(map[string]int) //净空单map
|
|
|
+ subChangeMap1 := make(map[string]int) //净多单map
|
|
|
+ subChangeMap2 := make(map[string]int) //净空单map
|
|
|
//查询所有差值数据,
|
|
|
yesterday, err := getYesterdayDate(startDate)
|
|
|
if err != nil {
|
|
@@ -370,7 +370,7 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
}
|
|
|
if len(yesterdayTopList1) > 0 {
|
|
|
for _, v := range yesterdayTopList1 {
|
|
|
- nameStr := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_"+v.DealShortName
|
|
|
+ nameStr := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DataTime + "_" + v.DealShortName
|
|
|
subChangeMap1[nameStr] = v.DealValue
|
|
|
}
|
|
|
}
|
|
@@ -382,7 +382,7 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
}
|
|
|
if len(yesterdayTopList2) > 0 {
|
|
|
for _, v := range yesterdayTopList2 {
|
|
|
- nameStr := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_"+v.DealShortName
|
|
|
+ nameStr := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DataTime + "_" + v.DealShortName
|
|
|
subChangeMap2[nameStr] = v.DealValue
|
|
|
}
|
|
|
}
|
|
@@ -393,17 +393,17 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
}
|
|
|
buyDataMap := make(map[string]int)
|
|
|
for _, v := range originDataList {
|
|
|
- str := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_"+v.DealShortName
|
|
|
+ str := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DataTime + "_" + v.DealShortName
|
|
|
if v.DealType == 1 {
|
|
|
buyDataMap[str] = v.DealValue
|
|
|
- }else if v.DealType == 2 {
|
|
|
+ } else if v.DealType == 2 {
|
|
|
subValue := 0
|
|
|
dealType := 0
|
|
|
if buy, ok := buyDataMap[str]; ok {
|
|
|
subValue = buy - v.DealValue
|
|
|
- if subValue >=0 {
|
|
|
+ if subValue >= 0 {
|
|
|
dealType = 3
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
subValue = -subValue
|
|
|
dealType = 4
|
|
|
}
|
|
@@ -426,22 +426,22 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
rankMap := make(map[string]int)
|
|
|
for _, v := range subDataList {
|
|
|
subValue := v.SubValue
|
|
|
- nameStr := v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_"+v.DealShortName
|
|
|
+ nameStr := v.ClassifyName + "_" + v.ClassifyType + "_" + v.DataTime + "_" + v.DealShortName
|
|
|
if v.DealType == 3 {
|
|
|
subChangeMap1[nameStr] = subValue
|
|
|
dealType = 3
|
|
|
- if _, ok :=rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_3"]; !ok {
|
|
|
+ if _, ok := rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_3"]; !ok {
|
|
|
rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_3"] = 1
|
|
|
- }else{
|
|
|
- rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_3"] ++
|
|
|
+ } else {
|
|
|
+ rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_3"]++
|
|
|
}
|
|
|
- }else if v.DealType == 4 {
|
|
|
+ } else if v.DealType == 4 {
|
|
|
subChangeMap2[nameStr] = subValue
|
|
|
dealType = 4
|
|
|
- if _, ok :=rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_4"]; !ok {
|
|
|
+ if _, ok := rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_4"]; !ok {
|
|
|
rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_4"] = 1
|
|
|
- }else{
|
|
|
- rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_4"] ++
|
|
|
+ } else {
|
|
|
+ rankMap[v.ClassifyName+"_"+v.ClassifyType+"_"+v.DataTime+"_4"]++
|
|
|
}
|
|
|
}
|
|
|
//和T-1日比较差值
|
|
@@ -450,13 +450,13 @@ func createAnalysisCleanTop(exchange, startDate, endDate string) (err error) {
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- yesterdayStr := v.ClassifyName+"_"+v.ClassifyType+"_"+tmpTimeStr+"_"+v.DealShortName
|
|
|
+ yesterdayStr := v.ClassifyName + "_" + v.ClassifyType + "_" + tmpTimeStr + "_" + v.DealShortName
|
|
|
dealChange := 0
|
|
|
if dealType == 3 {
|
|
|
if c, ok := subChangeMap1[yesterdayStr]; ok {
|
|
|
dealChange = subValue - c
|
|
|
}
|
|
|
- }else if dealType == 4 {
|
|
|
+ } else if dealType == 4 {
|
|
|
if c, ok := subChangeMap2[yesterdayStr]; ok {
|
|
|
dealChange = subValue - c
|
|
|
}
|
|
@@ -498,14 +498,14 @@ func getYesterdayDate(today string) (yesterday string, err error) {
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- tmpTimeDate := tmpTime.AddDate(0,0,-i)
|
|
|
+ tmpTimeDate := tmpTime.AddDate(0, 0, -i)
|
|
|
weekStr := tmpTimeDate.Weekday().String()
|
|
|
if weekStr == "Sunday" {
|
|
|
- i +=2
|
|
|
+ i += 2
|
|
|
} else if weekStr == "Saturday" {
|
|
|
- i +=1
|
|
|
+ i += 1
|
|
|
}
|
|
|
- tmpTimeDate = tmpTime.AddDate(0,0,-i)
|
|
|
+ tmpTimeDate = tmpTime.AddDate(0, 0, -i)
|
|
|
yesterday = tmpTimeDate.Format(utils.FormatDate)
|
|
|
return
|
|
|
-}
|
|
|
+}
|