详细分析 ▾
运行时依赖
版本
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 osclient = 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 BinanceAPIExceptiontry:
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}")
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制