Skip to content

ConfigLoader

The config_loader module provides Pydantic-based YAML configuration validation for exchange configurations.

Overview

All exchange configurations are defined in YAML files and validated against Pydantic models at runtime. This ensures type safety and provides clear error messages for invalid configurations.

Configuration Schema

ExchangeConfig

class ExchangeConfig(BaseModel):
    exchange_name: str
    venue_type: VenueType
    auth_type: AuthType
    api_key: Optional[str] = None
    secret: Optional[str] = None
    passphrase: Optional[str] = None
    testnet: bool = False
    proxy: Optional[Dict[str, Any]] = None
    timeout: float = 30.0
    rate_limit: Optional[Dict[str, Any]] = None

VenueType

class VenueType(Enum):
    SPOT = "spot"              # Spot trading
    MARGIN = "margin"          # Margin trading
    USDT_SWAP = "usdt_swap"   # USDT-margined perpetual
    COIN_SWAP = "coin_swap"    # Coin-margined perpetual
    FUTURE = "future"          # Delivery futures
    OPTION = "option"          # Options
    STK = "stk"               # Stocks

AuthType

class AuthType(Enum):
    NONE = "none"              # No authentication (public endpoints)
    API_KEY = "api_key"        # API Key + Secret
    MARGIN_KEY = "margin_key"  # Margin trading auth
    FUTURES_KEY = "futures_key" # Futures auth
    OPTION_KEY = "option_key"  # Options auth

Usage

Loading Configuration from File

from bt_api_base.config_loader import load_exchange_config

config = load_exchange_config("binance.yaml")
# Returns ExchangeConfig with validated fields

Loading Multiple Configurations

from bt_api_base.config_loader import load_all_configs

configs = load_all_configs("configs/exchanges/")
for name, config in configs.items():
    print(f"{name}: {config.exchange_name}")

Programmatic Configuration

from bt_api_base.config_loader import ExchangeConfig, VenueType, AuthType

config = ExchangeConfig(
    exchange_name="BINANCE___SPOT",
    venue_type=VenueType.SPOT,
    auth_type=AuthType.API_KEY,
    api_key="your_api_key",
    secret="your_secret",
    testnet=True,
)

中文

概述

config_loader 模块提供基于 Pydantic 的 YAML 配置验证,用于交易所配置。

VenueType(交易场所类型)

类型 说明
SPOT 现货交易
MARGIN 杠杆交易
USDT_SWAP USDT 永续合约
COIN_SWAP 币本位永续合约
FUTURE 交割合约
OPTION 期权
STK 股票

AuthType(认证类型)

类型 说明
NONE 无认证(公开接口)
API_KEY API Key + Secret
MARGIN_KEY 杠杆交易认证
FUTURES_KEY 合约认证
OPTION_KEY 期权认证

主要方法

方法 说明
load_exchange_config(path) 从文件加载单个配置
load_all_configs(dir) 从目录加载所有配置
validate_config(config) 验证配置对象

使用示例

from bt_api_base.config_loader import load_exchange_config

config = load_exchange_config("binance.yaml")
print(config.exchange_name, config.venue_type)