From 07ac8e4ecd4e417809077577cb5a574c538a93a2 Mon Sep 17 00:00:00 2001 From: tinkle-community Date: Sun, 7 Dec 2025 18:52:42 +0800 Subject: [PATCH] fix: use http.DefaultClient for OKX trader - Use http.DefaultClient instead of custom client, consistent with Binance/Bybit SDKs - Remove unnecessary noProxyFunc and net/url import - All exchanges now use the same HTTP client behavior --- manager/trader_manager.go | 3 ++- trader/okx_trader.go | 20 +++----------------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/manager/trader_manager.go b/manager/trader_manager.go index 43423203..7cdbfe69 100644 --- a/manager/trader_manager.go +++ b/manager/trader_manager.go @@ -199,8 +199,9 @@ func (tm *TraderManager) GetCompetitionData() (map[string]interface{}, error) { // 获取所有交易员列表 allTraders := make([]*trader.AutoTrader, 0, len(tm.traders)) - for _, t := range tm.traders { + for id, t := range tm.traders { allTraders = append(allTraders, t) + logger.Infof("📋 竞赛数据包含交易员: %s (%s)", t.GetName(), id) } tm.mu.RUnlock() diff --git a/trader/okx_trader.go b/trader/okx_trader.go index 51af9d50..87191849 100644 --- a/trader/okx_trader.go +++ b/trader/okx_trader.go @@ -11,7 +11,6 @@ import ( "fmt" "io" "net/http" - neturl "net/url" "nofx/logger" "strconv" "strings" @@ -96,28 +95,15 @@ func genOkxClOrdID() string { return orderID } -// noProxyFunc 返回一个始终返回 nil 的代理函数,用于禁用代理 -func noProxyFunc(req *http.Request) (*neturl.URL, error) { - return nil, nil -} - // NewOKXTrader 创建OKX交易器 func NewOKXTrader(apiKey, secretKey, passphrase string) *OKXTrader { - // 创建完全禁用代理的 HTTP 客户端 - // 这对于 Docker 容器环境很重要,因为容器可能继承宿主机的代理环境变量 - transport := &http.Transport{ - Proxy: noProxyFunc, - } - httpClient := &http.Client{ - Timeout: 30 * time.Second, - Transport: transport, - } - + // 使用 http.DefaultClient,与 Binance/Bybit SDK 保持一致 + // DefaultClient 使用 DefaultTransport,会读取环境变量代理设置 trader := &OKXTrader{ apiKey: apiKey, secretKey: secretKey, passphrase: passphrase, - httpClient: httpClient, + httpClient: http.DefaultClient, cacheDuration: 15 * time.Second, instrumentsCache: make(map[string]*OKXInstrument), }