This commit is contained in:
2026-08-26 23:27:42 +08:00
parent c30c1541d2
commit cdbd03fe53
13 changed files with 256 additions and 355 deletions

View File

@@ -1,13 +1,9 @@
package libs
import (
"big-qmt/go-client/config"
"encoding/json"
"fmt"
"log"
)
var (
Dcm_Signal = "/a/dcm_signal"
)
type SignalResult struct {
@@ -19,6 +15,7 @@ type SignalResult struct {
}
type SignalItem struct {
SignalKey string `json:"signal_key"`
Code string `json:"code"`
Name string `json:"name"`
Desc string `json:"desc"`
@@ -26,21 +23,35 @@ type SignalItem struct {
TechIndicator map[string]float64 `json:"tech_indicator"`
}
func InitSignals() ([]*SignalItem, error) {
CacheSignals := make([]*SignalItem, 0)
for key, s := range config.Global.Signals {
result, err := FetchSignal(s.Url)
if err != nil {
return nil, fmt.Errorf("[信号] %s, 获取错误:%v", key, err)
}
for _, item := range result.Data {
item.SignalKey = key
CacheSignals = append(CacheSignals, &item)
}
}
return CacheSignals, nil
}
// FetchSignals 启动时读取信号,运行期间直接使用内存数据。
func FetchSignal(subUrl, host_key string) (*SignalResult, error) {
func FetchSignal(subUrl string) (*SignalResult, error) {
// gen url.
fullUrl := fmt.Sprintf("%s%s?host_key=%s&t=%s", API_HOST, subUrl, host_key, randStr(16))
fullUrl := fmt.Sprintf("%s%s?t=%s", API_HOST, subUrl, randStr(16))
// doing
payload, err := GetJSON(fullUrl, HTTPTimeout)
if err != nil {
log.Printf("[ERROR] 获取60m大盘信号失败: %s %v", fullUrl, err)
return nil, err
return nil, fmt.Errorf("开仓信号获取失败: %s %v", fullUrl, err)
}
var result SignalResult
err = json.Unmarshal(payload, &result)
if err != nil {
return nil, err
return nil, fmt.Errorf("开仓信号解析失败: %s %v", fullUrl, err)
}
return &result, nil
}