Package: okx-trade
Okx_Trade 说明文档1 Okx_Trade介绍Okx_Trade封装了OKX中现货（SPOT)、永续合约（SWAP）的常用函数，降低量化交易的难度。2 安装Okx_TradeGITHUB:https://www.github.com/pyted/okx_tradepip3 install okx_trade3 快速开始1.获取现货现货交易BTC-USDT的价格，降价2%挂单买入，买入金额为10000USDT，挂单时间为2小时，如果超时则取消订单。fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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 > openMoneytimeout=timeout,# 等待订单成功的超时时间cancel=True,# 订单超时后是否取消)pprint(result)2.获取永续合约BTC-USDT-SWAP的价格，降价5%，采用逐仓、10倍杠杆、开仓金额10000USDT挂单，挂单时间为2小时，如果超时则取消。采用异步的方式管理这个订单，并设置订单成功或失败后的回调函数frompprintimportpprintfromokx_tradeimportOkxSWAP# 成功触发的回调函数defcallback(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)# 失败触发的回调函数deferrorback(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 > openMoneyquantityCT=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小时，超时后取消订单，并设置回调函数。frompprintimportpprintfromokx_tradeimportOkxSWAP# 成功触发的回调函数defcallback(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)# 失败触发的回调函数deferrorback(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 现货产品 OkxSPOT4.1 现货账户便捷函数：函数名说明get_balancesMap查看账户余额字典get_balances查看账户余额列表get_balance获取单个币种的余额fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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获取不可交易的现货产品列表fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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获取单个现货产品的轻量交易深度fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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线数据fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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等待订单成交fromokx_tradeimportOkxSPOTfrompprintimportpprintif__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将下单价格转化为字符串frompprintimportpprintfromokx_tradeimportOkxSPOTif__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限价单开仓fromokx_tradeimportOkxSPOTfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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市价单开仓fromokx_tradeimportOkxSPOTfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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 > openMoneytimeout=10,# 等待订单成功的超时时间（秒）delay=0.2,# 检测订单状态的间隔 (秒)cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单tag='',# 订单标签clOrdId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4.3.5 现货限价单平仓便捷函数：函数名说明close_limit限价单平仓fromokx_tradeimportOkxSPOTfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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 > openMoneytimeout=10,# 等待订单成功的超时时间（秒）delay=0.2,# 检测订单状态的间隔 (秒)cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单tag='',# 订单标签clOrdId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4.3.6 现货市价单平仓便捷函数：函数名说明close_market市价单平仓fromokx_tradeimportOkxSPOTfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5 永续合约 OkxSWAP5.1 永续账户便捷函数：函数名说明get_balance获取币种的余额set_position_mode设置持仓模式set_leverage设置杠杆get_leverage获取杠杆fromokx_tradeimportOkxSWAPfrompprintimportpprintif__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获取不可交易的永续合约产品列表fromokx_tradeimportOkxSWAPfrompprintimportpprintif__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获取单个永续合约产品的轻量交易深度fromokx_tradeimportOkxSWAPfrompprintimportpprintif__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线数据fromokx_tradeimportOkxSWAPfrompprintimportpprintif__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等待订单成交fromokx_tradeimportOkxSWAPfrompprintimportpprintif__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将下单价格转化为字符串frompprintimportpprintfromokx_tradeimportOkxSWAPif__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限价单开仓fromokx_tradeimportOkxSWAPfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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市价单开仓fromokx_tradeimportOkxSWAPfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5.3.5 永续限价单平仓便捷函数：函数名说明close_limit限价单平仓fromokx_tradeimportOkxSWAPfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5.3.6 永续市价单平仓便捷函数：函数名说明close_market市价单平仓fromokx_tradeimportOkxSWAPfrompprintimportpprintdefcallback(information):print('callback')pprint(information)deferrorback(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='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)