diff --git a/trader/order_sync.go b/trader/order_sync.go index 2562d0ed..159983dd 100644 --- a/trader/order_sync.go +++ b/trader/order_sync.go @@ -270,13 +270,17 @@ func (m *OrderSyncManager) getTraderConfig(traderID string) (*store.TraderFullCo func (m *OrderSyncManager) createTrader(config *store.TraderFullConfig) (Trader, error) { exchange := config.Exchange - switch exchange.Type { + // 使用 exchange.ID 判断具体的交易所,而不是 exchange.Type (cex/dex) + switch exchange.ID { case "binance": return NewFuturesTrader(exchange.APIKey, exchange.SecretKey, config.Trader.UserID), nil case "bybit": return NewBybitTrader(exchange.APIKey, exchange.SecretKey), nil + case "okx": + return NewOKXTrader(exchange.APIKey, exchange.SecretKey, exchange.Passphrase), nil + case "hyperliquid": return NewHyperliquidTrader(exchange.SecretKey, exchange.HyperliquidWalletAddr, exchange.Testnet) @@ -295,7 +299,7 @@ func (m *OrderSyncManager) createTrader(config *store.TraderFullConfig) (Trader, return NewLighterTrader(exchange.LighterPrivateKey, exchange.LighterWalletAddr, exchange.Testnet) default: - return nil, fmt.Errorf("不支持的交易所类型: %s", exchange.Type) + return nil, fmt.Errorf("不支持的交易所: %s", exchange.ID) } } diff --git a/trader/position_sync.go b/trader/position_sync.go index a7d270d5..05b586e0 100644 --- a/trader/position_sync.go +++ b/trader/position_sync.go @@ -268,6 +268,9 @@ func (m *PositionSyncManager) createTrader(config *store.TraderFullConfig) (Trad case "bybit": return NewBybitTrader(exchange.APIKey, exchange.SecretKey), nil + case "okx": + return NewOKXTrader(exchange.APIKey, exchange.SecretKey, exchange.Passphrase), nil + case "hyperliquid": return NewHyperliquidTrader(exchange.SecretKey, exchange.HyperliquidWalletAddr, exchange.Testnet)