目录导读
- 什么是币安API?为什么交易者都在用?
- 币安API接口申请完整流程(含避坑指南)
- Python环境搭建与必备库安装
- 手把手编写第一个交易脚本:获取实时行情
- 进阶功能:下单、查询余额与止损设置
- 常见问题与安全警告(必读)
什么是币安API?为什么交易者都在用?
如果你对加密货币交易稍有了解,一定听过币安这个名字,它是全球交易量最大的加密货币交易所之一,而币安API就是官方提供给开发者的一把“钥匙”,让你能通过代码直接控制自己的账户,比如查看行情、自动下单、管理资金。

为什么越来越多人用API写脚本?
因为手动盯盘太累了!想象一下:你只想在比特币跌到某个价位时自动买入,或者每天定投一定数量的以太坊——这些重复操作,用Python脚本几分钟就能搞定。币安的API文档清晰、响应速度快,尤其适合做量化交易的入门练习。
币安API接口申请完整流程(含避坑指南)
在写代码之前,你必须先拿到API密钥,以下是申请步骤:
步骤1:登录币安账户
确保你有一个已完成KYC验证的账户(没验证的话,很多功能会受限)。
步骤2:创建API密钥
- 进入账户中心 → “API管理”
- 点击“创建API”,系统会要求你验证(手机/邮箱二选一)。
- 输入描述标签(PythonTest”),然后选择API权限。
注意: 如果只是测试行情,只勾选“读取”即可;如果要做交易,必须勾选“交易”权限。千万别勾选“提现”! 否则密钥泄露可能导致资产被盗。
步骤3:保存密钥
创建成功后,你会得到两个字符串:
API Key(类似:abc123...)Secret Key(类似:xyz789...)
立刻复制保存到安全的地方! 页面关闭后Secret Key将永远无法查看。
避坑指南:
- 密钥不要明文存在代码里,建议用环境变量或加密配置文件。
- 如果你的IP地址频繁变动,建议在API设置里绑定“白名单IP”,只允许特定地址访问。
Python环境搭建与必备库安装
假设你已经安装了Python 3.8以上版本,打开终端或命令提示符,安装两个核心库:
pip install python-binance pip install pandas
python-binance:币安官方推荐的Python封装库,能省去手动构造请求头的麻烦。pandas:处理行情数据时非常好用。
小技巧: 如果下载慢,可以添加国内镜像源(比如清华源):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-binance
手把手编写第一个交易脚本:获取实时行情
打开你的编辑器(VSCode或PyCharm都可以),新建一个binance_test.py文件,输入以下代码:
from binance.spot import Spot
import pandas as pd
# 初始化客户端(用你自己的密钥替换下面两行)
client = Spot(api_key='你的API_KEY', api_secret='你的SECRET_KEY')
# 获取比特币当前价格(交易对为BTCUSDT)
ticker = client.ticker_price('BTCUSDT')
print(f"比特币当前价格:{ticker['price']} USDT")
# 获取最近10根1小时K线数据
klines = client.klines('ETHUSDT', '1h', limit=10)
df = pd.DataFrame(klines, columns=['时间', '开盘', '最高', '最低', '收盘', '成交量',
'收盘时间', '成交额', '成交笔数', '主动买入量', '主动买入额', '忽略'])
print(df[['时间', '开盘', '最高', '最低', '收盘']].head())
运行结果示例:
比特币当前价格:67530.12 USDT
时间 开盘 最高 最低 收盘
0 1.692345e+12 3245.67 3278.90 3220.10 3250.30
...
脚本解释:
Spot类用于现货交易(币对币)。ticker_price()返回实时价格,klines()返回历史K线。- 你完全可以把这段代码放到定时任务里,实现“每秒打印一次行情”的效果。
进阶功能:下单、查询余额与止损设置
光看行情不够刺激?我们来写一个能自动下单的脚本。注意:首次测试请先用小额资金!
# 查询USDT余额
usdt_balance = client.account()['balances']
for asset in usdt_balance:
if asset['asset'] == 'USDT':
print(f"USDT可用余额:{asset['free']}")
# 下单买入0.001个比特币(市价单)
try:
order = client.new_order(
symbol='BTCUSDT',
side='BUY',
type='MARKET',
quantity=0.001 # 注意:币安对最小交易量有要求,BTC最小是0.0001
)
print(f"订单已提交,订单号:{order['orderId']}")
except Exception as e:
print(f"下单失败:{e}")
# 设置止损单(卖出触发价67000)
stop_order = client.new_order(
symbol='BTCUSDT',
side='SELL',
type='STOP_LOSS_LIMIT', # 止损限价单
quantity=0.001,
price=66500, # 止损后的限价
stopPrice=67000 # 触发止损的价格
)
print("止损单已设置")
重要提示:
- 测试时使用
symbol='BNBUSDT'(币安币)可能更易满足最小交易量。 - 真实交易前,建议使用币安的测试网(Testnet)模拟操作,测试网API申请地址:
https://testnet.binance.vision/。
常见问题与安全警告(必读)
Q:我的API密钥泄露了怎么办?
A:立刻登录币安官网 → API管理 → 删除该密钥!然后修改密码和二次验证设置,如果已发生异常交易,联系客服冻结账户。
Q:脚本运行提示“签名错误”?
A:检查Secret Key是否复制了完整字符串(包括末尾的换行符),系统时间必须与标准时间同步(误差超过30秒会报错),建议开启电脑NTP自动同步。
Q:为什么我买不了某个币?
A:币安的某些币种有“交易区”限制(比如仅USDT交易区或BUSD交易区),检查symbol参数是否正确,SHIBUSDT”而非“SHIBBTC”。
安全警告(三遍):
- 永远不要将API密钥上传到GitHub或公开代码库。
- 永远不要勾选“提现”权限,除非你有特殊需求。
- 永远不要将密钥告知他人,包括“币安客服”——真正的客服不会索要密钥。
总结与下一步
恭喜!你已经学会了币安API接口申请教程并用Python写出了简单的交易脚本,从获取行情到自动止损,这些代码已经能应付70%的基础交易需求,如果你想深入,可以尝试:
- 接入WebSocket实现实时推送行情
- 用
pandas-ta库添加技术指标(如MACD、RSI) - 把脚本部署到云服务器,实现24小时无人值守
自动交易有风险,回测是第一步。 先用测试网模拟跑一周,再考虑真金白银入场。
附:推荐的交易工具与链接
- 币安现货API文档(官方最新版)
- 第三方Python库
python-binance的GitHub仓库(用于查阅API参数) - 量化学习社区(搜索“币安 量化交易”可获得更多实战案例)
标签: 交易脚本