67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
package exam
|
|
|
|
import (
|
|
"fmt"
|
|
// "gitea.zjmud.xyz/phyer/blingo/cache"
|
|
// "gitea.zjmud.xyz/phyer/blingo/collector"
|
|
// "gitea.zjmud.xyz/phyer/blingo/config"
|
|
// "gitea.zjmud.xyz/phyer/blingo/feature_processor"
|
|
// "gitea.zjmud.xyz/phyer/blingo/scheduler"
|
|
// "gitea.zjmud.xyz/phyer/blingo/storage"
|
|
// "log"
|
|
// "error"
|
|
ccxt "gitea.zjmud.xyz/ext/ccxt-go"
|
|
// "os"
|
|
// "os/exec"
|
|
// "net/http"
|
|
"time"
|
|
)
|
|
|
|
func FetchTicker() {
|
|
|
|
// 1. 创建 OKX 交易所实例
|
|
okx := ccxt.NewOkx(map[string]interface{}{
|
|
"apiKey": "fe468418-5e40-433f-8d04-04951286d417",
|
|
"secret": "D6D74DF9DD60A25BE2B27CA71D8F814D",
|
|
"password": "M4pw71Id",
|
|
"hostname": "aws.okx.com",
|
|
})
|
|
|
|
// 3. 可选:自定义 HTTP 客户端配置
|
|
// okx.HttpClient.Timeout = 15 * time.Second
|
|
okx.EnableRateLimit = true // 启用内置速率限制
|
|
|
|
// 4. 加载市场数据(关键步骤!)
|
|
marketsChan := okx.LoadMarkets()
|
|
select {
|
|
case marketsResult := <-marketsChan:
|
|
|
|
switch v := marketsResult.(type) {
|
|
case error:
|
|
panic(fmt.Errorf("加载市场数据失败: %v", v))
|
|
case string:
|
|
panic(fmt.Errorf("加载市场数据失败: %v", v))
|
|
case map[string]interface{}:
|
|
okx.Markets = v
|
|
default:
|
|
panic(fmt.Errorf("加载市场数据失败: 未知类型的结果"))
|
|
}
|
|
case <-time.After(30 * time.Second):
|
|
panic(fmt.Errorf("加载市场数据超时"))
|
|
}
|
|
|
|
fmt.Println("OKX 初始化完成,已加载", len(okx.Markets), "个交易对")
|
|
// 获取ticker数据
|
|
symbol := "BTC/USDT"
|
|
|
|
// opt里具体写什么,得需要看okx官方api的内容要求来定
|
|
opt := map[string]interface{}{}
|
|
ticker, err := okx.FetchTicker(symbol,
|
|
ccxt.WithFetchTickerParams(opt))
|
|
if err != nil {
|
|
fmt.Println("获取ticker数据错误:", err)
|
|
return
|
|
}
|
|
fmt.Println("ticker数据:", ticker)
|
|
}
|