目录导读
- 为什么你需要欧易API?——小白也能懂的量化交易入门
- 欧易API接口申请全流程(附避坑指南)
- Python环境搭建与依赖库安装
- 手写第一个交易脚本:从获取账户余额到下单
- 常见问题解答(FAQ)
- 安全提醒与下一步学习建议
为什么你需要欧易API?——小白也能懂的量化交易入门
你是不是也遇到过这种情况:盯盘盯得眼睛发酸,想手动交易却又怕错过最佳时机?或者你只是想试试用Python写个程序自动做点小买卖?欧易API就是为你准备的。

API就像是一个“遥控器”,你用Python写几行代码,就能直接控制交易所帮你下单、查余额、看行情,不需要每天蹲在电脑前,写个脚本就能实现“程序化打工”。
但注意:API交易不是让你躺着数钱——它需要你理解基本的交易逻辑,比如什么时候买、什么时候卖、怎么控制风险,不过别担心,今天这个教程会从零开始带你跑通第一个脚本。
如果你还没下载欧易交易所下载,建议先去官网把APP或桌面端装好(记得从正规渠道下,别用第三方链接),虽然API交易不需要打开APP,但备着当个应急工具也不错。
欧易API接口申请全流程(附避坑指南)
第一步:登录并找到API管理页面
登录你的欧易账户(还没注册?那还等啥?),鼠标移到右上角头像 → 点击“API” → 进入API管理页面,这里会显示你已有的API密钥。
第二步:创建API密钥
点击“创建API”,你会看到几个选项:
- 权限类型:新手建议只勾选“交易”和“读取”,别碰“提币”——除非你打算写个自动打钱脚本(黑客最喜欢这种权限)。
- IP白名单:一定要填!填你跑脚本的电脑公网IP(如果不知道怎么看自己IP,搜“本机IP”就能查到),填错的话脚本跑不了,但比被黑客盗号强一万倍。
- 备注:随便写个“学习用脚本”方便以后区分。
创建成功后,你会得到两串东西:
- API Key:类似你的账号ID
- Secret Key:类似你的登录密码
Secret Key只能显示一次! 赶紧复制粘贴到安全的地方(比如加密记事本),丢了就只能删了重新生成。
第三步:常见踩坑
- 坑1:把API Key直接写到脚本里,然后上传到GitHub,别笑,每年都有程序员这么干,然后账户被清空。
- 坑2:IP白名单写错了导致脚本连不上,解决方法:先去白名单里写0.0.0.0/0作为测试(测试完立刻改回来)。
- 坑3:忘记API有调用频率限制,欧易限制每秒钟最多几次请求,写脚本时记得加个time.sleep(0.5)。
Python环境搭建与依赖库安装
你需要准备:
- Python 3.7以上版本(去python.org下,别装到C盘以外的路径)
- 一个代码编辑器(推荐VSCode,免费又好用)
- 终端(Windows用cmd或PowerShell,Mac用Terminal)
安装依赖库:
打开终端,依次输入:
pip install requests pip install python-dotenv pip install hashlib pip install time
requests用来发HTTP请求,dotenv用来安全地读密钥(避免直接写死在代码里)。
手写第一个交易脚本:从获取账户余额到下单
第一步:创建环境变量文件
在脚本同目录下新建一个.env如下(替换成你自己的API Key和Secret):
API_KEY=你的API
SECRET_KEY=你的密钥
第二步:写获取账户余额的脚本
新建一个okx_trade.py,粘贴以下代码:
import requests
import time
import hashlib
import hmac
import base64
from dotenv import load_dotenv
import os
load_dotenv()
API_KEY = os.getenv('API_KEY')
SECRET_KEY = os.getenv('SECRET_KEY')
BASE_URL = 'https://okeh.com.cn/api/v5' # 官方域名
def get_signature(timestamp, method, request_path, body=''):
message = timestamp + method + request_path + body
mac = hmac.new(bytes(SECRET_KEY, encoding='utf8'), bytes(message, encoding='utf-8'), digestmod='sha256')
return base64.b64encode(mac.digest())
def get_balance():
timestamp = str(int(time.time() * 1000))
method = 'GET'
request_path = '/account/balance'
body = ''
signature = get_signature(timestamp, method, request_path, body)
headers = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': signature,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': '你的密码' # 如果你设置了交易密码就填,没有就不填
}
response = requests.get(BASE_URL + request_path, headers=headers)
return response.json()
if __name__ == '__main__':
print(get_balance())
运行看看能不能返回余额,如果报错,检查:API密钥拼写?白名单?时间戳格式?
第三步:写下单脚本
学会了查余额,接下来写个简单的限价买单:
def place_order(symbol, side, size, price):
timestamp = str(int(time.time() * 1000))
method = 'POST'
request_path = '/trade/order'
body = {
'instId': symbol, # 'BTC-USDT'
'tdMode': 'cash', # 保证金模式,现货用cash
'side': side, # 'buy' or 'sell'
'ordType': 'limit', # 限价单
'sz': str(size),
'px': str(price)
}
body = json.dumps(body)
signature = get_signature(timestamp, method, request_path, body)
headers = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': signature,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': '你的密码',
'Content-Type': 'application/json'
}
response = requests.post(BASE_URL + request_path, headers=headers, data=body)
return response.json()
# 示例:以30000 USDT的价格买入0.001个BTC
print(place_order('BTC-USDT', 'buy', 0.001, 30000))
注意:实际跑之前,先调小金额(比如0.0001 BTC),一定要先测试,否则可能一把亏光!
常见问题解答(FAQ)
问:我填了IP白名单还是连不上?
答:检查你的公网IP对不对,最简单的方法是开个手机热点,看看电脑IP变没变,或者暂时不设白名单(不推荐长期这么做)。
问:下单时出现“参数错误”怎么办?
答:检查sz和px是不是字符串,欧易要求价格和数量必须传字符串,不能传数字,另外确认交易对名字正确(比如ETH-USDT不要写成ETHUSDT)。
问:能不能写个脚本24小时自动搬砖?
答:技术上可以,但建议先学好风险管理,很多人觉得API交易就是“自动捡钱”,结果一夜回到解放前,先模拟盘跑两周再说。
问:为什么我获取的账户余额是空的?
答:如果API权限只开了“读取”,检查一下余额权限是否勾选了,你的账户里得有现价资产(比如USDT),空账号当然显示0。
问:我能不能在欧易交易所下载的APP里看到API的订单记录?
答:可以,APP的“订单历史”里能看到API下的单,但记住——用API下单后不要手动在APP里改单,否则脚本会混乱。
安全提醒与下一步学习建议
安全三原则:
- API权限最小化:只勾选“交易”和“读取”,别碰“提币”
- 密钥永不公开:别截图发朋友圈,别上传GitHub,别存到云笔记里
- 固定白名单:不要使用0.0.0.0/0,下班后关掉脚本电源
进阶学习方向:
- 策略回测:用历史数据验证你的交易策略
- 止损防爆:在脚本里加入止损逻辑(比如亏5%自动平仓)
- 多API轮询:同时监控多个交易对
最后提醒一句:写脚本是工具,不是印钞机,先用小额测试,别一上来就梭哈,如果你连Python基础都没有,建议先学两个月编程再碰API,祝你好运!
标签: Python交易脚本