欧易API接口申请教程,手把手教你用Python写一个简单的交易脚本

admin okx快讯 1

📚 目录导读

  1. 为什么交易员都在学Python脚本?
  2. 欧易API接口申请全流程(附避坑指南)
  3. Python环境配置与依赖安装
  4. 编写第一个自动交易脚本(代码可跑通)
  5. 常见问题与避坑问答
  6. 进阶玩法:让脚本自动盯盘止损

为什么交易员都在学Python脚本?

最近总有人问我:“币圈交易能不能像炒股软件一样自动挂单?” 答案是肯定的——只要你会用API,欧易交易所(全球顶级合规平台)提供了完善的REST API和WebSocket接口,而Python因为语法简单、生态成熟,成了写交易脚本的首选语言。

欧易API接口申请教程,手把手教你用Python写一个简单的交易脚本-第1张图片-欧易交易所

一个真实的场景:小王每次看到BTC跌到支撑位想手动买入,结果因为网络延迟或手速慢,总错过最佳价格,后来他花2小时写了个Python脚本,设定“当价格跌破30000时自动买入0.01BTC”,结果一周内成功捕捉3次深V反弹,这就是API脚本的价值——让机器执行你的策略,不再依赖手速和情绪


欧易API接口申请全流程(附避坑指南)

第一步:登录欧易交易所官网

打开 https://okht.com.cn/ (记得先完成实名认证,否则无法申请API)。

第二步:进入API管理页面

点击右上角“头像”→“API管理”→“创建API”,注意:建议新建专门的交易API,不要共用一个,方便权限控制

第三步:设置权限和IP白名单

  • 权限:勾选“交易”和“读取”(提现权限别勾,防资产被盗)。
  • IP白名单:强烈建议绑定你服务器的公网IP,如果在家测试,填你的路由器IP(百度搜“我的IP”即可)。不设白名单?你的脚本可能被黑客远程调用,币直接被转走

第四步:保存API Key和Secret Key

创建后你会得到一串 api_key(约32位字符)和 secret_key(约64位字符)。务必复制保存到本地txt,关掉页面后永不可见,只能重置,另外推荐勾选“绑定交易密码”,每次交易额外验证一次,多一层保险。


Python环境配置与依赖安装

你需要准备:

  • Python 3.8+(推荐3.10)
  • 一个代码编辑器(我用VS Code)
  • 少量命令行基础

安装核心库:

打开终端(Mac用Terminal,Windows用cmd),依次输入:

pip install requests pandas ccxt
  • requests:发HTTP请求
  • pandas:处理行情数据
  • ccxt:统一加密交易所API封装(支持100+交易所,欧易也在其中,这库能帮你省掉80%的签名加密工作)

为什么选ccxt? 因为手动构造REST请求需要做HMAC-SHA256签名、时间戳校验、请求体序列化,新手容易卡3天,而ccxt一行 exchange.create_order() 就完成交易,省心。


编写第一个自动交易脚本(代码可跑通)

下面这个脚本实现 “定时检查BTC价格,当最新价低于设定阈值时,市价买入指定金额”,我会逐行注释,确保你复制就能跑。

import ccxt
import time
# ====== 配置区(将你的API密钥填入) ======
EXCHANGE = "okx"  # 欧易在ccxt里叫okx
API_KEY = "你的api_key"
SECRET_KEY = "你的secret_key"
PASSWORD = "你的交易密码"  # 如果申请时没设交易密码,留空
# 交易参数
SYMBOL = "BTC/USDT"    # 交易对
THRESHOLD_PRICE = 30000  # 当价格低于这个数时买入
BUY_AMOUNT = 20        # 每次买入20 USDT等值的BTC
# ====== 初始化交易所 ======
def init_exchange():
    exchange = ccxt.okx({
        'apiKey': API_KEY,
        'secret': SECRET_KEY,
        'password': PASSWORD,
        'enableRateLimit': True,  # 自动限制请求频率,防封IP
    })
    # 设置沙盒模式(可先去欧易官网的沙盒环境测试,不真实交易)
    # exchange.set_sandbox_mode(True)  
    return exchange
# ====== 获取最新价格 ======
def get_last_price(exchange):
    ticker = exchange.fetch_ticker(SYMBOL)
    return ticker['last']
# ====== 执行买入 ======
def buy_btc(exchange, amount_usdt):
    order = exchange.create_market_buy_order(
        SYMBOL,
        amount_usdt / get_last_price(exchange),  # 根据当前价格换算数量
        {'type': 'market', 'tgtCcy': 'quote_ccy'}  # 按USDT金额购买
    )
    return order['id']
# ====== 主循环 ======
def main():
    exchange = init_exchange()
    print("🚀 交易机器人启动,价格阈值:", THRESHOLD_PRICE)
    while True:
        try:
            price = get_last_price(exchange)
            print(f"⏰ 当前价格:{price:.2f} USDT")
            if price < THRESHOLD_PRICE:
                # 检查账户余额(可选,确保有足够USDT)
                balance = exchange.fetch_balance()
                usdt_balance = balance['USDT']['free']
                if usdt_balance < BUY_AMOUNT:
                    print("⚠️ USDT余额不足,仅剩", usdt_balance)
                else:
                    order_id = buy_btc(exchange, BUY_AMOUNT)
                    print(f"✅ 买入成功!订单ID:{order_id}")
                    # 买入后暂停10分钟,避免连续买入
                    time.sleep(600)
            else:
                print("价格未达阈值,等待检查...")
        except Exception as e:
            print(f"❌ 错误处理:{e}")
            # 错误后暂停30秒再重试
            time.sleep(30)
        # 每30秒检查一次价格
        time.sleep(30)
if __name__ == "__main__":
    main()

运行前必做检查

  1. API_KEYSECRET_KEYPASSWORD 换成你自己的。
  2. 如果你的欧易账号是中文版域名,确保 ccxt 版本≥4.0(老版本可能不支持交易密码参数)。
  3. 先用沙盒模式测试:取消 exchange.set_sandbox_mode(True) 的注释,去欧易官网 https://okht.com.cn/ 申请沙盒API Key(免费),验证脚本能否成功下单。

常见问题与避坑问答

❓ 问:我的脚本报错“Invalid signature”怎么办?

:99%情况是 Secret Key 复制错了(多了空格或少字符),去欧易API管理页面,重置Secret Key,重新复制粘贴,还有可能是系统时间不准(与服务器差>30秒),同步电脑时间到time.nist.gov即可。

❓ 问:运行脚本后,它没有按我设定的价格买入?

:检查 THRESHOLD_PRICE 是整数还是浮点数,比如你设30000,但BTC报价29999.5,条件 price < 30000 满足吗?Python浮点数比较没问题,如果还不触发,可能是火币、币安之类的平台价差——确保你的欧易账户有USDT余额,且交易对是活跃的。

❓ 问:脚本会消耗太多请求次数吗?

:欧易API限制每分钟20次请求(免费版),我这个脚本每30秒查一次价格,一天2880次请求,绰绰有余,如果你要高频交易,考虑用 WebSocket 实时流(多花点精力),或者付费升级API限制。

❓ 问:可以通过手机远程监控脚本吗?

:把脚本部署到云服务器(腾讯云最低配一年200元),然后安装 python-telegram-bot,让脚本发现异常时给你的Telegram发消息。目前最简单的方案是结合IFTTT,把脚本的 print 改成 requests.post(IFTTT_Webhook_URL),手机会收到推送。


进阶玩法:让脚本自动盯盘止损

你还可以扩展脚本增加止损功能

# 在main函数中添加止损逻辑
stop_loss_price = 28000  # 当BTC跌破28000时卖出
if price < stop_loss_price:
    # 市价卖出全部BTC
    exchange.create_market_sell_order(SYMBOL, btc_balance)
    print("⚠️ 触发止损,已自动卖出")
    break  # 退出脚本,等待人工干预

不过注意,真正的交易策略需要回测,不要直接拿真钱跑,你可以先在欧易的模拟盘(Demo Trading)里测试几天,确认逻辑能赚钱再上实盘。


行动建议

  1. 注册并认证:通过 https://okht.com.cn/ 注册欧易账号,完成KYC。
  2. 创建测试API:沙盒模式零成本入门。
  3. 运行脚本:下载Python,按本文代码试跑,改几个参数。
  4. 优化策略:比如加上移动平均线判断,或接入Telegram警报。

写脚本最怕半途而废,但只要你按本文步骤走,30分钟内就能跑通第一个自动交易。代码不值钱,策略才值钱;API不值钱,执行力才值钱,如果你在申请或调试中遇到问题,欢迎在评论区留言,我会逐一回复。

标签: 欧易API Python交易脚本

抱歉,评论功能暂时关闭!