欧易python控盘脚本
文章目录
- 欧易python控盘脚本
- 一、官网API使用介绍
- 二、查看组
- 1、查看市场行情
- 2、查看账户余额
- 3、订单查询
- 三、交易组
- 1、市价购买
- 2、限价购买
一、官网API使用介绍
https://www.okx.com/cn/help/how-can-i-do-spot-trading-with-the-jupyter-notebook
二、查看组
1、查看市场行情
import okx.MarketData as MarketData
import okx.PublicData as PublicData
import json
api_key = "xxxxx"
secret_key = "xxxxx"
passphrase = "xxxxxx"
def LookMarkeDate():
flag = "0" # live trading: 0, demo trading: 1
marketDataAPI = MarketData.MarketAPI(flag=flag)
result = marketDataAPI.get_tickers(instType="SPOT"
)
print(json.dumps(result))
输出结果:
属性 | 意义 |
---|---|
instType | SPOT(现货)- 这是一种加密货币交易类型,表示以实际货币购买和交易加密货币而非衍生品。 |
instId | MDT-USDT(MDT对USDT交易对)- 这是特定加密货币的交易标识符,指的是MDT加密货币与USDT加密货币之间的交易对。 |
last | 0.0491(最新成交价)- 表示最近一次成交的加密货币价格。 |
lastS | 10582.062297(最新成交量)- 表示最近一次成交的加密货币数量。 |
askPx | 0.04919(卖方报价)- 表示卖方愿意以该价格出售加密货币的最低价格。 |
askSz | 1720(卖方报价量)- 表示卖方愿意以卖方报价出售的加密货币数量。 |
bidPx: | 0.04891(买方报价)- 表示买方愿意以该价格购买加密货币的最高价格。 |
bidSz | 4225.238583(买方报价量)- 表示买方愿意以买方报价购买的加密货币数量。 |
open24h | 0.05017(24小时开盘价)- 表示过去24小时内的开盘价。 |
high24h | 0.0505(24小时最高价)- 表示过去24小时内的最高价。 |
low24h | 0.04655(24小时最低价)- 表示过去24小时内的最低价。 |
volCcy24h | 61803.10673724153(24小时交易货币数量)- 表示过去24小时内交易的加密货币的总数量。 |
vol24h | 1274958.453186(24小时交易量)- 表示过去24小时内的交易总量。 |
ts | 1699813838704(时间戳)- 表示数据的时间戳,用于标识数据的生成时间。 |
sodUtc0 | 0.04875(UTC 0点开盘价)- 表示当天UTC时间0点的开盘价。 |
sodUtc8 | 0.04943(UTC 8点开盘价)- 表示当天UTC时间8点的开盘价。 |
2、查看账户余额
import okx.Account as Account
api_key = ""
secret_key = ""
passphrase = ""
flag = "0" # live trading: 0, demo trading: 1
accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
result = accountAPI.get_account_balance()
print(result)
输出结果:
属性 | 意义 |
---|---|
availBal | 可用余额。这是指账户中可立即使用的资金余额。 |
availEq | 可用权益。这是指账户中可用于交易的资金总额。 |
cashBal | 现金余额。这是指账户中以现金形式存在的资金余额。 |
ccy | 货币代码,表示账户使用的货币类型。在这里是USDT,表示使用的是美元稳定币。 |
disEq | 分配权益。这是指账户中分配给特定交易策略或子账户的权益金额。 |
eq | 权益。这是指账户的总权益,包括可用余额、冻结资金和借贷金额等。 |
eqUsd | 美元权益。这是指账户总权益的美元价值。 |
isoEq | 独立权益。这是指账户中用于独立交易的资金总额。 |
isoUpl | 独立未实现盈亏。这是指独立交易所产生的尚未实现的盈利或亏损金额。 |
3、订单查询
import okx.Trade as Trade
api_key = ""
secret_key = ""
passphrase = ""
flag = "0" # live trading: 0, demo trading: 1
tradeAPI = Trade.TradeAPI(api_key, secret_key, passphrase, False, flag)
result = tradeAPI.get_order(instId="YGG-USDT", ordId="644014398704889858")
print(json.dumps(result))
运行结果
属性 | 意义 |
---|---|
accFillSz | accFillSz(累计成交数量)是指该交易账户的累计成交数量。在这个例子中,accFillSz为23.629489,表示该账户在该交易中的累计成交数量为23.629489。 |
avgPx | avgPx(平均成交价格)是指交易的平均成交价格。在这个例子中,avgPx为0.4232,表示该交易的平均成交价格为0.4232。 |
cTime | cTime(创建时间)是指订单创建的时间戳,通常以毫秒为单位。在这个例子中,cTime为1699816997860,表示订单的创建时间为1699816997860毫秒。 |
fee | 在加密货币交易中,fee(手续费)是指交易所收取的费用,用于处理和确认交易。手续费的金额可以根据交易所的规定而有所不同。 |
feeCcy | feeCcy(手续费货币)是指用于支付手续费的货币。在这个例子中,feeCcy为YGG,表示使用YGG作为支付手续费的货币。 |
fillPx | fillPx(成交价格)是指交易中实际成交的价格。在这个例子中,fillPx为0.4232,表示交易的成交价格为0.4232。 |
fillSz | fillSz(成交数量)是指交易中实际成交的数量。在这个例子中,fillSz为23.629489,表示交易的成交数量为23.629489。 |
fillTime | fillTime(成交时间)是指交易的成交时间戳,通常以毫秒为单位。在这个例子中,fillTime为1699816997861,表示交易的成交时间为1699816997861毫秒。 |
instId | instId(交易对)是指交易所中用于标识特定交易的唯一标识符。在这个例子中,instId为YGG-USDT,表示该交易对是YGG对USDT的交易。 |
instType | instType(交易类型)是指交易的类型或市场类型。在这个例子中,instType为SPOT,表示该交易是现货交易,即即时交易。 |
三、交易组
1、市价购买
import okx.Trade as Trade
api_key = ""
secret_key = ""
passphrase = ""
flag = "0" # live trading: 0, demo trading: 1
tradeAPI = Trade.TradeAPI(api_key, secret_key, passphrase, False, flag)
result = tradeAPI.place_order(
instId="YGG-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="10",#购买多少USDT的YGG
)
print(json.dumps(result))
运行结果
注:如果是要卖出,将side='buy’改为side='sell’即可
参数 | 属性 |
---|---|
code: | 这个字段表示返回的状态码。在这个例子中,返回的状态码为"0",表示请求成功。 |
data | 这个字段包含了具体的数据信息。在这个例子中,data是一个数组,包含了一个对象。 |
clOrdId | 个字段表示客户端订单ID,用于唯一标识一个订单。在这个例子中,这个字段为空字符串。 |
ordId | 这个字段表示订单ID,用于唯一标识一个订单。在这个例子中,订单ID为"644014398704889858"。 |
sCode | 这个字段表示状态码。在这个例子中,状态码为"0",表示订单已经被成功下单。 |
sMsg | 这个字段表示状态信息。在这个例子中,状态信息为"Order placed",表示订单已经被下单。 |
tag | 这个字段表示标签信息,用于进一步描述订单。在这个例子中,这个字段为空字符串。 |
inTime | 这个字段表示请求进入系统的时间戳。在这个例子中,时间戳为"1699816997859673"。 |
msg | 这个字段表示其他附加信息。在这个例子中,这个字段为空字符串。 |
outTime | 这个字段表示请求离开系统的时间戳。在这个例子中,时间戳为"1699816997862009"。 |
2、限价购买
import okx.Trade as Trade
api_key = ""
secret_key = ""
passphrase = ""
flag = "0" # live trading: 0, demo trading: 1
# limit order
tradeAPI = Trade.TradeAPI(api_key, secret_key, passphrase, False, flag)
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="limit",
px="19000",
sz="0.001"
)
print(json.dumps(result))
if result["code"] == "0":
print("Successful order request,order_id = ", result["data"][0]["ordId"])
else:
print("Unsuccessful order request,error_code = ", result["data"][0]["sCode"], ", Error_message = ",
result["data"][0]["sMsg"])
具体输出参考市价购买