代码拉取完成,页面将自动刷新
package tdxweb
import (
"fmt"
"gitee.com/quant1x/engine/market"
"gitee.com/quant1x/gotdx/proto"
"gitee.com/quant1x/gox/concurrent"
"gitee.com/quant1x/gox/fastjson"
"gitee.com/quant1x/gox/http"
"gitee.com/quant1x/gox/logger"
)
const (
kUrlRiskAssessment = "http://page3.tdx.com.cn:7615/site/pcwebcall_static/bxb/json/"
defaultSafetyScore = 100
defaultSafetyScoreOfNotFound = 100
defaultSafetyScoreOfIgnore = 0
)
var (
__mapSafetyScore = concurrent.NewTreeMap[string, int]()
)
func GetSafetyScore(securityCode string) (score int) {
if !proto.AssertStockBySecurityCode(securityCode) {
return defaultSafetyScore
}
if market.IsNeedIgnore(securityCode) {
return defaultSafetyScoreOfIgnore
}
score = defaultSafetyScore
_, _, code := proto.DetectMarket(securityCode)
if len(code) == 6 {
url := fmt.Sprintf("%s%s.json", kUrlRiskAssessment, code)
data, err := http.HttpGet(url)
if err != nil || err == http.NotFound {
score = defaultSafetyScoreOfNotFound
} else {
obj, err := fastjson.ParseBytes(data)
if err != nil {
logger.Errorf("%+v\n", err)
tmpScore, ok := __mapSafetyScore.Get(securityCode)
if ok {
score = tmpScore
} else {
score = defaultSafetyScore
}
} else {
result := obj.GetArray("data")
if result != nil && len(result) > 0 {
tmpScore := 100
for _, v := range result {
rows := v.GetArray("rows")
for _, row := range rows {
trig := row.GetInt("trig")
if trig == 1 {
tmpScore = tmpScore - row.GetInt("fs")
}
}
}
score = tmpScore
__mapSafetyScore.Put(securityCode, score)
}
}
}
}
return score
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。