Name | okx-trade JSON |
Version |
1.0.2
JSON |
| download |
home_page | https://github.com/pyted/okx_trade |
Summary | Make OKX API Transactions Easier |
upload_time | 2023-10-21 07:13:01 |
maintainer | |
docs_url | None |
author | pyted |
requires_python | >=3.6.0 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Okx_Trade 说明文档
## 1 Okx_Trade介绍
Okx_Trade封装了OKX中现货(SPOT)、永续合约(SWAP)的常用函数,降低量化交易的难度。
## 2 安装Okx_Trade
GITHUB:https://www.github.com/pyted/okx_trade
```cmd
pip3 install okx_trade
```
## 3 快速开始
1.获取现货现货交易BTC-USDT的价格,降价2%挂单买入,买入金额为10000USDT,挂单时间为2小时,如果超时则取消订单。
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
okxSPOT = OkxSPOT(
key='****',
secret='****',
passphrase='****',
)
# 产品
instId = 'BTC-USDT'
# 开仓金额
openMoney = 10000
# 购买价格
askPx = okxSPOT.market.get_ticker(instId)['data']['askPx'] # 卖1价格
askPx = float(askPx)
openPrice = askPx * 0.98 # 降价2%
print(openPrice)
# 挂单时间
timeout = 60 * 60 * 2 # 单位秒
# 超时是否取消订单
cancel = True
# 是否堵塞模式
block = True
# 限价单开仓
result = okxSPOT.trade.open_limit(
instId=instId, # 产品
openPrice=openPrice, # 开仓价格
openMoney=openMoney, # 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级:quantity > openMoney
timeout=timeout, # 等待订单成功的超时时间
cancel=True, # 订单超时后是否取消
)
pprint(result)
```
2.获取永续合约BTC-USDT-SWAP的价格,降价5%,采用逐仓、10倍杠杆、开仓金额10000USDT挂单,挂单时间为2小时,如果超时则取消。
**采用异步的方式管理这个订单,并设置订单成功或失败后的回调函数**
```python
from pprint import pprint
from okx_trade import OkxSWAP
# 成功触发的回调函数
def callback(information):
'''
:param information: 交易过程信息字典
information = {
'instId': <产品ID>,
'status': <订单状态>,
'meta': <传递过来的参数>,
'request_param': <发送下单请求的具体参数>,
'func_param': <open_limit中的参数>,
'get_order_result': <获取订单状态的结果>,
'set_order_result': <下单提交的结果>,
'error_result': <异常信息>,
'cancel_result': <取消订单的结果>,
}
'''
print('callback')
pprint(information)
# 失败触发的回调函数
def errorback(information):
'''
:param information: 交易过程信息字典
information = {
'instId': <产品ID>,
'status': <订单状态>,
'meta': <传递过来的参数>,
'request_param': <发送下单请求的具体参数>,
'func_param': <open_limit中的参数>,
'get_order_result': <获取订单状态的结果>,
'set_order_result': <下单提交的结果>,
'error_result': <异常信息>,
'cancel_result': <取消订单的结果>,
}
'''
print('errorback')
pprint(information)
if __name__ == '__main__':
okxSWAP = OkxSWAP(
key='****',
secret='****',
passphrase='****',
)
# 产品
instId = 'BTC-USDT-SWAP'
# 开仓金额
openMoney = 10000
# 购买价格
askPx = okxSWAP.market.get_ticker(instId)['data']['askPx'] # 卖1价格
askPx = float(askPx)
openPrice = askPx * 0.98 # 降价2%
print(openPrice)
# 挂单时间
timeout = 60 * 60 * 2 # 单位秒
# 超时是否取消订单
cancel = True
# 是否堵塞模式
block = True
# 限价单开仓
result = okxSWAP.trade.open_limit(
instId=instId, # 产品
openPrice=openPrice, # 开仓价格
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
lever=10, # 杠杆
openMoney=openMoney, # 开仓金额 开仓金额openMoney和开仓数量quantityCT必须输入其中一个 优先级:quantity > openMoney
quantityCT=None, # 合约张数为空
block=True, # 是否以堵塞的模式
timeout=timeout, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
newThread=False, # 是否开启一个新的线程维护这个订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
)
```
3.对于永续合约以当前BTC-USDT-SWAP的价格,止盈20%**全部**挂单买入平空,超时时间2小时,超时后取消订单,并设置回调函数。
```python
from pprint import pprint
from okx_trade import OkxSWAP
# 成功触发的回调函数
def callback(information):
'''
:param information: 交易过程信息字典
information = {
'instId':<产品ID>,
'status': <订单状态>,
'meta': <传递过来的参数>,
'request_param': <发送下单请求的具体参数>,
'func_param': <open_limit中的参数>,
'get_order_result': <获取订单状态的结果>,
'set_order_result': <下单提交的结果>,
'error_result': <异常信息>,
'cancel_result': <取消订单的结果>,
}
'''
print('callback')
pprint(information)
# 失败触发的回调函数
def errorback(information):
'''
:param information: 交易过程信息字典
information = {
'instId':<产品ID>,
'status': <订单状态>,
'meta': <传递过来的参数>,
'request_param': <发送下单请求的具体参数>,
'func_param': <open_limit中的参数>,
'get_order_result': <获取订单状态的结果>,
'set_order_result': <下单提交的结果>,
'error_result': <异常信息>,
'cancel_result': <取消订单的结果>,
}
'''
print('errorback')
pprint(information)
if __name__ == '__main__':
okxSWAP = OkxSWAP(
key='****',
secret='****',
passphrase='****',
)
# 产品
instId = 'BTC-USDT-SWAP'
# 挂单时间
timeout = 60 * 60 * 2 # 单位秒
# 超时是否取消订单
cancel = True
# 是否堵塞模式
block = True
# 限价单开仓
result = okxSWAP.trade.close_limit(
instId=instId, # 产品
tpRate=0.2, # 止盈率 20%
# 平多 positionSide="LONG": closePrice = askPx * (1 + abs(tpRate))
# 平空 positionSide="SHORT": closePrice = bidPx * (1 - abs(tpRate))
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
quantityCT='all', # 合约张数为空 'all' 表示全部
block=True, # 是否以堵塞的模式
timeout=60 * 60 * 2, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
newThread=False, # 是否开启一个新的线程维护这个订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
)
pprint(result)
```
## 4 现货产品 OkxSPOT
### 4.1 现货账户
便捷函数:
|函数名|说明|
|:---|:---|
|get_balancesMap|查看账户余额字典|
|get_balances|查看账户余额列表|
|get_balance|获取单个币种的余额|
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取产品的余额
get_balance1 = okxSPOT.account.get_balance(instId='MANA-USDT')
pprint(get_balance1)
# 获取币种的余额
get_balance2 = okxSPOT.account.get_balance(ccy='USDT')
pprint(get_balance2)
# 获取全部资产余额列表
get_balances = okxSPOT.account.get_balances()
pprint(get_balances)
# 获取全部资产余额字典
get_balancesMap = okxSPOT.account.get_balancesMap()
pprint(get_balancesMap)
```
### 4.2 现货行情
#### 4.2.1 现货产品规则信息
便捷函数:
|函数名|说明|
|:---|:---|
|get_exchangeInfos|获取全部现货交易规则与交易对|
|get_exchangeInfo|获取单个现货交易规则与交易对|
|get_symbols_trading_on|获取可以交易的现货产品列表|
|get_symbols_trading_off|获取不可交易的现货产品列表|
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取现货全部产品的交易规则
get_exchangeInfos = okxSPOT.market.get_exchangeInfos()
pprint(get_exchangeInfos)
# 获取单个现货产品的交易规则
get_exchangeInfo = okxSPOT.market.get_exchangeInfo(symbol='BTC-USDT')
pprint(get_exchangeInfo)
# 获取可以交易的现货产品列表
get_symbols_trading_on = okxSPOT.market.get_symbols_trading_on()
pprint(get_symbols_trading_on)
# 获取不可以交易的现货产品列表
get_symbols_trading_off = okxSPOT.market.get_symbols_trading_off()
pprint(get_symbols_trading_off)
```
#### 4.2.2 现货实时价格
便捷函数:
|函数名|说明|
|:---|:---|
|get_tickers|获取全部现货产品的实时行情数据列表|
|get_tickersMap|获取全部现货产品的实时行情数据字典|
|get_ticker|获取单个现货产品的实时行情数据|
|get_books|获取单个现货产品的交易深度|
|get_books_lite|获取单个现货产品的轻量交易深度|
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取全部现货产品的实时行情数据列表
get_tickers = okxSPOT.market.get_tickers()
pprint(get_tickers)
# 获取全部现货产品的实时行情数据字典
get_tickersMap = okxSPOT.market.get_tickersMap()
pprint(get_tickersMap)
# 获取单个现货产品的实时行情数据
get_ticker = okxSPOT.market.get_ticker('BTC-USDT')
pprint(get_ticker)
# 获取单个现货产品的交易深度
get_books = okxSPOT.market.get_books('BTC-USDT', sz=10)
pprint(get_books)
# 获取单个现货产品的轻量交易深度
get_books_lite = okxSPOT.market.get_books_lite('BTC-USDT')
pprint(get_books_lite)
```
#### 4.2.3 现货历史K线
便捷函数:
|函数名|说明|
|:---|:---|
|get_history_candle|获取产品的历史K线数据|
|get_history_candle_latest|获取产品指定数量的最新历史K线数据|
|get_history_candle_by_date|获取产品指定日期的历史K线数据|
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取产品的历史K线数据
get_history_candle = okxSPOT.market.get_history_candle(
symbol='BTC-USDT',
start='2023-01-01 00:00:00',
end='2023-01-01 23:59:00',
bar='1m',
)
pprint(get_history_candle)
# 获取产品指定数量的最新历史K线数据
get_history_candle_latest = okxSPOT.market.get_history_candle_latest(
symbol='BTC-USDT',
length=1440,
bar='1m',
)
pprint(get_history_candle_latest)
# 获取产品指定日期的历史K线数据
get_history_candle_by_date = okxSPOT.market.get_history_candle_by_date(
symbol='BTC-USDT',
date='2023-01-01',
bar='1m',
)
pprint(get_history_candle_by_date)
```
### 4.3 现货交易
#### 4.3.1 现货交易基础订单
便捷函数:
|函数名|说明|
|:---|:---|
|set_order|普通下单购买|
|get_order|查询订单|
|get_orders_pending|获取未成交订单列表|
|get_orders_pending_open|获取未成交的开仓订单列表|
|get_orders_pending_close|获取未成交的平仓订单列表|
|cancel_order|撤销订单|
|wait_order_FILLED|等待订单成交|
```python
from okx_trade import OkxSPOT
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取未成交订单列表
get_orders_pending = okxSPOT.trade.get_orders_pending()
pprint(get_orders_pending)
# 获取未成交的开仓订单列表
get_orders_pending_open = okxSPOT.trade.get_orders_pending_open()
pprint(get_orders_pending_open)
# 获取未成交的平仓订单列表
get_orders_pending_close = okxSPOT.trade.get_orders_pending_close()
pprint(get_orders_pending_close)
# 等待订单成交
wait_order_FILLED = okxSPOT.trade.wait_order_FILLED(
instId='MANA-USDT',
ordId='547717986975911936',
timeout=10,
)
pprint(wait_order_FILLED)
# 获取订单信息
get_order = okxSPOT.trade.get_order(
instId='MANA-USDT',
ordId='547717986975911936',
)
pprint(get_order)
# 取消订单
cancel_order = okxSPOT.trade.cancel_order(
instId='MANA-USDT', ordId='547717986975911936'
)
pprint(cancel_order)
```
#### 4.3.2 现货下单价格与数量
便捷函数:
|函数名|说明|
|:---|:---|
|round_quantity|圆整下单数量|
|round_price|圆整开仓价格|
|get_quantity|根据开仓金额、开仓价格与杠杆计算最大可开仓数量|
|quantity_to_f|将下单数量转化为字符串|
|price_to_f|将下单价格转化为字符串|
```python
from pprint import pprint
from okx_trade import OkxSPOT
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 圆整下单数量
round_quantity_result = okxSPOT.trade.round_quantity(
quantity=0.00023234234234,
instId='MANA-USDT',
ordType='market', # market | limit
)
pprint(round_quantity_result)
# 圆整下单价格
round_price_result = okxSPOT.trade.round_price(
price=20.123123123,
instId='MANA-USDT',
type='FLOOR', # FLOOR:向下圆整 CEIL:向上圆整
)
pprint(round_price_result)
# 根据开仓金额、开仓价格与杠杆计算最大可开仓数量
get_quantity_result = okxSPOT.trade.get_quantity(
openPrice=2.123123,
openMoney=20,
instId='MANA-USDT',
ordType='limit',
leverage=1
)
pprint(get_quantity_result)
# 将下单数量转化为字符串
quantity_to_f_result = okxSPOT.trade.quantity_to_f(
quantity=get_quantity_result['data'],
instId='MANA-USDT',
)
pprint(quantity_to_f_result)
# 将下单价格转化为字符串
price_to_f_result = okxSPOT.trade.price_to_f(
price=round_price_result['data'],
instId='MANA-USDT',
)
pprint(price_to_f_result)
```
#### 4.3.3 现货限单价开仓
便捷函数:
|函数名|说明|
|:---|:---|
|open_limit|限价单开仓|
```python
from okx_trade import OkxSPOT
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 限价单开仓
open_limit = okxSPOT.trade.open_limit(
instId='MANA-USDT', # 产品
openPrice=0.1, # 开仓价格
openMoney=4, # 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级:quantity > openMoney
# quantity=10, # 开仓数量
block=True, # 是否以堵塞的模式
timeout=5, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
newThread=False, # 是否开启一个新的线程维护这个订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
)
```
#### 4.3.4 现货市价单开仓
便捷函数:
|函数名|说明|
|:---|:---|
|open_market|市价单开仓|
```python
from okx_trade import OkxSPOT
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 市价单开仓
open_market_result = okxSPOT.trade.open_market(
instId='MANA-USDT', # 产品
quantity=3, # 开仓数量
# openMoney=3, 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级:quantity > openMoney
timeout=10, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=True, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
#### 4.3.5 现货限价单平仓
便捷函数:
|函数名|说明|
|:---|:---|
|close_limit|限价单平仓|
```python
from okx_trade import OkxSPOT
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 市价单开仓
open_market_result = okxSPOT.trade.open_market(
instId='MANA-USDT', # 产品
quantity=3, # 开仓数量
# openMoney=3, 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级:quantity > openMoney
timeout=10, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=True, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
#### 4.3.6 现货市价单平仓
便捷函数:
|函数名|说明|
|:---|:---|
|close_market|市价单平仓|
```python
from okx_trade import OkxSPOT
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 限价单平仓
okxSPOT.trade.close_limit(
instId='MANA-USDT', # 产品
# closePrice=1000, # 平仓价格 closePrice 和 tpRate必须填写其中一个
tpRate=0.1, # 挂单止盈率
quantity='all', # 平仓数量
block=True, # 是否堵塞
timeout=10, # 等待订单成功的超时时间
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 未完全成交是否取消订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=True, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
## 5 永续合约 OkxSWAP
### 5.1 永续账户
便捷函数:
|函数名|说明|
|:---|:---|
|get_balance|获取币种的余额|
|set_position_mode|设置持仓模式|
|set_leverage|设置杠杆|
|get_leverage|获取杠杆|
```python
from okx_trade import OkxSWAP
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取币种的余额
get_balance = okxSWAP.account.get_balance(ccy='USDT')
pprint(get_balance)
# 设置持仓模式
set_position_mode = okxSWAP.account.set_position_mode(
posMode='long_short_mode',
)
pprint(set_position_mode)
# 设置逐仓杠杆(多仓)
set_leverage_isolated_long = okxSWAP.account.set_leverage(
lever=4,
instId='MANA-USDT-SWAP',
mgnMode='isolated',
posSide='long',
)
pprint(set_leverage_isolated_long)
# 设置逐仓杠杆(空仓)
set_leverage_isolated_short = okxSWAP.account.set_leverage(
lever=5,
instId='MANA-USDT-SWAP',
mgnMode='isolated',
posSide='short',
)
pprint(set_leverage_isolated_short)
# 获取逐仓杠杆
get_leverage_isolated = okxSWAP.account.get_leverage(
instId='MANA-USDT-SWAP',
mgnMode='isolated',
)
pprint(get_leverage_isolated)
# 设置全仓杠杆
set_leverage_cross = okxSWAP.account.set_leverage(
lever=4,
instId='MANA-USDT-SWAP',
mgnMode='cross',
posSide='',
)
pprint(set_leverage_cross)
# 获取逐仓杠杆
get_leverage_cross = okxSWAP.account.get_leverage(
instId='MANA-USDT-SWAP',
mgnMode='cross',
)
pprint(get_leverage_cross)
```
### 5.2 永续行情
#### 5.2.1 永续产品规则信息
便捷函数:
|函数名|说明|
|:---|:---|
|get_exchangeInfos|获取全部永续合约交易规则与交易对|
|get_exchangeInfo|获取单个永续合约交易规则与交易对|
|get_symbols_trading_on|获取可以交易的永续合约产品列表|
|get_symbols_trading_off|获取不可交易的永续合约产品列表|
```python
from okx_trade import OkxSWAP
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取永续合约全部产品的交易规则
get_exchangeInfos = okxSWAP.market.get_exchangeInfos()
pprint(get_exchangeInfos)
# 获取单个永续合约产品的交易规则
get_exchangeInfo = okxSWAP.market.get_exchangeInfo(symbol='BTC-USDT-SWAP')
pprint(get_exchangeInfo)
# 获取可以交易的永续合约产品列表
get_symbols_trading_on = okxSWAP.market.get_symbols_trading_on()
pprint(get_symbols_trading_on)
# 获取不可以交易的永续合约产品列表
get_symbols_trading_off = okxSWAP.market.get_symbols_trading_off()
pprint(get_symbols_trading_off)
```
#### 5.2.2 永续实时价格
便捷函数:
|函数名|说明|
|:---|:---|
|get_tickers|获取全部永续合约的实时行情数据列表|
|get_tickersMap|获取全部永续合约的实时行情数据字典|
|get_ticker|获取单个永续合约产品的实时行情数据|
|get_books|获取单个永续合约产品的交易深度|
|get_books_lite|获取单个永续合约产品的轻量交易深度|
```python
from okx_trade import OkxSWAP
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取全部永续合约产品的实时行情数据列表
get_tickers = okxSWAP.market.get_tickers()
pprint(get_tickers)
# 获取全部永续合约产品的实时行情数据字典
get_tickersMap = okxSWAP.market.get_tickersMap()
pprint(get_tickersMap)
# 获取单个永续合约产品的实时行情数据
get_ticker = okxSWAP.market.get_ticker('BTC-USDT-SWAP')
pprint(get_ticker)
# 获取单个永续合约产品的交易深度
get_books = okxSWAP.market.get_books('BTC-USDT-SWAP', sz=10)
pprint(get_books)
# 获取单个永续合约产品的轻量交易深度
get_books_lite = okxSWAP.market.get_books_lite('BTC-USDT-SWAP')
pprint(get_books_lite)
```
#### 5.2.3 永续历史K线
便捷函数:
|函数名|说明|
|:---|:---|
|get_history_candle|获取产品的历史K线数据|
|get_history_candle_latest|获取产品指定数量的最新历史K线数据|
|get_history_candle_by_date|获取产品指定日期的历史K线数据|
```python
from okx_trade import OkxSWAP
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取产品的历史K线数据
get_history_candle = okxSWAP.market.get_history_candle(
symbol='BTC-USDT-SWAP',
start='2023-01-01 00:00:00',
end='2023-01-01 23:59:00',
bar='1m',
)
pprint(get_history_candle)
# 获取产品指定数量的最新历史K线数据
get_history_candle_latest = okxSWAP.market.get_history_candle_latest(
symbol='BTC-USDT-SWAP',
length=1440,
bar='1m',
)
pprint(get_history_candle_latest)
# 获取产品指定日期的历史K线数据
get_history_candle_by_date = okxSWAP.market.get_history_candle_by_date(
symbol='BTC-USDT-SWAP',
date='2023-01-01',
bar='1m',
)
pprint(get_history_candle_by_date)
```
### 5.3 永续交易
#### 5.3.1 永续交易基础订单
便捷函数:
|函数名|说明|
|:---|:---|
|set_order|普通下单购买|
|get_order|查询订单|
|get_orders_pending|获取未成交订单列表|
|get_orders_pending_open|获取未成交的开仓订单列表|
|get_orders_pending_close|获取未成交的平仓订单列表|
|cancel_order|撤销订单|
|wait_order_FILLED|等待订单成交|
```python
from okx_trade import OkxSWAP
from pprint import pprint
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 获取未成交订单列表
get_orders_pending = okxSWAP.trade.get_orders_pending()
pprint(get_orders_pending)
# 获取未成交的开仓订单列表
get_orders_pending_open = okxSWAP.trade.get_orders_pending_open()
pprint(get_orders_pending_open)
# 获取未成交的平仓订单列表
get_orders_pending_close = okxSWAP.trade.get_orders_pending_close()
pprint(get_orders_pending_close)
# 等待订单成交
wait_order_FILLED = okxSWAP.trade.wait_order_FILLED(
instId='MANA-USDT-SWAP',
ordId='547717986975911936',
timeout=10,
)
pprint(wait_order_FILLED)
# 获取订单信息
get_order = okxSWAP.trade.get_order(
instId='MANA-USDT-SWAP',
ordId='547717986975911936',
)
pprint(get_order)
# 取消订单
cancel_order = okxSWAP.trade.cancel_order(
instId='MANA-USDT-SWAP', ordId='547717986975911936'
)
pprint(cancel_order)
```
#### 5.3.2 永续下单价格与数量
便捷函数:
|函数名|说明|
|:---|:---|
|round_quantity|圆整下单数量|
|round_price|圆整下单价格|
|get_quantity|根据开仓金额、开仓价格与杠杆计算最大可开仓数量|
|quantity_to_f|将下单数量转化为字符串|
|price_to_f|将下单价格转化为字符串|
```python
from pprint import pprint
from okx_trade import OkxSWAP
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 圆整下单数量
round_quantity_result = okxSWAP.trade.round_quantity(
quantity=0.00023234234234,
instId='MANA-USDT-SWAP',
ordType='market', # market | limit
)
pprint(round_quantity_result)
# 圆整下单价格
round_price_result = okxSWAP.trade.round_price(
price=20.123123123,
instId='MANA-USDT-SWAP',
type='FLOOR', # FLOOR:向下圆整 CEIL:向上圆整
)
pprint(round_price_result)
# 根据开仓金额、开仓价格与杠杆计算最大可开仓数量
get_quantity_result = okxSWAP.trade.get_quantity(
openPrice=2.123123,
openMoney=20,
instId='MANA-USDT-SWAP',
ordType='limit',
leverage=1
)
pprint(get_quantity_result)
# 将下单数量转化为字符串
quantity_to_f_result = okxSWAP.trade.quantity_to_f(
quantity=get_quantity_result['data'],
instId='MANA-USDT-SWAP',
)
pprint(quantity_to_f_result)
# 将下单价格转化为字符串
price_to_f_result = okxSWAP.trade.price_to_f(
price=round_price_result['data'],
instId='MANA-USDT-SWAP',
)
pprint(price_to_f_result)
```
#### 5.3.3 永续限单价开仓
便捷函数:
|函数名|说明|
|:---|:---|
|open_limit|限价单开仓|
```python
from okx_trade import OkxSWAP
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 限价单开仓
open_limit = okxSWAP.trade.open_limit(
instId='MANA-USDT-SWAP', # 产品
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
lever=1, # 杠杆倍数
openPrice=0.1, # 开仓价格
openMoney=4, # 开仓金额 开仓金额openMoney和开仓数量quantityCT必须输入其中一个 优先级:quantityCT > openMoney
# quantityCT=1, # 开仓数量 注意:quantityCT是合约的张数,不是货币数量
block=True, # 是否以堵塞的模式
timeout=5, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
newThread=False, # 是否开启一个新的线程维护这个订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
)
```
#### 5.3.4 永续市价单开仓
便捷函数:
|函数名|说明|
|:---|:---|
|open_market|市价单开仓|
```python
from okx_trade import OkxSWAP
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 市价单开仓
open_market_result = okxSWAP.trade.open_market(
instId='MANA-USDT-SWAP', # 产品
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
lever=1, # 杠杆倍数
openMoney=4, # 开仓金额 开仓金额openMoney和开仓数量quantityCT必须输入其中一个 优先级:quantityCT > openMoney
# quantityCT=1, # 开仓数量 注意:quantityCT是合约的张数,不是货币数量
timeout=10, # 等待订单成功的超时时间(秒)
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 订单超时后是否取消
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=True, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
#### 5.3.5 永续限价单平仓
便捷函数:
|函数名|说明|
|:---|:---|
|close_limit|限价单平仓|
```python
from okx_trade import OkxSWAP
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 限价单平仓
okxSWAP.trade.close_limit(
instId='MANA-USDT-SWAP', # 产品
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
# closePrice=1000, # 平仓价格 closePrice 和 tpRate必须填写其中一个
tpRate=0.1, # 挂单止盈率
quantityCT='all', # 平仓数量,注意:quantityCT是合约的张数,不是货币数量
block=True, # 是否堵塞
timeout=10, # 等待订单成功的超时时间
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 未完全成交是否取消订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=True, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
#### 5.3.6 永续市价单平仓
便捷函数:
|函数名|说明|
|:---|:---|
|close_market|市价单平仓|
```python
from okx_trade import OkxSWAP
from pprint import pprint
def callback(information):
print('callback')
pprint(information)
def errorback(information):
print('errorback')
pprint(information)
if __name__ == '__main__':
KEY = '****'
SECRET = '****'
PASSPHRASE = '****'
okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)
# 市价单平仓
okxSWAP.trade.close_market(
instId='MANA-USDT-SWAP', # 产品
tdMode='isolated', # 持仓方式 isolated:逐仓 cross:全仓
posSide='long', # 持仓方向 long:多单 short:空单
quantityCT='all', # 平仓数量,注意:quantityCT是合约的张数,不是货币数量
timeout=10, # 等待订单成功的超时时间
delay=0.2, # 检测订单状态的间隔 (秒)
cancel=True, # 未完全成交是否取消订单
callback=callback, # 开仓成功触发的回调函数
errorback=errorback, # 开仓失败触发的回调函数
newThread=False, # 是否开启一个新的线程维护这个订单
tag='', # 订单标签
clOrdId='', # 客户自定义订单ID
meta={}, # 向回调函数中传递的参数字典
)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/pyted/okx_trade",
"name": "okx-trade",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": "",
"keywords": "",
"author": "pyted",
"author_email": "pyted@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/ea/95/d03b01475c12f23f68e458d28a53320f3f39e9137518fa2195995d580563/okx_trade-1.0.2.tar.gz",
"platform": null,
"description": "\n# Okx_Trade \u8bf4\u660e\u6587\u6863\n\n## 1 Okx_Trade\u4ecb\u7ecd\n\nOkx_Trade\u5c01\u88c5\u4e86OKX\u4e2d\u73b0\u8d27\uff08SPOT)\u3001\u6c38\u7eed\u5408\u7ea6\uff08SWAP\uff09\u7684\u5e38\u7528\u51fd\u6570\uff0c\u964d\u4f4e\u91cf\u5316\u4ea4\u6613\u7684\u96be\u5ea6\u3002\n\n## 2 \u5b89\u88c5Okx_Trade\n\nGITHUB:https://www.github.com/pyted/okx_trade\n\n```cmd\npip3 install okx_trade\n```\n\n## 3 \u5feb\u901f\u5f00\u59cb\n\n1.\u83b7\u53d6\u73b0\u8d27\u73b0\u8d27\u4ea4\u6613BTC-USDT\u7684\u4ef7\u683c\uff0c\u964d\u4ef72%\u6302\u5355\u4e70\u5165\uff0c\u4e70\u5165\u91d1\u989d\u4e3a10000USDT\uff0c\u6302\u5355\u65f6\u95f4\u4e3a2\u5c0f\u65f6\uff0c\u5982\u679c\u8d85\u65f6\u5219\u53d6\u6d88\u8ba2\u5355\u3002\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n okxSPOT = OkxSPOT(\n key='****',\n secret='****',\n passphrase='****',\n )\n\n # \u4ea7\u54c1\n instId = 'BTC-USDT'\n # \u5f00\u4ed3\u91d1\u989d\n openMoney = 10000\n # \u8d2d\u4e70\u4ef7\u683c\n askPx = okxSPOT.market.get_ticker(instId)['data']['askPx'] # \u53561\u4ef7\u683c\n askPx = float(askPx)\n openPrice = askPx * 0.98 # \u964d\u4ef72%\n print(openPrice)\n # \u6302\u5355\u65f6\u95f4\n timeout = 60 * 60 * 2 # \u5355\u4f4d\u79d2\n # \u8d85\u65f6\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n cancel = True\n # \u662f\u5426\u5835\u585e\u6a21\u5f0f\n block = True\n\n # \u9650\u4ef7\u5355\u5f00\u4ed3\n result = okxSPOT.trade.open_limit(\n instId=instId, # \u4ea7\u54c1\n openPrice=openPrice, # \u5f00\u4ed3\u4ef7\u683c\n openMoney=openMoney, # \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantity\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantity > openMoney\n timeout=timeout, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n )\n pprint(result)\n```\n\n2.\u83b7\u53d6\u6c38\u7eed\u5408\u7ea6BTC-USDT-SWAP\u7684\u4ef7\u683c\uff0c\u964d\u4ef75%\uff0c\u91c7\u7528\u9010\u4ed3\u300110\u500d\u6760\u6746\u3001\u5f00\u4ed3\u91d1\u989d10000USDT\u6302\u5355\uff0c\u6302\u5355\u65f6\u95f4\u4e3a2\u5c0f\u65f6\uff0c\u5982\u679c\u8d85\u65f6\u5219\u53d6\u6d88\u3002\n\n**\u91c7\u7528\u5f02\u6b65\u7684\u65b9\u5f0f\u7ba1\u7406\u8fd9\u4e2a\u8ba2\u5355\uff0c\u5e76\u8bbe\u7f6e\u8ba2\u5355\u6210\u529f\u6216\u5931\u8d25\u540e\u7684\u56de\u8c03\u51fd\u6570**\n\n```python\nfrom pprint import pprint\nfrom okx_trade import OkxSWAP\n\n\n# \u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\ndef callback(information):\n '''\n :param information: \u4ea4\u6613\u8fc7\u7a0b\u4fe1\u606f\u5b57\u5178\n information = {\n 'instId': <\u4ea7\u54c1ID>,\n 'status': <\u8ba2\u5355\u72b6\u6001>,\n 'meta': <\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570>,\n 'request_param': <\u53d1\u9001\u4e0b\u5355\u8bf7\u6c42\u7684\u5177\u4f53\u53c2\u6570>,\n 'func_param': <open_limit\u4e2d\u7684\u53c2\u6570>,\n 'get_order_result': <\u83b7\u53d6\u8ba2\u5355\u72b6\u6001\u7684\u7ed3\u679c>,\n 'set_order_result': <\u4e0b\u5355\u63d0\u4ea4\u7684\u7ed3\u679c>,\n 'error_result': <\u5f02\u5e38\u4fe1\u606f>,\n 'cancel_result': <\u53d6\u6d88\u8ba2\u5355\u7684\u7ed3\u679c>,\n }\n '''\n print('callback')\n pprint(information)\n\n\n# \u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\ndef errorback(information):\n '''\n :param information: \u4ea4\u6613\u8fc7\u7a0b\u4fe1\u606f\u5b57\u5178\n information = {\n 'instId': <\u4ea7\u54c1ID>,\n 'status': <\u8ba2\u5355\u72b6\u6001>,\n 'meta': <\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570>,\n 'request_param': <\u53d1\u9001\u4e0b\u5355\u8bf7\u6c42\u7684\u5177\u4f53\u53c2\u6570>,\n 'func_param': <open_limit\u4e2d\u7684\u53c2\u6570>,\n 'get_order_result': <\u83b7\u53d6\u8ba2\u5355\u72b6\u6001\u7684\u7ed3\u679c>,\n 'set_order_result': <\u4e0b\u5355\u63d0\u4ea4\u7684\u7ed3\u679c>,\n 'error_result': <\u5f02\u5e38\u4fe1\u606f>,\n 'cancel_result': <\u53d6\u6d88\u8ba2\u5355\u7684\u7ed3\u679c>,\n }\n '''\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n okxSWAP = OkxSWAP(\n key='****',\n secret='****',\n passphrase='****',\n )\n\n # \u4ea7\u54c1\n instId = 'BTC-USDT-SWAP'\n # \u5f00\u4ed3\u91d1\u989d\n openMoney = 10000\n # \u8d2d\u4e70\u4ef7\u683c\n askPx = okxSWAP.market.get_ticker(instId)['data']['askPx'] # \u53561\u4ef7\u683c\n askPx = float(askPx)\n openPrice = askPx * 0.98 # \u964d\u4ef72%\n print(openPrice)\n # \u6302\u5355\u65f6\u95f4\n timeout = 60 * 60 * 2 # \u5355\u4f4d\u79d2\n # \u8d85\u65f6\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n cancel = True\n # \u662f\u5426\u5835\u585e\u6a21\u5f0f\n block = True\n\n # \u9650\u4ef7\u5355\u5f00\u4ed3\n result = okxSWAP.trade.open_limit(\n instId=instId, # \u4ea7\u54c1\n openPrice=openPrice, # \u5f00\u4ed3\u4ef7\u683c\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n lever=10, # \u6760\u6746\n openMoney=openMoney, # \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantityCT\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantity > openMoney\n quantityCT=None, # \u5408\u7ea6\u5f20\u6570\u4e3a\u7a7a\n block=True, # \u662f\u5426\u4ee5\u5835\u585e\u7684\u6a21\u5f0f\n timeout=timeout, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n newThread=False, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n )\n```\n\n3.\u5bf9\u4e8e\u6c38\u7eed\u5408\u7ea6\u4ee5\u5f53\u524dBTC-USDT-SWAP\u7684\u4ef7\u683c\uff0c\u6b62\u76c820%**\u5168\u90e8**\u6302\u5355\u4e70\u5165\u5e73\u7a7a\uff0c\u8d85\u65f6\u65f6\u95f42\u5c0f\u65f6\uff0c\u8d85\u65f6\u540e\u53d6\u6d88\u8ba2\u5355\uff0c\u5e76\u8bbe\u7f6e\u56de\u8c03\u51fd\u6570\u3002\n\n```python\nfrom pprint import pprint\nfrom okx_trade import OkxSWAP\n\n\n# \u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\ndef callback(information):\n '''\n :param information: \u4ea4\u6613\u8fc7\u7a0b\u4fe1\u606f\u5b57\u5178\n information = {\n 'instId':<\u4ea7\u54c1ID>,\n 'status': <\u8ba2\u5355\u72b6\u6001>,\n 'meta': <\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570>,\n 'request_param': <\u53d1\u9001\u4e0b\u5355\u8bf7\u6c42\u7684\u5177\u4f53\u53c2\u6570>,\n 'func_param': <open_limit\u4e2d\u7684\u53c2\u6570>,\n 'get_order_result': <\u83b7\u53d6\u8ba2\u5355\u72b6\u6001\u7684\u7ed3\u679c>,\n 'set_order_result': <\u4e0b\u5355\u63d0\u4ea4\u7684\u7ed3\u679c>,\n 'error_result': <\u5f02\u5e38\u4fe1\u606f>,\n 'cancel_result': <\u53d6\u6d88\u8ba2\u5355\u7684\u7ed3\u679c>,\n }\n '''\n print('callback')\n pprint(information)\n\n\n# \u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\ndef errorback(information):\n '''\n :param information: \u4ea4\u6613\u8fc7\u7a0b\u4fe1\u606f\u5b57\u5178\n information = {\n 'instId':<\u4ea7\u54c1ID>,\n 'status': <\u8ba2\u5355\u72b6\u6001>,\n 'meta': <\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570>,\n 'request_param': <\u53d1\u9001\u4e0b\u5355\u8bf7\u6c42\u7684\u5177\u4f53\u53c2\u6570>,\n 'func_param': <open_limit\u4e2d\u7684\u53c2\u6570>,\n 'get_order_result': <\u83b7\u53d6\u8ba2\u5355\u72b6\u6001\u7684\u7ed3\u679c>,\n 'set_order_result': <\u4e0b\u5355\u63d0\u4ea4\u7684\u7ed3\u679c>,\n 'error_result': <\u5f02\u5e38\u4fe1\u606f>,\n 'cancel_result': <\u53d6\u6d88\u8ba2\u5355\u7684\u7ed3\u679c>,\n }\n '''\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n okxSWAP = OkxSWAP(\n key='****',\n secret='****',\n passphrase='****',\n )\n # \u4ea7\u54c1\n instId = 'BTC-USDT-SWAP'\n # \u6302\u5355\u65f6\u95f4\n timeout = 60 * 60 * 2 # \u5355\u4f4d\u79d2\n # \u8d85\u65f6\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n cancel = True\n # \u662f\u5426\u5835\u585e\u6a21\u5f0f\n block = True\n\n # \u9650\u4ef7\u5355\u5f00\u4ed3\n result = okxSWAP.trade.close_limit(\n instId=instId, # \u4ea7\u54c1\n tpRate=0.2, # \u6b62\u76c8\u7387 20%\n # \u5e73\u591a positionSide=\"LONG\": closePrice = askPx * (1 + abs(tpRate))\n # \u5e73\u7a7a positionSide=\"SHORT\": closePrice = bidPx * (1 - abs(tpRate))\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n quantityCT='all', # \u5408\u7ea6\u5f20\u6570\u4e3a\u7a7a 'all' \u8868\u793a\u5168\u90e8\n block=True, # \u662f\u5426\u4ee5\u5835\u585e\u7684\u6a21\u5f0f\n timeout=60 * 60 * 2, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n newThread=False, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n )\n pprint(result)\n```\n\n## 4 \u73b0\u8d27\u4ea7\u54c1 OkxSPOT\n\n### 4.1 \u73b0\u8d27\u8d26\u6237\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_balancesMap|\u67e5\u770b\u8d26\u6237\u4f59\u989d\u5b57\u5178|\n|get_balances|\u67e5\u770b\u8d26\u6237\u4f59\u989d\u5217\u8868| \n|get_balance|\u83b7\u53d6\u5355\u4e2a\u5e01\u79cd\u7684\u4f59\u989d|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u4ea7\u54c1\u7684\u4f59\u989d\n get_balance1 = okxSPOT.account.get_balance(instId='MANA-USDT')\n pprint(get_balance1)\n # \u83b7\u53d6\u5e01\u79cd\u7684\u4f59\u989d\n get_balance2 = okxSPOT.account.get_balance(ccy='USDT')\n pprint(get_balance2)\n # \u83b7\u53d6\u5168\u90e8\u8d44\u4ea7\u4f59\u989d\u5217\u8868\n get_balances = okxSPOT.account.get_balances()\n pprint(get_balances)\n # \u83b7\u53d6\u5168\u90e8\u8d44\u4ea7\u4f59\u989d\u5b57\u5178\n get_balancesMap = okxSPOT.account.get_balancesMap()\n pprint(get_balancesMap)\n```\n\n### 4.2 \u73b0\u8d27\u884c\u60c5\n\n#### 4.2.1 \u73b0\u8d27\u4ea7\u54c1\u89c4\u5219\u4fe1\u606f\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_exchangeInfos|\u83b7\u53d6\u5168\u90e8\u73b0\u8d27\u4ea4\u6613\u89c4\u5219\u4e0e\u4ea4\u6613\u5bf9|\n|get_exchangeInfo|\u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea4\u6613\u89c4\u5219\u4e0e\u4ea4\u6613\u5bf9| \n|get_symbols_trading_on|\u83b7\u53d6\u53ef\u4ee5\u4ea4\u6613\u7684\u73b0\u8d27\u4ea7\u54c1\u5217\u8868|\n|get_symbols_trading_off|\u83b7\u53d6\u4e0d\u53ef\u4ea4\u6613\u7684\u73b0\u8d27\u4ea7\u54c1\u5217\u8868|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u73b0\u8d27\u5168\u90e8\u4ea7\u54c1\u7684\u4ea4\u6613\u89c4\u5219\n get_exchangeInfos = okxSPOT.market.get_exchangeInfos()\n pprint(get_exchangeInfos)\n # \u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u4ea4\u6613\u89c4\u5219\n get_exchangeInfo = okxSPOT.market.get_exchangeInfo(symbol='BTC-USDT')\n pprint(get_exchangeInfo)\n # \u83b7\u53d6\u53ef\u4ee5\u4ea4\u6613\u7684\u73b0\u8d27\u4ea7\u54c1\u5217\u8868\n get_symbols_trading_on = okxSPOT.market.get_symbols_trading_on()\n pprint(get_symbols_trading_on)\n # \u83b7\u53d6\u4e0d\u53ef\u4ee5\u4ea4\u6613\u7684\u73b0\u8d27\u4ea7\u54c1\u5217\u8868\n get_symbols_trading_off = okxSPOT.market.get_symbols_trading_off()\n pprint(get_symbols_trading_off)\n```\n\n#### 4.2.2 \u73b0\u8d27\u5b9e\u65f6\u4ef7\u683c\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_tickers|\u83b7\u53d6\u5168\u90e8\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5217\u8868|\n|get_tickersMap|\u83b7\u53d6\u5168\u90e8\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5b57\u5178|\n|get_ticker|\u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e|\n|get_books|\u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u4ea4\u6613\u6df1\u5ea6|\n|get_books_lite|\u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u8f7b\u91cf\u4ea4\u6613\u6df1\u5ea6|\n\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u5168\u90e8\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5217\u8868\n get_tickers = okxSPOT.market.get_tickers()\n pprint(get_tickers)\n # \u83b7\u53d6\u5168\u90e8\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5b57\u5178\n get_tickersMap = okxSPOT.market.get_tickersMap()\n pprint(get_tickersMap)\n # \u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\n get_ticker = okxSPOT.market.get_ticker('BTC-USDT')\n pprint(get_ticker)\n # \u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u4ea4\u6613\u6df1\u5ea6\n get_books = okxSPOT.market.get_books('BTC-USDT', sz=10)\n pprint(get_books)\n # \u83b7\u53d6\u5355\u4e2a\u73b0\u8d27\u4ea7\u54c1\u7684\u8f7b\u91cf\u4ea4\u6613\u6df1\u5ea6\n get_books_lite = okxSPOT.market.get_books_lite('BTC-USDT')\n pprint(get_books_lite)\n```\n\n#### 4.2.3 \u73b0\u8d27\u5386\u53f2K\u7ebf\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_history_candle|\u83b7\u53d6\u4ea7\u54c1\u7684\u5386\u53f2K\u7ebf\u6570\u636e|\n|get_history_candle_latest|\u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u6570\u91cf\u7684\u6700\u65b0\u5386\u53f2K\u7ebf\u6570\u636e|\n|get_history_candle_by_date|\u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u65e5\u671f\u7684\u5386\u53f2K\u7ebf\u6570\u636e|\n\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u4ea7\u54c1\u7684\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle = okxSPOT.market.get_history_candle(\n symbol='BTC-USDT',\n start='2023-01-01 00:00:00',\n end='2023-01-01 23:59:00',\n bar='1m',\n )\n pprint(get_history_candle)\n\n # \u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u6570\u91cf\u7684\u6700\u65b0\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle_latest = okxSPOT.market.get_history_candle_latest(\n symbol='BTC-USDT',\n length=1440,\n bar='1m',\n )\n pprint(get_history_candle_latest)\n\n # \u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u65e5\u671f\u7684\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle_by_date = okxSPOT.market.get_history_candle_by_date(\n symbol='BTC-USDT',\n date='2023-01-01',\n bar='1m',\n )\n pprint(get_history_candle_by_date)\n```\n\n### 4.3 \u73b0\u8d27\u4ea4\u6613\n\n#### 4.3.1 \u73b0\u8d27\u4ea4\u6613\u57fa\u7840\u8ba2\u5355\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|set_order|\u666e\u901a\u4e0b\u5355\u8d2d\u4e70| \n|get_order|\u67e5\u8be2\u8ba2\u5355| \n|get_orders_pending|\u83b7\u53d6\u672a\u6210\u4ea4\u8ba2\u5355\u5217\u8868|\n|get_orders_pending_open|\u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5f00\u4ed3\u8ba2\u5355\u5217\u8868|\n|get_orders_pending_close|\u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5e73\u4ed3\u8ba2\u5355\u5217\u8868|\n|cancel_order|\u64a4\u9500\u8ba2\u5355|\n|wait_order_FILLED|\u7b49\u5f85\u8ba2\u5355\u6210\u4ea4|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u83b7\u53d6\u672a\u6210\u4ea4\u8ba2\u5355\u5217\u8868\n get_orders_pending = okxSPOT.trade.get_orders_pending()\n pprint(get_orders_pending)\n # \u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5f00\u4ed3\u8ba2\u5355\u5217\u8868\n get_orders_pending_open = okxSPOT.trade.get_orders_pending_open()\n pprint(get_orders_pending_open)\n # \u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5e73\u4ed3\u8ba2\u5355\u5217\u8868\n get_orders_pending_close = okxSPOT.trade.get_orders_pending_close()\n pprint(get_orders_pending_close)\n # \u7b49\u5f85\u8ba2\u5355\u6210\u4ea4\n wait_order_FILLED = okxSPOT.trade.wait_order_FILLED(\n instId='MANA-USDT',\n ordId='547717986975911936',\n timeout=10,\n )\n pprint(wait_order_FILLED)\n # \u83b7\u53d6\u8ba2\u5355\u4fe1\u606f\n get_order = okxSPOT.trade.get_order(\n instId='MANA-USDT',\n ordId='547717986975911936',\n )\n pprint(get_order)\n # \u53d6\u6d88\u8ba2\u5355\n cancel_order = okxSPOT.trade.cancel_order(\n instId='MANA-USDT', ordId='547717986975911936'\n )\n pprint(cancel_order)\n```\n\n#### 4.3.2 \u73b0\u8d27\u4e0b\u5355\u4ef7\u683c\u4e0e\u6570\u91cf\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|round_quantity|\u5706\u6574\u4e0b\u5355\u6570\u91cf|\n|round_price|\u5706\u6574\u5f00\u4ed3\u4ef7\u683c|\n|get_quantity|\u6839\u636e\u5f00\u4ed3\u91d1\u989d\u3001\u5f00\u4ed3\u4ef7\u683c\u4e0e\u6760\u6746\u8ba1\u7b97\u6700\u5927\u53ef\u5f00\u4ed3\u6570\u91cf|\n|quantity_to_f|\u5c06\u4e0b\u5355\u6570\u91cf\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32|\n|price_to_f|\u5c06\u4e0b\u5355\u4ef7\u683c\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32|\n\n```python\nfrom pprint import pprint\nfrom okx_trade import OkxSPOT\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u5706\u6574\u4e0b\u5355\u6570\u91cf\n round_quantity_result = okxSPOT.trade.round_quantity(\n quantity=0.00023234234234,\n instId='MANA-USDT',\n ordType='market', # market | limit\n )\n pprint(round_quantity_result)\n # \u5706\u6574\u4e0b\u5355\u4ef7\u683c\n round_price_result = okxSPOT.trade.round_price(\n price=20.123123123,\n instId='MANA-USDT',\n type='FLOOR', # FLOOR:\u5411\u4e0b\u5706\u6574 CEIL:\u5411\u4e0a\u5706\u6574\n )\n pprint(round_price_result)\n # \u6839\u636e\u5f00\u4ed3\u91d1\u989d\u3001\u5f00\u4ed3\u4ef7\u683c\u4e0e\u6760\u6746\u8ba1\u7b97\u6700\u5927\u53ef\u5f00\u4ed3\u6570\u91cf\n get_quantity_result = okxSPOT.trade.get_quantity(\n openPrice=2.123123,\n openMoney=20,\n instId='MANA-USDT',\n ordType='limit',\n leverage=1\n )\n pprint(get_quantity_result)\n # \u5c06\u4e0b\u5355\u6570\u91cf\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32\n quantity_to_f_result = okxSPOT.trade.quantity_to_f(\n quantity=get_quantity_result['data'],\n instId='MANA-USDT',\n )\n pprint(quantity_to_f_result)\n # \u5c06\u4e0b\u5355\u4ef7\u683c\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32\n price_to_f_result = okxSPOT.trade.price_to_f(\n price=round_price_result['data'],\n instId='MANA-USDT',\n )\n pprint(price_to_f_result)\n```\n\n#### 4.3.3 \u73b0\u8d27\u9650\u5355\u4ef7\u5f00\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|open_limit|\u9650\u4ef7\u5355\u5f00\u4ed3|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u9650\u4ef7\u5355\u5f00\u4ed3\n open_limit = okxSPOT.trade.open_limit(\n instId='MANA-USDT', # \u4ea7\u54c1\n openPrice=0.1, # \u5f00\u4ed3\u4ef7\u683c\n openMoney=4, # \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantity\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantity > openMoney\n # quantity=10, # \u5f00\u4ed3\u6570\u91cf\n block=True, # \u662f\u5426\u4ee5\u5835\u585e\u7684\u6a21\u5f0f\n timeout=5, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n newThread=False, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n )\n```\n\n#### 4.3.4 \u73b0\u8d27\u5e02\u4ef7\u5355\u5f00\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|open_market|\u5e02\u4ef7\u5355\u5f00\u4ed3|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u5e02\u4ef7\u5355\u5f00\u4ed3\n open_market_result = okxSPOT.trade.open_market(\n instId='MANA-USDT', # \u4ea7\u54c1\n quantity=3, # \u5f00\u4ed3\u6570\u91cf\n # openMoney=3, \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantity\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantity > openMoney\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=True, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n\n#### 4.3.5 \u73b0\u8d27\u9650\u4ef7\u5355\u5e73\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|close_limit|\u9650\u4ef7\u5355\u5e73\u4ed3|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u5e02\u4ef7\u5355\u5f00\u4ed3\n open_market_result = okxSPOT.trade.open_market(\n instId='MANA-USDT', # \u4ea7\u54c1\n quantity=3, # \u5f00\u4ed3\u6570\u91cf\n # openMoney=3, \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantity\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantity > openMoney\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=True, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n\n#### 4.3.6 \u73b0\u8d27\u5e02\u4ef7\u5355\u5e73\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|close_market|\u5e02\u4ef7\u5355\u5e73\u4ed3|\n\n```python\nfrom okx_trade import OkxSPOT\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSPOT = OkxSPOT(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u9650\u4ef7\u5355\u5e73\u4ed3\n okxSPOT.trade.close_limit(\n instId='MANA-USDT', # \u4ea7\u54c1\n # closePrice=1000, # \u5e73\u4ed3\u4ef7\u683c closePrice \u548c tpRate\u5fc5\u987b\u586b\u5199\u5176\u4e2d\u4e00\u4e2a\n tpRate=0.1, # \u6302\u5355\u6b62\u76c8\u7387\n quantity='all', # \u5e73\u4ed3\u6570\u91cf\n block=True, # \u662f\u5426\u5835\u585e\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u672a\u5b8c\u5168\u6210\u4ea4\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=True, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n\n## 5 \u6c38\u7eed\u5408\u7ea6 OkxSWAP\n\n### 5.1 \u6c38\u7eed\u8d26\u6237\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_balance|\u83b7\u53d6\u5e01\u79cd\u7684\u4f59\u989d|\n|set_position_mode|\u8bbe\u7f6e\u6301\u4ed3\u6a21\u5f0f| \n|set_leverage|\u8bbe\u7f6e\u6760\u6746|\n|get_leverage|\u83b7\u53d6\u6760\u6746|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u5e01\u79cd\u7684\u4f59\u989d\n get_balance = okxSWAP.account.get_balance(ccy='USDT')\n pprint(get_balance)\n # \u8bbe\u7f6e\u6301\u4ed3\u6a21\u5f0f\n set_position_mode = okxSWAP.account.set_position_mode(\n posMode='long_short_mode',\n )\n pprint(set_position_mode)\n # \u8bbe\u7f6e\u9010\u4ed3\u6760\u6746\uff08\u591a\u4ed3\uff09\n set_leverage_isolated_long = okxSWAP.account.set_leverage(\n lever=4,\n instId='MANA-USDT-SWAP',\n mgnMode='isolated',\n posSide='long',\n )\n pprint(set_leverage_isolated_long)\n # \u8bbe\u7f6e\u9010\u4ed3\u6760\u6746\uff08\u7a7a\u4ed3\uff09\n set_leverage_isolated_short = okxSWAP.account.set_leverage(\n lever=5,\n instId='MANA-USDT-SWAP',\n mgnMode='isolated',\n posSide='short',\n )\n pprint(set_leverage_isolated_short)\n # \u83b7\u53d6\u9010\u4ed3\u6760\u6746\n get_leverage_isolated = okxSWAP.account.get_leverage(\n instId='MANA-USDT-SWAP',\n mgnMode='isolated',\n )\n pprint(get_leverage_isolated)\n # \u8bbe\u7f6e\u5168\u4ed3\u6760\u6746\n set_leverage_cross = okxSWAP.account.set_leverage(\n lever=4,\n instId='MANA-USDT-SWAP',\n mgnMode='cross',\n posSide='',\n )\n pprint(set_leverage_cross)\n # \u83b7\u53d6\u9010\u4ed3\u6760\u6746\n get_leverage_cross = okxSWAP.account.get_leverage(\n instId='MANA-USDT-SWAP',\n mgnMode='cross',\n )\n pprint(get_leverage_cross)\n```\n\n### 5.2 \u6c38\u7eed\u884c\u60c5\n\n#### 5.2.1 \u6c38\u7eed\u4ea7\u54c1\u89c4\u5219\u4fe1\u606f\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_exchangeInfos|\u83b7\u53d6\u5168\u90e8\u6c38\u7eed\u5408\u7ea6\u4ea4\u6613\u89c4\u5219\u4e0e\u4ea4\u6613\u5bf9|\n|get_exchangeInfo|\u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea4\u6613\u89c4\u5219\u4e0e\u4ea4\u6613\u5bf9| \n|get_symbols_trading_on|\u83b7\u53d6\u53ef\u4ee5\u4ea4\u6613\u7684\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u5217\u8868|\n|get_symbols_trading_off|\u83b7\u53d6\u4e0d\u53ef\u4ea4\u6613\u7684\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u5217\u8868|\n\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u83b7\u53d6\u6c38\u7eed\u5408\u7ea6\u5168\u90e8\u4ea7\u54c1\u7684\u4ea4\u6613\u89c4\u5219\n get_exchangeInfos = okxSWAP.market.get_exchangeInfos()\n pprint(get_exchangeInfos)\n\n # \u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u4ea4\u6613\u89c4\u5219\n get_exchangeInfo = okxSWAP.market.get_exchangeInfo(symbol='BTC-USDT-SWAP')\n pprint(get_exchangeInfo)\n\n # \u83b7\u53d6\u53ef\u4ee5\u4ea4\u6613\u7684\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u5217\u8868\n get_symbols_trading_on = okxSWAP.market.get_symbols_trading_on()\n pprint(get_symbols_trading_on)\n\n # \u83b7\u53d6\u4e0d\u53ef\u4ee5\u4ea4\u6613\u7684\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u5217\u8868\n get_symbols_trading_off = okxSWAP.market.get_symbols_trading_off()\n pprint(get_symbols_trading_off)\n```\n\n#### 5.2.2 \u6c38\u7eed\u5b9e\u65f6\u4ef7\u683c\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_tickers|\u83b7\u53d6\u5168\u90e8\u6c38\u7eed\u5408\u7ea6\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5217\u8868|\n|get_tickersMap|\u83b7\u53d6\u5168\u90e8\u6c38\u7eed\u5408\u7ea6\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5b57\u5178|\n|get_ticker|\u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e|\n|get_books|\u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u4ea4\u6613\u6df1\u5ea6|\n|get_books_lite|\u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u8f7b\u91cf\u4ea4\u6613\u6df1\u5ea6|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u5168\u90e8\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5217\u8868\n get_tickers = okxSWAP.market.get_tickers()\n pprint(get_tickers)\n # \u83b7\u53d6\u5168\u90e8\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\u5b57\u5178\n get_tickersMap = okxSWAP.market.get_tickersMap()\n pprint(get_tickersMap)\n # \u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u5b9e\u65f6\u884c\u60c5\u6570\u636e\n get_ticker = okxSWAP.market.get_ticker('BTC-USDT-SWAP')\n pprint(get_ticker)\n # \u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u4ea4\u6613\u6df1\u5ea6\n get_books = okxSWAP.market.get_books('BTC-USDT-SWAP', sz=10)\n pprint(get_books)\n # \u83b7\u53d6\u5355\u4e2a\u6c38\u7eed\u5408\u7ea6\u4ea7\u54c1\u7684\u8f7b\u91cf\u4ea4\u6613\u6df1\u5ea6\n get_books_lite = okxSWAP.market.get_books_lite('BTC-USDT-SWAP')\n pprint(get_books_lite)\n```\n\n#### 5.2.3 \u6c38\u7eed\u5386\u53f2K\u7ebf\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---| \n|get_history_candle|\u83b7\u53d6\u4ea7\u54c1\u7684\u5386\u53f2K\u7ebf\u6570\u636e|\n|get_history_candle_latest|\u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u6570\u91cf\u7684\u6700\u65b0\u5386\u53f2K\u7ebf\u6570\u636e|\n|get_history_candle_by_date|\u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u65e5\u671f\u7684\u5386\u53f2K\u7ebf\u6570\u636e|\n\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u83b7\u53d6\u4ea7\u54c1\u7684\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle = okxSWAP.market.get_history_candle(\n symbol='BTC-USDT-SWAP',\n start='2023-01-01 00:00:00',\n end='2023-01-01 23:59:00',\n bar='1m',\n )\n pprint(get_history_candle)\n\n # \u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u6570\u91cf\u7684\u6700\u65b0\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle_latest = okxSWAP.market.get_history_candle_latest(\n symbol='BTC-USDT-SWAP',\n length=1440,\n bar='1m',\n )\n pprint(get_history_candle_latest)\n\n # \u83b7\u53d6\u4ea7\u54c1\u6307\u5b9a\u65e5\u671f\u7684\u5386\u53f2K\u7ebf\u6570\u636e\n get_history_candle_by_date = okxSWAP.market.get_history_candle_by_date(\n symbol='BTC-USDT-SWAP',\n date='2023-01-01',\n bar='1m',\n )\n pprint(get_history_candle_by_date)\n```\n\n\n### 5.3 \u6c38\u7eed\u4ea4\u6613\n\n#### 5.3.1 \u6c38\u7eed\u4ea4\u6613\u57fa\u7840\u8ba2\u5355\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|set_order|\u666e\u901a\u4e0b\u5355\u8d2d\u4e70| \n|get_order|\u67e5\u8be2\u8ba2\u5355| \n|get_orders_pending|\u83b7\u53d6\u672a\u6210\u4ea4\u8ba2\u5355\u5217\u8868|\n|get_orders_pending_open|\u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5f00\u4ed3\u8ba2\u5355\u5217\u8868|\n|get_orders_pending_close|\u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5e73\u4ed3\u8ba2\u5355\u5217\u8868|\n|cancel_order|\u64a4\u9500\u8ba2\u5355|\n|wait_order_FILLED|\u7b49\u5f85\u8ba2\u5355\u6210\u4ea4|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u83b7\u53d6\u672a\u6210\u4ea4\u8ba2\u5355\u5217\u8868\n get_orders_pending = okxSWAP.trade.get_orders_pending()\n pprint(get_orders_pending)\n # \u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5f00\u4ed3\u8ba2\u5355\u5217\u8868\n get_orders_pending_open = okxSWAP.trade.get_orders_pending_open()\n pprint(get_orders_pending_open)\n # \u83b7\u53d6\u672a\u6210\u4ea4\u7684\u5e73\u4ed3\u8ba2\u5355\u5217\u8868\n get_orders_pending_close = okxSWAP.trade.get_orders_pending_close()\n pprint(get_orders_pending_close)\n # \u7b49\u5f85\u8ba2\u5355\u6210\u4ea4\n wait_order_FILLED = okxSWAP.trade.wait_order_FILLED(\n instId='MANA-USDT-SWAP',\n ordId='547717986975911936',\n timeout=10,\n )\n pprint(wait_order_FILLED)\n # \u83b7\u53d6\u8ba2\u5355\u4fe1\u606f\n get_order = okxSWAP.trade.get_order(\n instId='MANA-USDT-SWAP',\n ordId='547717986975911936',\n )\n pprint(get_order)\n # \u53d6\u6d88\u8ba2\u5355\n cancel_order = okxSWAP.trade.cancel_order(\n instId='MANA-USDT-SWAP', ordId='547717986975911936'\n )\n pprint(cancel_order)\n```\n\n#### 5.3.2 \u6c38\u7eed\u4e0b\u5355\u4ef7\u683c\u4e0e\u6570\u91cf\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|round_quantity|\u5706\u6574\u4e0b\u5355\u6570\u91cf|\n|round_price|\u5706\u6574\u4e0b\u5355\u4ef7\u683c|\n|get_quantity|\u6839\u636e\u5f00\u4ed3\u91d1\u989d\u3001\u5f00\u4ed3\u4ef7\u683c\u4e0e\u6760\u6746\u8ba1\u7b97\u6700\u5927\u53ef\u5f00\u4ed3\u6570\u91cf|\n|quantity_to_f|\u5c06\u4e0b\u5355\u6570\u91cf\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32|\n|price_to_f|\u5c06\u4e0b\u5355\u4ef7\u683c\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32|\n\n\n```python\nfrom pprint import pprint\nfrom okx_trade import OkxSWAP\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n # \u5706\u6574\u4e0b\u5355\u6570\u91cf\n round_quantity_result = okxSWAP.trade.round_quantity(\n quantity=0.00023234234234,\n instId='MANA-USDT-SWAP',\n ordType='market', # market | limit\n )\n pprint(round_quantity_result)\n # \u5706\u6574\u4e0b\u5355\u4ef7\u683c\n round_price_result = okxSWAP.trade.round_price(\n price=20.123123123,\n instId='MANA-USDT-SWAP',\n type='FLOOR', # FLOOR:\u5411\u4e0b\u5706\u6574 CEIL:\u5411\u4e0a\u5706\u6574\n )\n pprint(round_price_result)\n # \u6839\u636e\u5f00\u4ed3\u91d1\u989d\u3001\u5f00\u4ed3\u4ef7\u683c\u4e0e\u6760\u6746\u8ba1\u7b97\u6700\u5927\u53ef\u5f00\u4ed3\u6570\u91cf\n get_quantity_result = okxSWAP.trade.get_quantity(\n openPrice=2.123123,\n openMoney=20,\n instId='MANA-USDT-SWAP',\n ordType='limit',\n leverage=1\n )\n pprint(get_quantity_result)\n # \u5c06\u4e0b\u5355\u6570\u91cf\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32\n quantity_to_f_result = okxSWAP.trade.quantity_to_f(\n quantity=get_quantity_result['data'],\n instId='MANA-USDT-SWAP',\n )\n pprint(quantity_to_f_result)\n # \u5c06\u4e0b\u5355\u4ef7\u683c\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32\n price_to_f_result = okxSWAP.trade.price_to_f(\n price=round_price_result['data'],\n instId='MANA-USDT-SWAP',\n )\n pprint(price_to_f_result)\n```\n\n#### 5.3.3 \u6c38\u7eed\u9650\u5355\u4ef7\u5f00\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|open_limit|\u9650\u4ef7\u5355\u5f00\u4ed3|\n\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u9650\u4ef7\u5355\u5f00\u4ed3\n open_limit = okxSWAP.trade.open_limit(\n instId='MANA-USDT-SWAP', # \u4ea7\u54c1\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n lever=1, # \u6760\u6746\u500d\u6570\n openPrice=0.1, # \u5f00\u4ed3\u4ef7\u683c\n openMoney=4, # \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantityCT\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantityCT > openMoney\n # quantityCT=1, # \u5f00\u4ed3\u6570\u91cf \u6ce8\u610f\uff1aquantityCT\u662f\u5408\u7ea6\u7684\u5f20\u6570\uff0c\u4e0d\u662f\u8d27\u5e01\u6570\u91cf\n block=True, # \u662f\u5426\u4ee5\u5835\u585e\u7684\u6a21\u5f0f\n timeout=5, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n newThread=False, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n )\n```\n\n#### 5.3.4 \u6c38\u7eed\u5e02\u4ef7\u5355\u5f00\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|open_market|\u5e02\u4ef7\u5355\u5f00\u4ed3|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u5e02\u4ef7\u5355\u5f00\u4ed3\n open_market_result = okxSWAP.trade.open_market(\n instId='MANA-USDT-SWAP', # \u4ea7\u54c1\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n lever=1, # \u6760\u6746\u500d\u6570\n openMoney=4, # \u5f00\u4ed3\u91d1\u989d \u5f00\u4ed3\u91d1\u989dopenMoney\u548c\u5f00\u4ed3\u6570\u91cfquantityCT\u5fc5\u987b\u8f93\u5165\u5176\u4e2d\u4e00\u4e2a \u4f18\u5148\u7ea7\uff1aquantityCT > openMoney\n # quantityCT=1, # \u5f00\u4ed3\u6570\u91cf \u6ce8\u610f\uff1aquantityCT\u662f\u5408\u7ea6\u7684\u5f20\u6570\uff0c\u4e0d\u662f\u8d27\u5e01\u6570\u91cf\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\uff08\u79d2\uff09\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u8ba2\u5355\u8d85\u65f6\u540e\u662f\u5426\u53d6\u6d88\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=True, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n#### 5.3.5 \u6c38\u7eed\u9650\u4ef7\u5355\u5e73\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|close_limit|\u9650\u4ef7\u5355\u5e73\u4ed3|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u9650\u4ef7\u5355\u5e73\u4ed3\n okxSWAP.trade.close_limit(\n instId='MANA-USDT-SWAP', # \u4ea7\u54c1\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n # closePrice=1000, # \u5e73\u4ed3\u4ef7\u683c closePrice \u548c tpRate\u5fc5\u987b\u586b\u5199\u5176\u4e2d\u4e00\u4e2a\n tpRate=0.1, # \u6302\u5355\u6b62\u76c8\u7387\n quantityCT='all', # \u5e73\u4ed3\u6570\u91cf\uff0c\u6ce8\u610f\uff1aquantityCT\u662f\u5408\u7ea6\u7684\u5f20\u6570\uff0c\u4e0d\u662f\u8d27\u5e01\u6570\u91cf\n block=True, # \u662f\u5426\u5835\u585e\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u672a\u5b8c\u5168\u6210\u4ea4\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=True, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n\n#### 5.3.6 \u6c38\u7eed\u5e02\u4ef7\u5355\u5e73\u4ed3\n\n\u4fbf\u6377\u51fd\u6570\uff1a\n\n|\u51fd\u6570\u540d|\u8bf4\u660e|\n|:---|:---|\n|close_market|\u5e02\u4ef7\u5355\u5e73\u4ed3|\n\n```python\nfrom okx_trade import OkxSWAP\nfrom pprint import pprint\n\n\ndef callback(information):\n print('callback')\n pprint(information)\n\n\ndef errorback(information):\n print('errorback')\n pprint(information)\n\n\nif __name__ == '__main__':\n KEY = '****'\n SECRET = '****'\n PASSPHRASE = '****'\n\n okxSWAP = OkxSWAP(key=KEY, secret=SECRET, passphrase=PASSPHRASE)\n\n # \u5e02\u4ef7\u5355\u5e73\u4ed3\n okxSWAP.trade.close_market(\n instId='MANA-USDT-SWAP', # \u4ea7\u54c1\n tdMode='isolated', # \u6301\u4ed3\u65b9\u5f0f isolated\uff1a\u9010\u4ed3 cross\uff1a\u5168\u4ed3\n posSide='long', # \u6301\u4ed3\u65b9\u5411 long\uff1a\u591a\u5355 short\uff1a\u7a7a\u5355\n quantityCT='all', # \u5e73\u4ed3\u6570\u91cf\uff0c\u6ce8\u610f\uff1aquantityCT\u662f\u5408\u7ea6\u7684\u5f20\u6570\uff0c\u4e0d\u662f\u8d27\u5e01\u6570\u91cf\n timeout=10, # \u7b49\u5f85\u8ba2\u5355\u6210\u529f\u7684\u8d85\u65f6\u65f6\u95f4\n delay=0.2, # \u68c0\u6d4b\u8ba2\u5355\u72b6\u6001\u7684\u95f4\u9694 (\u79d2)\n cancel=True, # \u672a\u5b8c\u5168\u6210\u4ea4\u662f\u5426\u53d6\u6d88\u8ba2\u5355\n callback=callback, # \u5f00\u4ed3\u6210\u529f\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n errorback=errorback, # \u5f00\u4ed3\u5931\u8d25\u89e6\u53d1\u7684\u56de\u8c03\u51fd\u6570\n newThread=False, # \u662f\u5426\u5f00\u542f\u4e00\u4e2a\u65b0\u7684\u7ebf\u7a0b\u7ef4\u62a4\u8fd9\u4e2a\u8ba2\u5355\n tag='', # \u8ba2\u5355\u6807\u7b7e\n clOrdId='', # \u5ba2\u6237\u81ea\u5b9a\u4e49\u8ba2\u5355ID\n meta={}, # \u5411\u56de\u8c03\u51fd\u6570\u4e2d\u4f20\u9012\u7684\u53c2\u6570\u5b57\u5178\n )\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Make OKX API Transactions Easier",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://github.com/pyted/okx_trade"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2398fecea8dd7de17a3e69572d5a54d22252494fcc5730c9b14efdfee5b41307",
"md5": "c72b076b354bda26daf099575db7708a",
"sha256": "0a6024d553da7522d8c7950da23cf9d40f48e578b5274c17d7d52d72aef9f5f6"
},
"downloads": -1,
"filename": "okx_trade-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c72b076b354bda26daf099575db7708a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.0",
"size": 38253,
"upload_time": "2023-10-21T07:12:58",
"upload_time_iso_8601": "2023-10-21T07:12:58.849869Z",
"url": "https://files.pythonhosted.org/packages/23/98/fecea8dd7de17a3e69572d5a54d22252494fcc5730c9b14efdfee5b41307/okx_trade-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea95d03b01475c12f23f68e458d28a53320f3f39e9137518fa2195995d580563",
"md5": "56e3490227f34428053fe96b936720f1",
"sha256": "6859f1d1115dbb81d1be13d39d5948d27476f1d6ece3da200cbcd3b1b0b6ae4c"
},
"downloads": -1,
"filename": "okx_trade-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "56e3490227f34428053fe96b936720f1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 38394,
"upload_time": "2023-10-21T07:13:01",
"upload_time_iso_8601": "2023-10-21T07:13:01.086112Z",
"url": "https://files.pythonhosted.org/packages/ea/95/d03b01475c12f23f68e458d28a53320f3f39e9137518fa2195995d580563/okx_trade-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-21 07:13:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pyted",
"github_project": "okx_trade",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "okx-trade"
}