目录导读
- 为什么你需要学会币安API交易脚本?
- 前期准备:币安API接口申请步骤详解
- Python环境搭建与基础库安装
- 手写第一个交易脚本:查询账户余额
- 进阶实战:实现自动市价买入与卖出
- 常见问题QA:踩坑经验与安全提醒
- 延伸阅读:如何用脚本做网格交易?
为什么你需要学会币安API交易脚本?
很多朋友在币安交易时,都会遇到一个痛点:你不可能24小时盯盘,手动下单往往慢半拍,尤其是当你需要执行均线策略、做市策略或套利时,人工操作既容易出错,又容易错过最佳点位,这时候,通过币安API接口写一个Python交易脚本,就能让电脑根据你的策略自动下单,举个例子:你设定当BTC价格跌破30000时自动买入,脚本就可以在毫秒级帮你执行,完全摆脱情绪干扰。

如果你是刚接触编程的交易者,别慌,这篇文章会手把手带你从申请API密钥开始,一直写到能跑起来的实战脚本。注意:本文中所有涉及币安官方域名的链接,请以实际界面为准,示例中统一使用 b2-binance.com.cn 作为演示地址。
前期准备:币安API接口申请步骤详解
1 注册账户与安全验证
你需要一个币安Binance账户,打开官网后完成KYC认证(实名认证),这是调用API的前提。强烈建议启用谷歌二次验证(2FA),这是保护你API密钥不被盗用的第一道防线。
2 创建API密钥
登录后,进入“API管理”页面,点击“创建API”,选择“系统生成的API Key”,此时会跳出安全验证(邮箱验证+谷歌验证码),验证成功后,你会得到两串关键字符:
- API Key:相当于你的用户名,可以公开。
- Secret Key:相当于你的密码,千万不能泄露,也不要直接写在代码里(后面教你安全存储)。
注意:申请时建议勾选“启用交易”和“启用提现”权限,如果只是测试,可以只开“只读”权限,完成后,把这两串字符保存在安全的地方,比如1Password或环境变量。
Python环境搭建与基础库安装
1 安装Python
确保你电脑上有Python 3.7以上版本,打开终端(CMD或Terminal),输入python --version检查,如果没有,去官网下载安装包。
2 安装核心库
我们需要三个库:
- python-binance:官方推荐的封装库,极大简化API调用。
- requests:发送HTTP请求。
- pandas:处理交易数据。
打开终端,运行:
pip install python-binance requests pandas
3 安全存储密钥
不要在代码里写死密钥!建一个.env文件:
BINANCE_API_KEY=你的APIKey
BINANCE_SECRET_KEY=你的SecretKey
然后用python-dotenv库读取,或者直接通过os.environ读取环境变量,这样就算代码上传到GitHub,密钥也不会泄露。
手写第一个交易脚本:查询账户余额
1 连接币安API
新建一个test_balance.py文件,写入以下代码:
from binance.client import Client
import os
from dotenv import load_dotenv
# 加载.env中的密钥
load_dotenv()
api_key = os.getenv('BINANCE_API_KEY')
api_secret = os.getenv('BINANCE_SECRET_KEY')
# 初始化客户端,注意:币安API国内访问可能需要代理,或使用官方镜像接口
client = Client(api_key, api_secret, tld='com')
# 获取账户信息
def get_balance():
try:
account = client.get_account()
for balance in account['balances']:
if float(balance['free']) > 0:
print(f"{balance['asset']}: 可用 {balance['free']}, 冻结 {balance['locked']}")
except Exception as e:
print(f"获取余额失败:{e}")
if __name__ == '__main__':
get_balance()
运行脚本:
终端输入python test_balance.py,如果看到你的USDT、BTC等余额,恭喜你,成功连接上了币安API!这一步的关键是确认网络能访问币安接口,有时国内用户需要使用b2-binance.com.cn这类镜像地址来避免延迟。
2 常见错误处理
- 报错“-1021”:说明时间戳偏差太大,请校准电脑时间(同步网络时间)。
- 报错“-2014”:密钥错误或权限不足,检查API Key的权限是否开启交易。
进阶实战:实现自动市价买入与卖出
1 编写一个下单函数
假设你想用市价单买入0.01个BTC:
from binance.enums import *
def market_buy(symbol, quantity):
try:
order = client.order_market_buy(
symbol=symbol,
quantity=quantity
)
print(f"买入成功:{order['symbol']},数量:{order['executedQty']}")
return order
except Exception as e:
print(f"买入失败:{e}")
# 使用示例:买入0.01 BTC
market_buy('BTCUSDT', 0.01)
注意:市价单买入时,Quantity是币的数量(如0.01 BTC),但卖出时是币的数量,如果你用USDT买入,需要指定quoteOrderQty参数,比如买入100 USDT的BTC:
order = client.order_market_buy(
symbol='BTCUSDT',
quoteOrderQty=100 # 用100 USDT买
)
2 集成风控逻辑
不要直接裸跑脚本,至少加上简单的止损逻辑:
- 检查当前价格是否在合理区间(比如偏离5日均线超过10%则停止交易)。
- 设置最大下单金额(例如单次交易不超过账户总资金的10%)。
- 记录每次交易日志,方便复盘。
常见问题QA:踩坑经验与安全提醒
Q1:API密钥被盗了怎么办?
A:立刻登录币安Binance账户,在API管理页面删除该密钥,同时修改账户密码,并检查是否有异常提现,如果已经发生损失,马上联系客服。再次强调:Secret Key永远不要传到网上。
Q2:为什么我连不上币安API?
A:可能有三个原因:① 网络环境限制,尝试使用代理或b2-binance.com.cn这类镜像节点;② 电脑时间不同步,必须与网络时间误差小于5秒;③ 密钥权限没勾选“启用交易”。
Q3:Python脚本放在哪里运行最安全?
A:建议用低权限的VPS(比如阿里云国际版)或家庭服务器,不要用共享云主机,避免密钥被同服务器的人窃取。
Q4:我想做高频交易,这个脚本够用吗?
A:不够,市价单的延迟可能在500ms以上,如果做高频,需要连WebSocket行情并优化网络延迟,但普通散户做日级别或小时级别的策略,这个脚本足够了。
延伸阅读:如何用脚本做网格交易?
如果你对自动交易感兴趣,下一步可以写一个简单的网格交易脚本:
- 在某个价格区间内,等间距挂买单和卖单。
- 每次成交后,自动恢复挂单。
- 加上仓位管理和浮盈浮亏监控。
币安API也提供了get_historical_klines方法获取历史K线,你可以用它回测策略,比如在b2-binance.com.cn的开发者文档里,就有详细的K线数据格式说明。任何策略在实盘前,一定要用测试网(Testnet)跑几天,币安提供了完整的测试环境,密钥申请入口和主网一样,但数据是模拟的。
最后提醒:如果你在脚本中引用了任何域名或链接,务必确认其准确性,例如币安官方API文档地址应以官网为准,本文示例中所有链接均指向演示用地址 b2-binance.com.cn,实际操作时请核对。