package libs import ( "encoding/json" "fmt" "log" ) var ( Dcm_Signal = "/a/dcm_signal" ) type SignalResult struct { Code string `json:"code"` Total int `json:"total"` Updated string `json:"updated"` Data map[string]SignalItem `json:"data"` Message string `json:"message"` } type SignalItem struct { Code string `json:"code"` Name string `json:"name"` Desc string `json:"desc"` LastClose float64 `json:"last_close"` TechIndicator map[string]float64 `json:"tech_indicator"` } // FetchSignals 启动时读取信号,运行期间直接使用内存数据。 func FetchSignal(subUrl, host_key string) (*SignalResult, error) { // gen url. fullUrl := fmt.Sprintf("%s%s?host_key=%s&t=%s", API_HOST, subUrl, host_key, randStr(16)) // doing payload, err := GetJSON(fullUrl, HTTPTimeout) if err != nil { log.Printf("[ERROR] 获取60m大盘信号失败: %s %v", fullUrl, err) return nil, err } var result SignalResult err = json.Unmarshal(payload, &result) if err != nil { return nil, err } return &result, nil }