最近有很多朋友私信问我:BNB API是什么?怎么才能接入币安API搞量化交易?说实话,我之前刚接触的时候也是一头雾水,查了一堆文档,踩了不少坑,才慢慢摸清楚。今天我就把自己整理的接入流程和实测经验分享出来,用大白话讲清楚,包你看完能自己动手申请一个API Key,并跑通最简单的交易脚本。
相关下载: Binance全球顶级交易所 v3.19.3最新版大小:293.4M

说白了,BNB API就是币安开放给程序员的接口,让你可以写代码去控制自己的币安账户,比如查行情、下单、撤单、看余额这些操作。它跟你在手机上点来点去是一样的,只不过换成代码自动执行,速度更快,还能同时监控很多币种,非常适合做量化交易或者行情分析。
很多新手会问:BNB API安全吗? 我自己用了大半年,感觉只要把权限控制好,风险是可控的。币安允许你限制API只能交易、不能提现,这样就算Key泄露了,别人也动不了你的币。这点一定要记住,后面我会细说。
还有朋友问:BNB API和WebSocket有什么区别? 简单说,REST API适合发指令、查数据,WebSocket适合实时接收价格推送。新手入门一般先用REST API就够了,后面进阶再考虑WebSocket。
要使用BNB API,首先你肯定得有个币安账号。如果你还没有,可以去官网注册,注意要用正规渠道,别点陌生链接。注册完成后,记得完成身份验证(KYC),不然很多功能都用不了,API的某些权限也会受限。
这一步没啥技术含量,就是填资料、传证件、人脸识别,几分钟搞定。如果你已经注册过,直接登录就行。
登录币安后,鼠标移到右上角头像,在下拉菜单里找到“API管理”入口。点进去之后,会要求你输入一个标签(随便起个名字,比如“mybot”),然后会让你输入手机验证码和邮箱验证码,有的还需要谷歌验证器,这个看你有没有开二次验证。
创建成功后,你会看到两串字符串:API Key和Secret Key。这里必须跟你说清楚,Secret Key只显示一次,一定要立刻复制保存好,最好存到密码管理器里。要是丢了,只能删掉重建,很麻烦。
然后就是权限设置。默认权限是“读取”,我建议你刚开始只勾选“允许读取”和“允许交易”,千万不要勾选“允许提现”。这样就算Key泄露,黑客也没法把你的币转走。等以后你确定安全了,再考虑开提现权限,但说实话,提现权限我到现在都没开。

另外,币安还允许你绑定IP白名单。如果你用的是自己的服务器,可以把服务器IP填进去,这样只有那个IP才能用这个Key,安全性更高。如果你是本地跑脚本,IP会变,那就先不填,但要注意保护好Key文件。
有了API Key,接下来就是写代码了。我推荐用Python,因为库多,社区资料也丰富。你需要安装`python-binance`这个库,它是第三方封装的,用起来很简单。
打开终端,执行:
pip install python-binance
安装好之后,写个简单脚本测试连接:
from binance.client import Client
api_key = '你的API Key'
api_secret = '你的Secret Key'
client = Client(api_key, api_secret)
# 获取账户信息
account = client.get_account()
print(account['balances'][0])
运行后如果没报错,会输出你的账户资产信息。看到这里,恭喜你,BNB API已经接入成功了!
有的朋友可能会问:怎么获取BNB的实时价格? 这也很简单,用`client.get_symbol_ticker(symbol='BNBUSDT')`就能拿到当前价格。我之前就是拿这个接口做价格监控,每天跑一遍,很稳定。
连接测试通过后,你就可以尝试下单了。不过在下单之前,我强烈建议你先用测试网(Testnet)练手。币安有个专门的沙箱环境,用的是虚拟币,随便造不心疼。
测试网地址是`testnet.binance.vision`,你需要重新申请一对测试网的API Key,代码里把`base_url`参数改一下就行。
在测试网跑通流程后,再切回真实环境,心里就有底了。我第一次用测试网的时候,因为不懂市价单和限价单的区别,下了个限价单,结果一直没成交,还以为是Bug,后来才明白是价格没到。
真实下单的代码大概这样:
order = client.create_order(
symbol='BNBUSDT',
side='BUY',
type='MARKET',
quantity=0.01
)
print(order)
注意,`quantity`是币的数量,不是金额。如果你只想买50块的BNB,得先通过价格算一下数量。这个细节很多人会搞错,我第一次就因为数量不对被拒了。
相关下载: 欧易okx交易所 v6.184.0大小:379.8M
新手接入BNB API,几乎都会遇到几个报错。我列一下最常见的:
1. -2015 Invalid API-key, IP, or permissions for action:这个意思是你的Key没权限,或者IP不对。检查一下你是否勾选了交易权限,还有IP白名单有没有限制。
2. -1021 Timestamp for this request is outside of the recvWindow:这是时间戳问题,因为服务器之间有时差,你需要在代码里设置`timeout`或者同步一下本机时间。用`client = Client(api_key, api_secret, {'timeout': 20})`能解决。
3. -1102 Mandatory parameter 'quantity' was not sent, was empty/null, or malformed:这个就是数量没传对,注意类型是字符串,不是浮点数。我之前就踩过这个坑,传了数字结果报错。
还有一点,BNB API限频很严格,每分钟最多请求1200次,如果超了会被封IP。如果你是做高频交易,一定要控制频率,加上重试机制。

很多新手会问:BNB API是免费的吗? 答案是免费的,币安不额外收API使用费,但交易本身有手续费。如果你用BNB抵扣手续费,还能打75折,这个优惠别忘了开通。
另外,BNB API有次数限制吗? 有,但个人使用完全够。我做了一个定时提醒脚本,每5秒拉一次价格,一天也就几千次请求,离限制远着呢。
接入API后,你可以做很多事。比如写个脚本,每天早上9点拉一下BNB的24小时涨跌幅,推送到微信;或者盯盘,当价格跌破某个值,自动买入;再或者做个网格交易策略,低买高卖。我自己目前就用它做定投,每月固定买入一点BNB,省心省力。
但说句实话,币安API的文档对新手不太友好,全英文,而且有些概念很抽象。所以我才写这篇教程,希望能帮你少走弯路。如果你照着做还是卡壳,欢迎在评论区留言,我看到会回复。
精彩推荐
用户评论