详细分析 ▾
运行时依赖
版本
Initial release of the Binance Trader skill: - Supports spot and futures trading on Binance - Includes examples for viewing account balance, placing orders, checking prices, retrieving K-line data, and viewing order history - Provides setup instructions for installing dependencies and configuring API keys - Contains security suggestions and error handling tips - Usage documentation is provided in Chinese
安装命令
点击复制技能文档
币安交易技能 - 支持现货和合约交易
安装
# 安装 Binance Python SDK /usr/bin/python3.12 -m pip install python-binance ccxt
# 配置 API Key export BINANCE_API_KEY="your_api_key" export BINANCE_API_SECRET="your_api_secret"
使用方法
1. 查看账户余额
from binance.client import Client import os
client = Client(os.getenv('BINANCE_API_KEY'), os.getenv('BINANCE_API_SECRET')) account = client.get_account() for balance in account['balances']: if float(balance['free']) > 0 or float(balance['locked']) > 0: print(f"{balance['asset']}: 可用={balance['free']}, 冻结={balance['locked']}")
2. 查看当前价格
# 获取单个币种价格 price = client.get_symbol_ticker(symbol="BTCUSDT") print(f"BTC 价格:{price['price']} USDT")
# 获取多个币种价格 prices = client.get_symbol_ticker() for p in prices[:10]: # 前 10 个 print(f"{p['symbol']}: {p['price']}")
3. 下单交易
# 现货买入 (市价单) order = client.order_market_buy( symbol='BTCUSDT', quoteOrderQty=100 # 用 100 USDT 买入 )# 现货卖出 order = client.order_market_sell( symbol='BTCUSDT', quantity=0.001 # 卖出 0.001 BTC )
# 限价单 order = client.order_limit_buy( symbol='BTCUSDT', quantity=0.001, price=50000 # 在 50000 USDT 时买入 )
4. 合约交易
from binance.um_futures import UMFuturesum_client = UMFutures(key=os.getenv('BINANCE_API_KEY'), secret=os.getenv('BINANCE_API_SECRET'))
# 查看合约持仓 positions = um_client.position_risk() for pos in positions: if float(pos['positionAmt']) != 0: print(f"{pos['symbol']}: 持仓={pos['positionAmt']}, 入场价={pos['entryPrice']}, 未实现盈亏={pos['unRealizedProfit']}")
# 开多 (买入) order = um_client.new_order( symbol="BTCUSDT", side="BUY", type="MARKET", quantity=0.001 )
# 开空 (卖出) order = um_client.new_order( symbol="BTCUSDT", side="SELL", type="MARKET", quantity=0.001 )
# 设置止损止盈 order = um_client.new_order( symbol="BTCUSDT", side="SELL", type="STOP_MARKET", quantity=0.001, stopPrice=48000, # 跌到 48000 止损 closePosition=True )
5. 查看 K 线数据
# 获取 BTC 1 小时 K 线 (最近 100 根) klines = client.get_klines(symbol="BTCUSDT", interval=Client.KLINE_INTERVAL_1HOUR, limit=100)
for k in klines[-5:]: # 最后 5 根 timestamp = k[0] open_price = k[1] high = k[2] low = k[3] close = k[4] volume = k[5] print(f"时间:{timestamp}, 开:{open_price}, 高:{high}, 低:{low}, 收:{close}, 量:{volume}")
6. 查看订单历史
# 现货订单历史 orders = client.get_all_orders(symbol='BTCUSDT', limit=10) for order in orders: print(f"{order['symbol']}: {order['side']} {order['type']} @ {order['price']} - 状态:{order['status']}")
# 合约订单历史 orders = um_client.get_all_orders(symbol='BTCUSDT', limit=10)
安全注意事项
- 永远不要分享 API Key
- 设置 IP 白名单 - 在币安后台限制 API Key 只能从特定 IP 访问
- 限制权限 - 只开启必要的权限(交易/读取),不要开启提现权限
- 使用子账户 - 建议创建子账户专门用于交易
- 设置提现白名单 - 防止资金被盗转
常用交易对
- 现货:
BTCUSDT,ETHUSDT,BNBUSDT,SOLUSDT - 合约:
BTCUSDT,ETHUSDT,BNBUSDT(永续合约)
错误处理
from binance.exceptions import BinanceAPIException
try: order = client.order_market_buy(symbol='BTCUSDT', quoteOrderQty=100) except BinanceAPIException as e: print(f"币安 API 错误:{e.status_code}, {e.message}") except Exception as e: print(f"其他错误:{e}")