From 61afbea5881ce4e34a88b8fbb1fb3ee7c3699a73 Mon Sep 17 00:00:00 2001 From: tinkle-community Date: Sun, 23 Nov 2025 19:51:53 +0800 Subject: [PATCH] fix bybit_trader future order --- trader/bybit_trader.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/trader/bybit_trader.go b/trader/bybit_trader.go index b53ead3e..7c055d0b 100644 --- a/trader/bybit_trader.go +++ b/trader/bybit_trader.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "log" + "net/http" "strconv" "strings" "sync" @@ -32,8 +33,23 @@ type BybitTrader struct { // NewBybitTrader 创建 Bybit 交易器 func NewBybitTrader(apiKey, secretKey string) *BybitTrader { + const src = "Up000938" + client := bybit.NewBybitHttpClient(apiKey, secretKey, bybit.WithBaseURL(bybit.MAINNET)) + // 设置 HTTP 传输 + if client != nil && client.HTTPClient != nil { + defaultTransport := client.HTTPClient.Transport + if defaultTransport == nil { + defaultTransport = http.DefaultTransport + } + + client.HTTPClient.Transport = &headerRoundTripper{ + base: defaultTransport, + refererID: src, + } + } + trader := &BybitTrader{ client: client, cacheDuration: 15 * time.Second, @@ -44,6 +60,17 @@ func NewBybitTrader(apiKey, secretKey string) *BybitTrader { return trader } +// headerRoundTripper 用于添加自定义 header 的 HTTP RoundTripper +type headerRoundTripper struct { + base http.RoundTripper + refererID string +} + +func (h *headerRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + req.Header.Set("Referer", h.refererID) + return h.base.RoundTrip(req) +} + // GetBalance 获取账户余额 func (t *BybitTrader) GetBalance() (map[string]interface{}, error) { // 检查缓存