dev 5
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user