FIL今日最新价格
$3.286
FIL 24小时最高价格
$3.512
FIL 24小时最低价格
$3.203
FIL涨跌
-4.72%
FIL今日最新价格
$3.286
FIL 24小时最高价格
$3.512
FIL 24小时最低价格
$3.203
FIL涨跌
-4.72%
发布于 2025-02-07 01:42:00 · 阅读量: 177122
在OKX上搞自动交易?懂的都懂,手动交易是韭菜的浪漫,自动交易才是大佬的标配。今天就给大家安排一下,教你如何用OKX的API接口,搭建自己的交易机器人,让它24小时不眠不休,为你搬砖、套利、做市,彻底解放双手!
首先,你得有OKX账号(废话),然后按以下步骤申请API密钥:
想玩自动交易?Python必不可少!先把环境搭好:
bash pip install requests
OKX的API主要用 requests
来搞定,当然你也可以用 ccxt
这样的库,但我们这里用最原生的方式教学。
测试API是否好用,先查查自己账户里到底有多少弹药:
import requests import time import hmac import base64
api_key = "你的API Key" secret_key = "你的Secret Key" passphrase = "你的Passphrase"
def create_signature(timestamp, method, request_path, body=""): message = timestamp + method + request_path + body mac = hmac.new(bytes(secret_key, encoding="utf8"), bytes(message, encoding="utf8"), digestmod="sha256") return base64.b64encode(mac.digest()).decode()
timestamp = str(time.time()) headers = { "OK-ACCESS-KEY": api_key, "OK-ACCESS-SIGN": create_signature(timestamp, "GET", "/api/v5/account/balance"), "OK-ACCESS-TIMESTAMP": timestamp, "OK-ACCESS-PASSPHRASE": passphrase, "Content-Type": "application/json" }
url = "https://www.okx.com/api/v5/account/balance" response = requests.get(url, headers=headers) print(response.json())
如果返回账户余额数据,说明API生效了,可以愉快开整!
既然是交易所API,那最核心的功能当然是 下单!我们来写一个简单的 市价单买入BTC 代码:
import json
order_data = { "instId": "BTC-USDT", # 交易对 "tdMode": "cash", # 现货交易 "side": "buy", # 买入 "ordType": "market", # 市价单 "sz": "0.001" # 购买数量(0.001 BTC) }
timestamp = str(time.time()) body = json.dumps(order_data) headers["OK-ACCESS-SIGN"] = create_signature(timestamp, "POST", "/api/v5/trade/order", body) headers["OK-ACCESS-TIMESTAMP"] = timestamp
url = "https://www.okx.com/api/v5/trade/order" response = requests.post(url, headers=headers, data=body) print(response.json())
如果返回 ordId
订单ID,就说明单子成功下出去了!
下单之后,总得看看成没成交吧?来查查订单状态:
order_id = "你的订单ID" url = f"https://www.okx.com/api/v5/trade/order?ordId={order_id}&instId=BTC-USDT"
timestamp = str(time.time()) headers["OK-ACCESS-SIGN"] = create_signature(timestamp, "GET", f"/api/v5/trade/order?ordId={order_id}&instId=BTC-USDT") headers["OK-ACCESS-TIMESTAMP"] = timestamp
response = requests.get(url, headers=headers) print(response.json())
如果状态是 filled
,说明订单成交了;如果是 canceled
,那可能是价格波动太快,没吃到单。
想要全自动?我们可以用 定时策略,比如 每小时买入0.001 BTC:
import schedule
def auto_trade(): print("执行自动买入...") response = requests.post(url, headers=headers, data=body) print(response.json())
schedule.every(1).hours.do(auto_trade)
while True: schedule.run_pending() time.sleep(1)
这个策略虽然简单,但能实现基础的自动化操作。更复杂的策略,比如 网格交易、马丁加仓、量化套利,都可以基于API搭建。
自动交易虽然爽,但风险也很大,安全措施一定要做到位:
API交易的世界里,代码就是金钱。搞定API接口,你就能用机器人的速度在市场上厮杀,比手动党快N个段位。至于能不能赚到钱?就看你策略牛不牛了!