跳转至

交易所参数参考

各交易所的特定参数说明。

Binance

基础参数

参数 类型 必需 默认值 说明
api_key str - API Key
secret str - Secret Key
testnet bool False 是否使用测试网络

测试网络配置

exchange_kwargs = {
    "BINANCE___SPOT": {
        "api_key": "...",
        "secret": "...",
        "testnet": True,  # 启用测试网络
    }
}

现货/合约通用参数

参数 类型 说明
recvWindow int 请求有效期,默认 5000ms
timestamp int 请求时间戳

订单参数

参数 类型 说明
newClientOrderId str 客户端自定义订单 ID
postOnly bool 是否只做 maker
reduceOnly bool 是否只减仓
icebergQty float 冰山订单数量
timeInForce str 订单有效期: GTC/IOC/FOK

时间周期

周期 说明
1m 1 分钟
3m 3 分钟
5m 5 分钟
15m 15 分钟
30m 30 分钟
1h / 1H 1 小时
4h 4 小时
1d / 1D 1 天

API 端点

环境 Spot REST Spot WebSocket Futures REST Futures WebSocket
生产 https://api.binance.com wss://stream.binance.com:9443 https://fapi.binance.com wss://fstream.binance.com
测试 https://testnet.binance.vision wss://testnet.binance.vision https://testnet.binancefuture.com wss://stream.testnet.binancefuture.com

OKX

基础参数

参数 类型 必需 默认值 说明
api_key str - API Key
secret str - Secret Key
passphrase str - API Key Passphrase
testnet bool False 是否使用测试网络

特殊说明

OKX 需要 passphrase,在创建 API Key 时设置。

模拟交易配置

exchange_kwargs = {
    "OKX___SPOT": {
        "api_key": "...",
        "secret": "...",
        "passphrase": "...",
        "testnet": False,
        "simulate": False,  # 是否启用模拟交易
    }
}

签名方法

OKX 使用 HMAC-SHA256 签名,需要包含 timestamp。

订单参数

参数 类型 说明
clientOrderId str 客户端订单 ID
tag str 订单标签
reduceOnly bool 是否只减仓
tpTriggerPx str 止盈触发价
slTriggerPx str 止损触发价

API 端点

环境 REST WebSocket
生产 https://www.okx.com wss://ws.okx.com:8443/ws/v5/public
模拟 https://www.okx.com wss://wspap.okx.com:8443/ws/v5/public

CTP

基础参数 (CtpAuthConfig)

参数 类型 必需 说明
broker_id str 经纪商代码 (如 SimNow 为 "9999")
user_id str 用户 ID
password str 密码
md_front str 行情前置地址
td_front str 交易前置地址
app_id str 应用 ID (生产环境)
auth_code str 认证码 (生产环境)

SimNow 配置

from bt_api_py import CtpAuthConfig

exchange_kwargs = {
    "CTP___FUTURE": {
        "auth_config": CtpAuthConfig(
            broker_id="9999",
            user_id="your_user_id",
            password="your_password",
            md_front="tcp://180.168.146.187:10211",  # 电信行情
            td_front="tcp://180.168.146.187:10201",  # 电信交易
        )
    }
}

前置地址

环境 电信行情 电信交易 移动/联通行情 移动/联通交易
SimNow tcp://180.168.146.187:10211 tcp://180.168.146.187:10201 tcp://180.168.146.187:10212 tcp://180.168.146.187:10202

订单参数

参数 类型 说明
offset str 必需
priceType str 价格类型: limit_price / market_price
volume float 数量 (手数)
minVolume float 最小成交量
condition dict 条单触发条件

合约代码格式

合约类型 格式 示例
股指期货 品种 + 年份(后 2 位) + 月份 IF2506 (沪深 300 2025 年 6 月)
商品期货 代码 + 年份(后 2 位) + 月份 AU2506 (黄金 2025 年 6 月)

Interactive Brokers

基础参数 (IbWebAuthConfig)

参数 类型 必需 说明
account_id str IB 账户 ID
base_url str API 基础 URL

配置示例

from bt_api_py import IbWebAuthConfig

exchange_kwargs = {
    "IB_WEB___STK": {
        "auth_config": IbWebAuthConfig(
            account_id="DU1234567",  # IB 账户 ID
            base_url="https://api.interactivebrokers.com"
        )
    }
}

股票代码格式

市场 格式 示例
美股 交易对符号 AAPL, TSLA, NVDA
港股 代码 + .HK 700.HK (腾讯), 9988.HK (阿里巴巴)
A 股 代码 + .STK 600519.STK (贵州茅台)
加密货币 交易对 BTCUSD

订单参数

参数 类型 说明
orderType str 订单类型: LMT / MKT / STP
outsideRth bool 是否允许常规交易时间外下单
`hidden bool 是否隐藏订单

API 端点

环境 URL
生产 https://api.interactivebrokers.com
测试 https://api.test.interactivebrokers.com

参数对比表

订单类型映射

概念 Binance OKX CTP IB
限价单 limit limit limit_price LMT
市价单 market market market_price MKT
止损单 - - - STP
冰山单 - iceberg - -

订单状态映射

状态 Binance OKX CTP IB
新建 new live - PendingSubmit
部分成交 partially_filled partially_filled - PartiallyFilled
完全成交 filled filled - Filled
已撤销 canceled canceled - Cancelled
被拒绝 rejected - - -

开平方向

概念 OKX CTP IB
开仓 open open -
平仓 close close -
平今 - close_today -
平昨 - close_yesterday -

参数校验

Binance 参数校验

def validate_binance_symbol(symbol: str) -> bool:
    """校验 Binance 交易对格式"""
    if not symbol.isupper():
        raise ValueError("Binance SPOT symbol must be uppercase")
    return True

def validate_binance_period(period: str) -> bool:
    """校验 K 线周期"""
    valid_periods = ["1m", "3m", "5m", "15m", "30m", "1h", "1d"]
    if period not in valid_periods:
        raise ValueError(f"Invalid period. Must be one of {valid_periods}")
    return True

OKX 参数校验

def validate_okx_symbol(symbol: str) -> bool:
    """校验 OKX 交易对格式"""
    if '-' not in symbol:
        raise ValueError("OKX symbol must contain '-'")
    return True

CTP 参数校验

def validate_ctp_offset(offset: str) -> bool:
    """校验 CTP 开平方向"""
    valid_offsets = ["open", "close", "close_today", "close_yesterday"]
    if offset not in valid_offsets:
        raise ValueError(f"Invalid offset. Must be one of {valid_offsets}")
    return True

完整示例

Binance 完整配置

binance_config = {
    "BINANCE___SPOT": {
        "api_key": os.getenv("BINANCE_API_KEY"),
        "secret": os.getenv("BINANCE_SECRET"),
        "testnet": os.getenv("BINANCE_TESTNET", "false") == "true",
    },
    "BINANCE___SWAP": {
        "api_key": os.getenv("BINANCE_FUTURES_API_KEY"),
        "secret": os.getenv("BINANCE_FUTURES_SECRET"),
        "testnet": os.getenv("BINANCE_TESTNET", "false") == "true",
    }
}

OKX 完整配置

okx_config = {
    "OKX___SPOT": {
        "api_key": os.getenv("OKX_API_KEY"),
        "secret": os.getenv("OKX_SECRET"),
        "passphrase": os.getenv("OKX_PASSPHRASE"),
        "testnet": os.getenv("OKX_TESTNET", "false") == "true",
    },
    "OKX___SWAP": {
        "api_key": os.getenv("OKX_API_KEY"),
        "secret": os.getenv("OKX_SECRET"),
        "passphrase": os.getenv("OKX_PASSPHRASE"),
    }
}

CTP 完整配置

ctp_config = {
    "CTP___FUTURE": {
        "auth_config": CtpAuthConfig(
            broker_id=os.getenv("CTP_BROKER_ID"),
            user_id=os.getenv("CTP_USER_ID"),
            password=os.getenv("CTP_PASSWORD"),
            md_front=os.getenv("CTP_MD_FRONT"),
            td_front=os.getenv("CTP_TD_FRONT"),
            app_id=os.getenv("CTP_APP_ID", ""),  # 生产环境需要
            auth_code=os.getenv("CTP_AUTH_CODE", ""),  # 生产环境需要
        )
    }
}

IB 完整配置

ib_config = {
    "IB_WEB___STK": {
        "auth_config": IbWebAuthConfig(
            account_id=os.getenv("IB_ACCOUNT_ID"),
            base_url="https://api.interactivebrokers.com"
        )
    },
    "IB_WEB___FUT": {
        "auth_config": IbWebAuthConfig(
            account_id=os.getenv("IB_ACCOUNT_ID"),
        )
    }
}

相关文档