新增注释
This commit is contained in:
@@ -6,8 +6,10 @@ import (
|
||||
"level_go/internal/model"
|
||||
)
|
||||
|
||||
// GetLimitOpenThresholdGroups 返回昨日涨停股今日开盘是否低于前收 101% 的分组。
|
||||
func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model.LimitOpenThresholdResponse, error) {
|
||||
resp := model.LimitOpenThresholdResponse{TradeDate: tradeDate}
|
||||
// thresholdRatio 是开盘价阈值,1.01 表示前收的 101%。
|
||||
const thresholdRatio = 1.01
|
||||
|
||||
tradeDates, dateIndex, err := s.loadTradeCalendar(tradeDate)
|
||||
@@ -34,6 +36,7 @@ func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model
|
||||
withinThresholdStocks := make([]model.LimitOpenThresholdStock, 0)
|
||||
atOrAboveThresholdStocks := make([]model.LimitOpenThresholdStock, 0)
|
||||
for _, stock := range stocks {
|
||||
// 前收价格有效时才计算阈值价格和开盘/前收比值,避免除零和误导性数据。
|
||||
if stock.HasPreviousClose && stock.PreviousClose > 0 {
|
||||
stock.OpenThresholdPrice = stock.PreviousClose * thresholdRatio
|
||||
}
|
||||
@@ -59,6 +62,7 @@ func (s *LimitBoardService) GetLimitOpenThresholdGroups(tradeDate string) (model
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// loadLimitOpenThresholdStocks 查询昨日涨停且今日继续涨停的股票,并补齐今日开盘和前收。
|
||||
func (s *LimitBoardService) loadLimitOpenThresholdStocks(tradeDate, previousTradeDate string) ([]model.LimitOpenThresholdStock, error) {
|
||||
var stocks []model.LimitOpenThresholdStock
|
||||
query := `SELECT
|
||||
@@ -105,6 +109,7 @@ func (s *LimitBoardService) loadLimitOpenThresholdStocks(tradeDate, previousTrad
|
||||
return stocks, err
|
||||
}
|
||||
|
||||
// buildLimitOpenThresholdGroups 构造低于阈值和达到/超过阈值两个固定分组。
|
||||
func buildLimitOpenThresholdGroups(withinThresholdStocks, atOrAboveThresholdStocks []model.LimitOpenThresholdStock) []model.LimitOpenThresholdGroup {
|
||||
if withinThresholdStocks == nil {
|
||||
withinThresholdStocks = []model.LimitOpenThresholdStock{}
|
||||
@@ -132,6 +137,7 @@ func buildLimitOpenThresholdGroups(withinThresholdStocks, atOrAboveThresholdStoc
|
||||
}
|
||||
}
|
||||
|
||||
// sortLimitOpenThresholdStocks 按涨跌幅降序、股票代码升序稳定展示分组内股票。
|
||||
func sortLimitOpenThresholdStocks(stocks []model.LimitOpenThresholdStock) {
|
||||
sort.Slice(stocks, func(i, j int) bool {
|
||||
if stocks[i].PctChg == stocks[j].PctChg {
|
||||
|
||||
Reference in New Issue
Block a user