mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-14 16:26:57 +08:00
feat(exchange): add Bybit Futures support (#1100)
* feat(exchange): add Bybit Futures support - Add Bybit Go SDK dependency (github.com/bybit-exchange/bybit.go.api) - Create trader/bybit_trader.go implementing Trader interface for USDT perpetual futures - Update config/database.go to include Bybit in default exchanges - Update manager/trader_manager.go to handle Bybit API key configuration - Update trader/auto_trader.go to add BybitAPIKey/BybitSecretKey fields and bybit case - Add Bybit icon to frontend ExchangeIcons.tsx Bybit uses standard API Key/Secret Key authentication (similar to Binance). Only USDT perpetual futures (category=linear) are supported. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: tinkle-community <tinklefund@gmail.com> * test(bybit): add comprehensive unit tests for Bybit trader - Add BybitTraderTestSuite following existing test patterns - Interface compliance test (Trader interface) - Symbol format validation tests - FormatQuantity tests with 3-decimal precision - API response parsing tests (success, error, permission denied) - Position side conversion tests (Buy->long, Sell->short) - Cache duration verification test - Mock server integration tests for API endpoints All 12 Bybit tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: tinkle-community <tinklefund@gmail.com> * fix(frontend): add Bybit support to exchange config forms 修復前端對 Bybit 交易所的支持: - 添加 Bybit 到 API Key/Secret Key 輸入欄位顯示邏輯 - 添加 Bybit 的表單驗證邏輯 - 修復 ExchangeConfigModal.tsx 和 AITradersPage.tsx 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: tinkle-community <tinklefund@gmail.com> --------- Co-authored-by: the-dev-z <the-dev-z@users.noreply.github.com> Co-authored-by: tinkle-community <tinklefund@gmail.com>
This commit is contained in:
committed by
GitHub
parent
abfe366720
commit
46ec8f1d04
@@ -23,12 +23,16 @@ type AutoTraderConfig struct {
|
||||
AIModel string // AI模型: "qwen" 或 "deepseek"
|
||||
|
||||
// 交易平台选择
|
||||
Exchange string // "binance", "hyperliquid", "aster" 或 "lighter"
|
||||
Exchange string // "binance", "bybit", "hyperliquid", "aster" 或 "lighter"
|
||||
|
||||
// 币安API配置
|
||||
BinanceAPIKey string
|
||||
BinanceSecretKey string
|
||||
|
||||
// Bybit API配置
|
||||
BybitAPIKey string
|
||||
BybitSecretKey string
|
||||
|
||||
// Hyperliquid配置
|
||||
HyperliquidPrivateKey string
|
||||
HyperliquidWalletAddr string
|
||||
@@ -184,6 +188,9 @@ func NewAutoTrader(config AutoTraderConfig, database interface{}, userID string)
|
||||
case "binance":
|
||||
log.Printf("🏦 [%s] 使用币安合约交易", config.Name)
|
||||
trader = NewFuturesTrader(config.BinanceAPIKey, config.BinanceSecretKey, userID)
|
||||
case "bybit":
|
||||
log.Printf("🏦 [%s] 使用Bybit合约交易", config.Name)
|
||||
trader = NewBybitTrader(config.BybitAPIKey, config.BybitSecretKey)
|
||||
case "hyperliquid":
|
||||
log.Printf("🏦 [%s] 使用Hyperliquid交易", config.Name)
|
||||
trader, err = NewHyperliquidTrader(config.HyperliquidPrivateKey, config.HyperliquidWalletAddr, config.HyperliquidTestnet)
|
||||
|
||||
Reference in New Issue
Block a user