You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Binance中为多个API密钥异步创建订单?

多用户异步创建Binance订单解决方案

要实现多用户异步创建订单,你可以使用python-binance库提供的AsyncClient(异步客户端)结合asyncio来并发执行订单请求,避免同步执行的耗时累加问题。以下是完整实现方案:

步骤1:确保依赖库安装

先确保你安装了最新版的python-binance:

pip install python-binance --upgrade

步骤2:异步实现代码

import asyncio
from binance import AsyncClient
from binance.enums import *

# 定义多用户的订单数据:每个元素包含用户API密钥和订单参数
user_order_list = [
    {
        "api_key": "user1_api_key",
        "api_secret": "user1_api_secret",
        "order_params": {
            "symbol": "BTCUSDT",
            "side": SIDE_SELL,
            "type": ORDER_TYPE_LIMIT,
            "timeInForce": TIME_IN_FORCE_GTC,
            "quantity": 0.001,
            "price": "16000"
        }
    },
    {
        "api_key": "user2_api_key",
        "api_secret": "user2_api_secret",
        "order_params": {
            "symbol": "ETHUSDT",
            "side": SIDE_BUY,
            "type": ORDER_TYPE_MARKET,
            "quantity": 0.01
        }
    },
    # 可以继续添加更多用户的订单数据
]

async def create_single_user_order(user_data):
    """异步处理单个用户的订单创建"""
    api_key = user_data["api_key"]
    api_secret = user_data["api_secret"]
    order_params = user_data["order_params"]
    
    try:
        # 初始化异步客户端
        client = await AsyncClient.create(api_key, api_secret)
        # 创建测试订单(正式环境替换为create_order)
        order_result = await client.create_test_order(**order_params)
        print(f"用户订单创建成功: {order_result}")
        return order_result
    except Exception as e:
        print(f"用户订单创建失败: {str(e)}")
        return None
    finally:
        # 关闭客户端连接
        await client.close_connection()

async def main():
    # 并发执行所有用户的订单任务
    tasks = [create_single_user_order(user) for user in user_order_list]
    results = await asyncio.gather(*tasks)
    # 处理所有结果(可选)
    print("\n所有订单任务完成,结果汇总:")
    for idx, res in enumerate(results):
        print(f"用户{idx+1}: {res}")

if __name__ == "__main__":
    asyncio.run(main())

关键说明

  1. 异步客户端AsyncClient:python-binance专门提供了异步版本的客户端,所有API方法都支持await调用,适合并发场景。
  2. asyncio.gather:将多个异步任务打包并发执行,所有任务几乎同时发起请求,总耗时接近单请求的响应时间(而非累加时间)。
  3. 错误隔离:每个用户的订单请求在独立的异步任务中执行,单个用户的请求失败不会影响其他用户的任务执行。
  4. 资源清理:每个任务完成后都会关闭客户端连接,避免资源泄漏。

替换为正式订单

如果需要创建真实订单,只需将代码中的create_test_order替换为create_order即可,注意调整订单参数符合Binance的交易规则。

内容的提问来源于stack exchange,提问作者AmirX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:11:27