Python 构建 OKX 加密货币量化交易系统实战
常见问题与解决方案
场景一:账户资金查询
新手在查询账户余额时经常遇到签名错误或权限不足的问题。配置 API 密钥时需注意 flag 参数设置。
import okx.Funding as Funding
# 配置 API 密钥
api_key = "你的 API 密钥"
secret_key = "你的私钥"
passphrase = "你的密码短语"
flag = "1" # 1 是测试环境,0 是生产环境
fundingAPI = Funding.FundingAPI(api_key, secret_key, passphrase, False, flag)
# 正确查询 USDT 余额
result = fundingAPI.get_balances(ccy="USDT")
if result["code"] == "0":
print(f"可用余额:{result['data'][0]['availBal']} USDT")
else:
print(f"查询失败:{result['msg']}")
注意:
- flag 参数必须正确设置,测试环境用 "1",正式交易用 "0"
- API 密钥需要确保有 "读取" 权限
- 测试环境余额为 0 是正常的,不影响接口测试
场景二:订单状态追踪
下单后需实时监控订单状态,避免盲目等待。
import okx.Trade as Trade
import time
tradeAPI = Trade.TradeAPI(api_key, secret_key, passphrase, False, flag)
# 限价买入 BTC
order_result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash", # 现货模式
side="buy",
ordType="limit",
px="30000",
sz=
)
order_result[] == :
ordId = order_result[][][]
()
i ():
status_result = tradeAPI.get_order(instId=, ordId=ordId)
state = status_result[][][]
()
state == :
()
state == :
()
time.sleep()

