代码拉取完成,页面将自动刷新
package factors
import (
"gitee.com/quant1x/engine/datasource/base"
"gitee.com/quant1x/gotdx/quotes"
"gitee.com/quant1x/gotdx/securities"
"gitee.com/quant1x/gox/api"
"gitee.com/quant1x/gox/concurrent"
)
func checkoutCapital(list []quotes.XdxrInfo, date string) *quotes.XdxrInfo {
for _, v := range list {
if v.IsCapitalChange() && date >= v.Date {
return &v
}
}
return nil
}
type f10SecurityInfo struct {
TotalCapital float64
Capital float64
VolUnit int
DecimalPoint int
Name_ string
IpoDate string
SubNew bool
UpdateDate string
}
var (
//__mapListingDate = map[string]string{}
__mapListingDate = concurrent.NewHashMap[string, string]()
)
func checkoutSecurityBasicInfo(securityCode, featureDate string) f10SecurityInfo {
list := base.GetCacheXdxrList(securityCode)
api.SliceSort(list, func(a, b quotes.XdxrInfo) bool {
return a.Date > b.Date
})
// 计算流通盘
cover := checkoutCapital(list, featureDate)
var f10 f10SecurityInfo
if cover != nil {
f10.TotalCapital = cover.HouZongGuBen * 10000
f10.Capital = cover.HouLiuTong * 10000
} else {
f10.Capital, f10.TotalCapital, f10.IpoDate, f10.UpdateDate = getFinanceInfo(securityCode, featureDate)
}
if len(f10.IpoDate) == 0 {
ipoDate, ok := __mapListingDate.Get(securityCode)
if !ok {
ipoDate = getIpoDate(securityCode, featureDate)
}
f10.IpoDate = ipoDate
if len(f10.IpoDate) > 0 {
__mapListingDate.Set(securityCode, f10.IpoDate)
}
}
if len(f10.UpdateDate) == 0 || f10.UpdateDate > featureDate {
f10.UpdateDate = featureDate
}
if len(f10.IpoDate) > 0 {
f10.SubNew = IsSubNewStockByIpoDate(securityCode, f10.IpoDate, featureDate)
}
securityInfo, found := securities.CheckoutSecurityInfo(securityCode)
if found {
f10.VolUnit = int(securityInfo.VolUnit)
f10.DecimalPoint = int(securityInfo.DecimalPoint)
f10.Name_ = securityInfo.Name
} else {
f10.VolUnit = 100
f10.DecimalPoint = 2
f10.Name_ = securities.GetStockName(securityCode)
}
return f10
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。