📖 目录导读
- 为什么要学习币安API?——从手动交易到自动化的第一步
- 准备工作:注册币安账户与API申请全流程
- 安全第一:API密钥权限设置与白名单配置
- Python环境搭建:安装必要的库(requests, python-binance)
- 手把手写一个脚本:获取实时行情与自动下单
- 常见问题与避坑指南
- 写在最后:自动化交易的风险与建议
为什么要学习币安API?——从手动交易到自动化的第一步
你有没有过这样的经历:盯着屏幕上的K线图,想在某一个价格瞬间买入,结果手速慢了半拍,价格已经飞了,或者在深夜看到某个币种突然拉升,但你正在睡觉,错过了最佳出货时机。

这就是手动交易的痛点。 而币安API接口就是解决这一问题的钥匙,通过API,你可以编写脚本让程序24小时自动执行交易策略,不用再盯着屏幕,也不用担心手慢。
但注意: API是把双刃剑,用好了,它是你的“交易助手”;用不好,它可能让你的资金瞬间蒸发,请务必读完本文的安全部分。
准备工作:注册币安账户与API申请全流程
1 注册一个币安账户
你需要一个币安Binance账户,如果你还没有,请前往官网注册,并完成身份认证(KYC),这一步是必须的,否则无法使用API。
2 申请API密钥
登录账户后,点击右上角头像 → API管理 → 输入一个名称(我的交易脚本”) → 点击“创建API”。
你会得到两串字符:
- API Key:类似你的账号ID,脚本用来识别你。
- Secret Key:类似你的密码。注意:Secret Key只在创建时显示一次,务必复制并保存到安全的地方。 如果丢失,只能重新生成。
问答环节
问:API密钥泄露了怎么办?
答: 立即登录币安账户,在API管理页面删除该密钥,并重新生成,千万不要把密钥上传到GitHub或公开代码库中。
安全第一:API密钥权限设置与白名单配置
很多新手犯的第一个错误就是“给了API所有权限”。这是极其危险的。
创建API时,你会看到权限设置选项:
- 启用交易(Enable Trading):如果你只想要查看行情,不要勾选这个,只有当你确认脚本无误后,再开启。
- 启用提现(Enable Withdrawals):永远不要勾选! 交易脚本不需要提现功能,勾选后会有人盗用你的密钥转走资产。
- IP白名单:强烈建议设置,只允许你服务器或本地电脑的IP地址调用API,比如你的公网IP是
456.789.0,填入后只有这个IP能使用你的密钥。
一个常见的悲剧: 有人把API密钥和Secret Key写在Python脚本里,脚本放在GitHub上,结果被机器人扫描到,不到5分钟账户里的BSC链资产被转空。请一定设置白名单,并把密钥存为环境变量,而不是硬编码。
Python环境搭建:安装必要的库
1 安装Python(如果没装的话)
去python.org下载最新版,安装时勾选“Add Python to PATH”。
2 安装两个核心库
打开终端(Windows用CMD或PowerShell,Mac用终端),执行:
pip install requests python-binance
requests:用于直接调用REST API(适合新手理解原理)。python-binance:官方推荐的Python库,封装了几乎所有币安API,用起来更方便。
手把手写一个脚本:获取实时行情与自动下单
1 获取BTC当前价格(Demo版)
我们先写一个极简脚本,测试你的API密钥是否有效,创建一个文件test_connection.py:
from binance.client import Client
# 请用你的密钥替换,但永远不要硬编码!这里只是示例
api_key = "你的API_KEY"
secret_key = "你的SECRET_KEY"
client = Client(api_key, secret_key)
# 获取BTC/USDT的实时价格
ticker = client.get_symbol_ticker(symbol="BTCUSDT")
print(f"BTC当前价格: {ticker['price']} USDT")
运行后,如果输出价格数字,说明成功连接。
2 写一个“低价买入、高价卖出”的简单脚本
假设我们想监控ETH的价格:当价格低于3000 USDT时买入0.01个ETH,当价格高于3100 USDT时卖出,脚本如下(请先测试,再实盘):
from binance.client import Client
import time
api_key = "你的API_KEY"
secret_key = "你的SECRET_KEY"
client = Client(api_key, secret_key)
symbol = "ETHUSDT"
buy_price = 3000
sell_price = 3100
quantity = 0.01
while True:
try:
ticker = client.get_symbol_ticker(symbol=symbol)
current_price = float(ticker['price'])
print(f"当前{ symbol }价格: {current_price}")
if current_price <= buy_price:
# 下市价买单
order = client.order_market_buy(
symbol=symbol,
quantity=quantity
)
print(f"买入成功: {order}")
break # 买入后退出循环,避免重复买入
elif current_price >= sell_price:
# 下市价卖单
order = client.order_market_sell(
symbol=symbol,
quantity=quantity
)
print(f"卖出成功: {order}")
break
time.sleep(10) # 每10秒检查一次
except Exception as e:
print(f"出错: {e}")
time.sleep(30)
注意: 这个脚本极其简陋,仅用于学习,实际交易中还要考虑手续费、滑点、订单簿深度等。不要直接用于大额资金交易!
常见问题与避坑指南
1 “-1013”错误:交易数量或精度不对
币安对每个币种的交易数量有最小限制和精度要求,比如ETH的最小数量是0.001,精度是3位小数,你可以用client.get_symbol_info('ETHUSDT')查看具体规则。
2 数据延迟:别用公开API做高频交易
币安API有速率限制(Weight),比如每分钟最多1200次请求,如果你每秒请求一次,很容易被限流,公开API有200ms左右的延迟,做高频交易(毫秒级)不现实。
3 WebSocket比REST更快
如果实时性要求高,建议用WebSocket(python-binance库支持)而不是轮询REST API,WebSocket是推送模式,延迟更低,且不消耗API权重。
问答环节
问:我想用API测试策略,但不想亏钱,怎么办?
答: 币安Binance提供测试网(Testnet),在testnet.binance.vision上注册,你会获得测试用的虚拟资产,所有API调用和实盘完全一样,但不会损失真金白银。
写在最后:自动化交易的风险与建议
写一个交易脚本并不难,难的是写一个稳健、安全、不亏钱的脚本,以下几条建议送给想入坑的你:
- 永远先用测试网:至少跑一周,确认策略有效。
- 做好风控:比如设置“当日最大亏损”上限,到了就强制停止脚本。
- 日志记录:保存每一次订单的详细信息,方便复盘。
- 不要过度自信:程序跑得再快,也比不过市场黑天鹅,2020年312暴跌,多少自动化脚本瞬间爆仓。
如果你真心想深入,建议学习“限价单”而不是“市价单”,并了解“冰山订单”来降低市场冲击,交易这条路,慢慢来比较快。
祝你代码不报错,交易常盈利!
标签: Python交易脚本