3. 账户准备:多交易所账户注册、KYC、API密钥创建与权限管理

做价差套利,说白了就是要在多个交易所之间来回倒腾。你想想看,没有账户,你连门都进不去。这一章,我就带你走一遍完整的账户准备流程。我个人的习惯是,先把所有账户都注册好,再统一做KYC,最后集中管理API密钥。这样效率最高,也最不容易出错。

3.1 交易所选择与账户注册

选交易所,不是越大越好。你得看它有没有你要套利的币种,交易深度够不够,API稳不稳定。我在项目中遇到过,选了某个小交易所,结果API动不动就超时,价差机会全错过了。

我个人常用的几个交易所:

  • 币安(Binance):流动性最好,API最稳定,适合做主流币种套利
  • 欧易(OKX):合约深度不错,永续合约价差机会多
  • Bybit:永续合约和现货价差套利,它的API响应速度很快
  • Gate.io:小币种多,适合做冷门币种价差
  • Kucoin:手续费相对低,适合高频小单套利

注册时,邮箱和手机号一定要用稳定的。我建议用Gmail或者Outlook,别用那些容易收不到验证码的邮箱。密码的话,每个交易所用不同的密码,用密码管理器统一管理。嗯,这里要注意,别偷懒用同一个密码,万一一个交易所被拖库,你所有账户都完蛋。

3.2 KYC认证:别嫌麻烦

KYC(Know Your Customer)是交易所的合规要求。说白了,就是证明你是你。我刚开始做的时候也觉得烦,但后来发现,不做KYC,提现额度低得可怜,而且很多交易所的API权限也受限。

KYC一般分三级:

级别 要求 日提现额度 API权限
Lv.1 邮箱/手机验证 2 BTC 等值 仅查看
Lv.2 身份证+人脸识别 100 BTC 等值 交易+提现
Lv.3 地址证明+视频认证 无限制 全部权限

做套利的话,至少做到Lv.2。我建议直接做到Lv.3,因为有些交易所的API高级功能(比如批量下单、逐仓模式)需要Lv.3才能用。我曾经因为只做了Lv.2,结果在行情剧烈波动时,API被限流,眼睁睁看着价差溜走。

小技巧:KYC时,身份证照片要清晰,不要反光。人脸识别时,找个光线好的地方。我一般用白天的自然光,一次过。晚上用台灯,容易反光被拒。

3.3 API密钥创建:权限最小化原则

API密钥是你的交易机器人的「钥匙」。钥匙给错了权限,后果很严重。我见过有人把提现权限也给了API,结果密钥泄露,账户被洗劫一空。

创建API密钥时,权限设置要遵循最小化原则:

  • 只开交易权限:不要开提现权限,绝对不要
  • 只开现货交易:如果只做现货套利,别开合约权限
  • IP白名单:只允许你的服务器IP访问
  • 限制交易对:有些交易所支持限制API只能交易特定币种

创建API密钥的步骤(以币安为例):

  1. 登录币安,进入「API管理」
  2. 点击「创建API」,输入标签(比如「套利机器人-主网」)
  3. 安全验证(邮箱+谷歌验证器)
  4. 设置权限:只勾选「交易」
  5. 设置IP白名单:填入你的服务器IP
  6. 保存API Key和Secret Key
警告:Secret Key只显示一次!一定要立即保存到安全的地方。我建议用加密的密码管理器保存,或者离线存储。别截图存手机里,手机丢了就完了。

3.4 权限管理:多账户统一管控

当你有了5个、10个交易所账户后,管理API密钥就成了头疼的事。我个人的做法是,用一个配置文件统一管理所有密钥。

这是我的配置文件结构:

# config.yaml
exchanges:
  binance:
    api_key: "your_binance_api_key"
    secret_key: "your_binance_secret_key"
    passphrase: ""  # 币安不需要
    base_url: "https://api.binance.com"
    
  okx:
    api_key: "your_okx_api_key"
    secret_key: "your_okx_secret_key"
    passphrase: "your_okx_passphrase"
    base_url: "https://www.okx.com"
    
  bybit:
    api_key: "your_bybit_api_key"
    secret_key: "your_bybit_secret_key"
    passphrase: ""  # Bybit不需要
    base_url: "https://api.bybit.com"

然后写一个统一的API客户端:

import yaml
from binance.client import Client
from okx import AccountAPI
from pybit import HTTP

class ExchangeManager:
    def __init__(self, config_path="config.yaml"):
        with open(config_path, 'r') as f:
            self.config = yaml.safe_load(f)
    
    def get_client(self, exchange_name):
        ex = self.config['exchanges'][exchange_name]
        if exchange_name == 'binance':
            return Client(ex['api_key'], ex['secret_key'])
        elif exchange_name == 'okx':
            return AccountAPI(ex['api_key'], ex['secret_key'], ex['passphrase'])
        elif exchange_name == 'bybit':
            return HTTP(endpoint=ex['base_url'], api_key=ex['api_key'], 
                       api_secret=ex['secret_key'])
        # 其他交易所类似

# 使用示例
manager = ExchangeManager()
binance_client = manager.get_client('binance')
print(binance_client.get_account())
重点:配置文件绝对不能提交到Git仓库!我建议用环境变量或者加密的配置文件。我一般用python-dotenv加载环境变量,这样密钥不会硬编码在代码里。

3.5 避坑指南:我踩过的那些坑

做跨交易所套利,账户准备阶段最容易出问题。我总结几个常见的坑:

  • API频率限制:每个交易所对API调用频率都有限制。币安是1200次/分钟,OKX是20次/秒。我刚开始没注意,结果API被限流,订单没成交,价差没了。
  • 提现地址白名单:有些交易所开启提现地址白名单后,新地址需要24小时才能生效。我建议提前把所有常用地址都加进去。
  • 子账户管理:如果资金量大,我建议用子账户。每个策略用一个子账户,风险隔离。币安和OKX都支持子账户。
  • 谷歌验证器备份:交易所的谷歌验证器一定要备份密钥。我有个朋友手机丢了,验证器恢复不了,账户被锁了3天才解开,错过了大行情。

嗯,账户准备这块,看起来琐碎,但做扎实了,后面就顺了。你想想看,如果因为密钥泄露或者权限没设好,导致资金损失,那多冤。所以,花点时间把这一步做好,值得。

我的习惯:每注册一个新交易所,我会在Excel里记录:交易所名称、注册邮箱、API Key(只记前4位和后4位)、权限设置、IP白名单、注册日期。这样万一哪个账户出问题,我能快速定位。

好了,账户准备就这些。下一章,我们开始写真正的套利代码。到时候,这些账户和API密钥就要派上用场了。