代码拉取完成,页面将自动刷新
package securities
import (
"fmt"
"gitee.com/quant1x/exchange"
"gitee.com/quant1x/exchange/cache"
"gitee.com/quant1x/gox/api"
)
// SectorFilename 板块缓存文件名
func SectorFilename(date ...string) string {
name := "blocks"
cacheDate := exchange.LastTradeDate()
if len(date) > 0 {
cacheDate = exchange.FixTradeDate(date[0])
}
filename := fmt.Sprintf("%s/%s.%s", cache.GetMetaPath(), name, cacheDate)
return filename
}
// 读取板块数据
func parseAndGenerateBlockFile() {
blockInfos := loadIndexBlockInfos()
block2Name := map[string]string{}
for _, v := range blockInfos {
block2Name[v.Block] = v.Name
}
bks := []string{"block.dat", "block_gn.dat", "block_fg.dat", "block_zs.dat"}
//bks := []string{"block_gn.dat", "block_fg.dat", "block_zs.dat"}
name2block := map[string]__raw_block_info{}
for _, v := range bks {
bi := parseRawBlockData(v)
if bi != nil {
for _, bk := range (*bi).Data {
blockName := bk.BlockName
if bn, ok := block2Name[blockName]; ok {
blockName = bn
}
name2block[blockName] = bk
}
}
}
// 行业代码映射
code2hy := map[string]string{}
for _, v := range blockInfos {
if v.Name != v.Block {
code2hy[v.Block] = v.Name
}
}
// 行业板块数据
hys := loadIndustryBlocks()
for i, v := range blockInfos {
bn := v.Name
__info, ok := name2block[bn]
if ok {
list := []string{}
for _, sc := range __info.List {
if len(sc.Code) < 5 {
continue
}
marketId, _, _ := exchange.DetectMarket(sc.Code)
if marketId == exchange.MarketIdBeiJing {
continue
}
list = append(list, sc.Code)
}
blockInfos[i].Count = int(__info.Num)
blockInfos[i].ConstituentStocks = list
continue
}
bc := v.Block
stockList := industryConstituentStockList(hys, bc)
if len(stockList) > 0 {
blockInfos[i].Count = len(stockList)
blockInfos[i].ConstituentStocks = stockList
}
}
blockInfos = api.Filter(blockInfos, func(info BlockInfo) bool {
return len(info.ConstituentStocks) > 0
})
if len(blockInfos) > 0 {
filename := SectorFilename()
_ = api.SlicesToCsv(filename, blockInfos)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。