Package: binance-trade
Binance_trade 说明文档version:1.0.41 Binance_trade 介绍Biance_trade基于pbinance与binance_candle封装了现货（SPOT）、U本位（UM）与币本位（CM）中常用的函数，降低量化交易难度。2 安装Binance_tradepip3 install binance_trade3 快速开始1.获取现货现货交易BTCUSDT的价格，降价2%挂单买入，买入金额为1000USDT，挂单时间为2小时，如果超时则取消订单。frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':binanceSPOT=BinanceSPOT(key='****',secret='****',)# 产品symbol='BTCUSDT'# 开仓金额openMoney=10000# 购买价格askPrice=binanceSPOT.market.get_bookTicker(symbol=symbol)['data']['askPrice']# 卖1价格askPrice=float(askPrice)openPrice=askPrice*0.98# 降价2%# 挂单时间timeout=60*60*2# 单位秒# 超时是否取消订单cancel=True# 是否堵塞模式block=True# 限价单开仓result=binanceSPOT.trade.open_limit(symbol=symbol,# 产品openPrice=openPrice,# 开仓价格openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级：quantity > openMoneytimeout=timeout,# 等待订单成功的超时时间cancel=True,# 订单超时后是否取消)pprint(result)2.获取U本位合约BTCUSDT的价格，降价5%，采用逐仓、10倍杠杆、开仓金额1000USDT挂单，挂单时间为2小时，如果超时则取消。采用异步的方式管理这个订单，并设置订单成功或失败后的回调函数frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品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 = {'symbol': <产品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__':binanceUM=BinanceUM(key='****',secret='****')# 产品symbol='BTCUSDT'# 开仓金额openMoney=10000# 购买价格askPrice=binanceUM.market.get_bookTicker(symbol=symbol)['data']['askPrice']# 卖1价格askPrice=float(askPrice)openPrice=askPrice*0.95# 降价5%# 限价单开仓binanceUM.trade.open_limit(symbol=symbol,# 产品openPrice=openPrice,# 开仓价格marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单leverage=10,# 开仓金额openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级：quantity > openMoneyquantity=None,# 开仓数量 None：用openMoney计算可以购买的最大数量block=True,# 是否以堵塞的模式timeout=60*60*2,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)3.对于U本位合约以当前BTCUSDT的价格，止盈20%挂单买入平空，超时时间2小时，超时后取消订单，并设置回调函数。frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品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 = {'symbol': <产品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__':binanceUM=BinanceUM(key='****',secret='****')# 产品symbol='BTCUSDT'# 限价单平仓binanceUM.trade.close_limit(symbol=symbol,# 产品marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单closePrice=None,# 平仓价格 平仓价格closePrice与止盈率tpRate必须添加一个 优先级closePrice > tpRatetpRate=0.2,# 止盈率# 平多 positionSide="LONG":   closePrice = askPrice * (1 + abs(tpRate))# 平空 positionSide="SHORT":  closePrice = askPrice * (1 - abs(tpRate))quantity='all',# 平仓数量，'all' 表示全部block=True,# 是否以堵塞的模式timeout=60*60*2,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 平仓成功触发的回调函数errorback=errorback,# 平仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4 现货产品 BinanceSPOT4.1 现货账户便捷函数：函数名说明get_account获取账户信息get_balances获取全部现货余额get_balance获取单个现货余额frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 获取账户信息account=binanceSPOT.account.get_account()pprint(account)# 获取全部现货余额balances=binanceSPOT.account.get_balances()pprint(balances)# 获取单个现货余额balance=binanceSPOT.account.get_balance(symbol='BTCUSDT',base_asset='USDT')# 等价于： # balances = binanceSPOT.account.get_balance(asset='BTC')pprint(balance)4.2 现货行情4.2.1 现货交易规则信息便捷函数：函数名说明get_exchangeInfos获取全部交易规则与交易对get_exchangeInfo获取单个交易规则与交易对get_symbols_trading_on获取可以交易的产品列表get_symbols_trading_off获取不可交易的产品列表frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 获取全部交易规则与交易对exchangeInfos=binanceSPOT.market.get_exchangeInfos()pprint(exchangeInfos)# 获取单个交易规则与交易对exchangeInfo=binanceSPOT.market.get_exchangeInfo(symbol='BTCUSDT')pprint(exchangeInfo)# 获取可以交易的产品列表symbols_trading_on=binanceSPOT.market.get_symbols_trading_on()pprint(symbols_trading_on)# 获取不可交易的产品列表get_symbols_trading_off=binanceSPOT.market.get_symbols_trading_off()pprint(get_symbols_trading_off)4.2.2 现货实时价格便捷函数：函数名说明get_bookTickersMap获取全部产品的最优挂单字典(包含不可交易的产品)get_bookTickers获取全部产品的最优挂单列表(包含不可交易的产品)get_bookTicker获取单个产品的最优挂单get_tickerPricesMap获取全部产品的最新价格字典(包含不可交易的产品)get_tickerPrices获取全部产品的最新价格列表(包含不可交易的产品)get_tickerPrice获取单个产品的最新价格get_depth获取单个产品的深度交易frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 获取全部产品的最优挂单bookTickersMap=binanceSPOT.market.get_bookTickersMap()pprint(bookTickersMap)bookTickers=binanceSPOT.market.get_bookTickers()pprint(bookTickers)# 获取单个产品的最优挂单bookTicker=binanceSPOT.market.get_bookTicker(symbol='BTCUSDT')pprint(bookTicker)# 获取全部产品的最新价格tickerPricesMap=binanceSPOT.market.get_tickerPricesMap()pprint(tickerPricesMap)tickerPrices=binanceSPOT.market.get_tickerPrices()pprint(tickerPrices)# 获取单个产品的最新价格tickerPrice=binanceSPOT.market.get_tickerPrice(symbol='BTCUSDT')pprint(tickerPrice)# 获取单个产品的深度交易depth=binanceSPOT.market.get_depth(symbol='BTCUSDT',limit=100)pprint(depth)4.2.3 现货历史K线便捷函数：函数名说明get_history_candle获取产品的历史K线数据get_history_candle_latest获取产品指定数量的最新历史K线数据get_history_candle_by_date获取产品指定日期的历史K线数据frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 获取产品的历史K线数据history_candle=binanceSPOT.market.get_history_candle(symbol='BTCUSDT',start='2023-01-01 00:00:00',end='2023-01-01 23:59:00',bar='1m',)pprint(history_candle)# 获取产品指定数量的最新历史K线数据history_candle_latest=binanceSPOT.market.get_history_candle_latest(symbol='BTCUSDT',length=1440,bar='1m',)pprint(history_candle_latest)# 获取产品指定日期的历史K线数据history_candle_by_date=binanceSPOT.market.get_history_candle_by_date(symbol='BTCUSDT',date='2023-01-01',bar='1m',)pprint(history_candle_by_date)4.3 现货交易4.3.1 现货基础订单便捷函数：函数名说明set_order普通下单购买get_order查询订单get_openOrders查看全部当前全部挂单get_openOrder查询单个产品当前挂单cancel_order撤销订单wait_order_FILLED等待订单成交frombinance_tradeimportBinanceSPOTfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 普通下单购买set_order=binanceSPOT.trade.set_order(symbol='xxx',side='BUY',type='LIMIT',timeInForce='GTC',quantity='xxx',price='xxx',)pprint(set_order)# 查询订单order=binanceSPOT.trade.get_order(symbol='xxx',orderId='xxx')pprint(order)# 查看全部当前全部挂单openOrders=binanceSPOT.trade.get_openOrders()pprint(openOrders)# 查询单个产品当前挂单openOrder=binanceSPOT.trade.get_openOrder(symbol='xxx')pprint(openOrder)# 撤销订单binanceSPOT.trade.cancel_order(symbol='xxx',orderId='xxx',)# 等待订单成交binanceSPOT.trade.wait_order_FILLED(symbol='xxx',orderId='xxx',)4.3.2 现货下单价格与数量便捷函数：函数名说明round_quantity圆整下单数量round_price圆整开仓价格get_quantity根据开仓金额、开仓价格与杠杆计算最大可开仓数量quantity_to_f将下单数量转化为字符串price_to_f将下单价格转化为字符串frompprintimportpprintfrombinance_tradeimportBinanceSPOTif__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)# 圆整下单数量round_quantity_result=binanceSPOT.trade.round_quantity(quantity=100.00023234234234,symbol='MANAUSDT',)pprint(round_quantity_result)# 圆整下单价格round_price_result=binanceSPOT.trade.round_price(price=20.123123123,symbol='MANAUSDT',type='FLOOR',# FLOOR:向下圆整 CEIL:向上圆整)pprint(round_price_result)# 根据开仓金额、开仓价格与杠杆计算最大可开仓数量get_quantity_result=binanceSPOT.trade.get_quantity(openPrice=2.123123,openMoney=20,symbol='MANAUSDT',leverage=1)pprint(get_quantity_result)# 将下单数量转化为字符串quantity_to_f_result=binanceSPOT.trade.quantity_to_f(quantity=get_quantity_result['data'],symbol='MANAUSDT',)pprint(quantity_to_f_result)# 将下单价格转化为字符串price_to_f_result=binanceSPOT.trade.price_to_f(price=round_price_result['data'],symbol='MANAUSDT',)pprint(price_to_f_result)4.3.3 现货限价单开仓便捷函数：函数名说明open_limit限价单开仓frombinance_tradeimportBinanceSPOTfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品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 = {'symbol': <产品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__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)symbol='PHAUSDT'# 测试产品openMoney=15# 购买金额askPrice=binanceSPOT.market.get_bookTicker(symbol=symbol)['data']['askPrice']# 卖1价格askPrice=float(askPrice)openPrice=askPrice*0.8# 购买价格为卖1价的8折，测试挂单# 限价单开仓binanceSPOT.trade.open_limit(symbol=symbol,# 产品openPrice=openPrice,# 开仓价格openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级：quantity > openMoneyquantity=None,# 开仓数量 None：用openMoney计算可以购买的最大数量block=True,# 是否以堵塞的模式timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4.3.4 现货市价单开仓便捷函数：函数名说明open_market市价单开仓frombinance_tradeimportBinanceSPOTfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <open_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <open_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)symbol='xxxx'# 测试产品 可以选择：PHAUSDTopenMoney=15# 购买金额# 市价单开仓binanceSPOT.trade.open_market(symbol=symbol,# 产品openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个quantity=None,# 开仓数量 None：用openMoney计算可以购买的最大数量timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=False,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4.3.5 现货限价单平仓便捷函数：函数名说明close_limit限价单平仓frombinance_tradeimportBinanceSPOTfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_limit中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_limit中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)symbol='PHAUSDT'# 测试产品base_asset='USDT'# 产品的基础货币# 限价单平仓binanceSPOT.trade.close_limit(symbol=symbol,# 产品base_asset=base_asset,# 产品的基础货币closePrice=None,# 平仓价格 平仓价格closePrice与止盈率tpRate必须添加一个 优先级closePrice > tpRatetpRate=0.05,# 以(当前实时价格 * (1 + tpRate)) 作为平仓价格quantity='all',# 平仓数量，'all' 表示全部block=True,# 是否以堵塞的模式timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 平仓成功触发的回调函数errorback=errorback,# 平仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)4.3.6 现货市价单平仓便捷函数：函数名说明close_market市价单平仓frombinance_tradeimportBinanceSPOTfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceSPOT=BinanceSPOT(key=key,secret=secret)symbol='xxxx'# 测试产品 可以选择：PHAUSDTbase_asset='USDT'# 产品的基础货币# 市价单平仓binanceSPOT.trade.close_market(symbol=symbol,# 产品base_asset=base_asset,# 产品的基础货币quantity='all',# 平仓数量，'all' 表示全部timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 平仓成功触发的回调函数errorback=errorback,# 平仓失败触发的回调函数newThread=False,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5 U本位合约 BinanceUM便捷函数：函数名说明get_account获取账户信息get_balances获取账户全部余额get_balance获取账户单个货币余额set_leverage调整开仓杠杆set_marginType更改持仓模式get_positions获取全部产品的持仓信息get_position获取单个产品的持仓信息5.1 U本位账户frombinance_tradeimportBinanceUMfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 获取账户信息account=binanceUM.account.get_account()pprint(account)# 获取账户全部余额balances=binanceUM.account.get_balances()pprint(balances)# 获取账户单个货币余额balance=binanceUM.account.get_balance(asset='BTC')pprint(balance)# 调整开仓杠杆leverage=binanceUM.account.set_leverage(symbol='BTCUSDT',leverage=1)pprint(leverage)# 更改持仓模式marginType=binanceUM.account.set_marginType(symbol='BTCUSDT',marginType='ISOLATED')pprint(marginType)# 获取全部产品的持仓信息positions=binanceUM.account.get_positions()pprint(positions)# 获取单个产品的持仓信息position=binanceUM.account.get_position(symbol='BTCUSDT')pprint(position)5.2 U本位行情5.2.1 U本位交易规则信息便捷函数：函数名说明get_exchangeInfos获取全部交易规则与交易对get_exchangeInfo获取单个交易规则与交易对get_symbols_trading_on获取可以交易的产品列表get_symbols_trading_off获取不可交易的产品列表frombinance_tradeimportBinanceUMfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 获取全部交易规则与交易对exchangeInfos=binanceUM.market.get_exchangeInfos()pprint(exchangeInfos)# 获取单个交易规则与交易对exchangeInfo=binanceUM.market.get_exchangeInfo(symbol='BTCUSDT')pprint(exchangeInfo)# 获取可以交易的产品列表symbols_trading_on=binanceUM.market.get_symbols_trading_on()pprint(symbols_trading_on)# 获取不可交易的产品列表get_symbols_trading_off=binanceUM.market.get_symbols_trading_off()pprint(get_symbols_trading_off)5.2.2 U本位实时价格便捷函数：函数名说明get_bookTickersMap获取全部产品的最优挂单字典(包含不可交易的产品)get_bookTickers获取全部产品的最优挂单列表(包含不可交易的产品)get_bookTicker获取单个产品的最优挂单get_tickerPricesMap获取全部产品的最新价格字典(包含不可交易的产品)get_tickerPrices获取全部产品的最新价格列表(包含不可交易的产品)get_tickerPrice获取单个产品的最新价格get_depth获取单个产品的深度交易frombinance_tradeimportBinanceUMfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 获取全部产品的最优挂单bookTickersMap=binanceUM.market.get_bookTickersMap()pprint(bookTickersMap)bookTickers=binanceUM.market.get_bookTickers()pprint(bookTickers)# 获取单个产品的最优挂单bookTicker=binanceUM.market.get_bookTicker(symbol='BTCUSDT')pprint(bookTicker)# 获取全部产品的最新价格tickerPricesMap=binanceUM.market.get_tickerPricesMap()pprint(tickerPricesMap)tickerPrices=binanceUM.market.get_tickerPrices()pprint(tickerPrices)# 获取单个产品的最新价格tickerPrice=binanceUM.market.get_tickerPrice(symbol='BTCUSDT')pprint(tickerPrice)# 获取单个产品的深度交易depth=binanceUM.market.get_depth(symbol='BTCUSDT',limit=100)pprint(depth)5.2.3 U本位历史K线便捷函数：函数名说明get_history_candle获取产品的历史K线数据get_history_candle_latest获取产品指定数量的最新历史K线数据get_history_candle_by_date获取产品指定日期的历史K线数据frombinance_tradeimportBinanceUMfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 获取产品的历史K线数据history_candle=binanceUM.market.get_history_candle(symbol='BTCUSDT',start='2023-01-01 00:00:00',end='2023-01-01 23:59:00',bar='1m',)pprint(history_candle)# 获取产品指定数量的最新历史K线数据history_candle_latest=binanceUM.market.get_history_candle_latest(symbol='BTCUSDT',length=1440,bar='1m',)pprint(history_candle_latest)# 获取产品指定日期的历史K线数据history_candle_by_date=binanceUM.market.get_history_candle_by_date(symbol='BTCUSDT',date='2023-01-01',bar='1m',)pprint(history_candle_by_date)5.3 U本位交易5.3.1 U本位基础订单便捷函数：函数名说明set_order普通下单购买get_order查询订单get_openOrders查看全部当前全部挂单get_openOrder查询单个产品当前挂单cancel_order撤销订单wait_order_FILLED等待订单成交frombinance_tradeimportBinanceUMfrompprintimportpprintif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 普通下单购买set_order=binanceUM.trade.set_order(symbol='xxx',side='BUY',type='LIMIT',positionSide='LONG',timeInForce='GTC',quantity='xxx',price='xxx',)pprint(set_order)# 查询订单order=binanceUM.trade.get_order(symbol='xxx',orderId='xxx')pprint(order)# 查看全部当前全部挂单openOrders=binanceUM.trade.get_openOrders()pprint(openOrders)# 查询单个产品当前挂单openOrder=binanceUM.trade.get_openOrder(symbol='xxx')pprint(openOrder)# 撤销订单binanceUM.trade.cancel_order(symbol='xxx',orderId='xxx',)# 等待订单成交binanceUM.trade.wait_order_FILLED(symbol='xxx',orderId='xxx',)5.3.2 U本位下单价格与数量便捷函数：函数名说明round_quantity圆整下单数量round_price圆整开仓价格get_quantity根据开仓金额、开仓价格与杠杆计算最大可开仓数量quantity_to_f将下单数量转化为字符串price_to_f将下单价格转化为字符串frompprintimportpprintfrombinance_tradeimportBinanceUMif__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)# 圆整下单数量round_quantity_result=binanceUM.trade.round_quantity(quantity=100.00023234234234,symbol='MANAUSDT',)pprint(round_quantity_result)# 圆整下单价格round_price_result=binanceUM.trade.round_price(price=20.123123123,symbol='MANAUSDT',type='FLOOR',# FLOOR:向下圆整 CEIL:向上圆整)pprint(round_price_result)# 根据开仓金额、开仓价格与杠杆计算最大可开仓数量get_quantity_result=binanceUM.trade.get_quantity(openPrice=2.123123,openMoney=20,symbol='MANAUSDT',leverage=1)pprint(get_quantity_result)# 将下单数量转化为字符串quantity_to_f_result=binanceUM.trade.quantity_to_f(quantity=get_quantity_result['data'],symbol='MANAUSDT',)pprint(quantity_to_f_result)# 将下单价格转化为字符串price_to_f_result=binanceUM.trade.price_to_f(price=round_price_result['data'],symbol='MANAUSDT',)pprint(price_to_f_result)5.3.3 U本位限价单开仓便捷函数：函数名说明open_limit限价单开仓frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品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 = {'symbol': <产品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__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)symbol='BATUSDT'# 测试产品openMoney=15# 购买金额askPrice=binanceUM.market.get_bookTicker(symbol=symbol)['data']['askPrice']# 卖1价格askPrice=float(askPrice)openPrice=askPrice*0.8# 购买价格为卖1价的8折，测试挂单# 限价单开仓binanceUM.trade.open_limit(symbol=symbol,# 产品openPrice=openPrice,# 开仓价格marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单leverage=1,# 开仓杠杆openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个 优先级：quantity > openMoneyquantity=None,# 开仓数量 None：用openMoney计算可以购买的最大数量block=True,# 是否以堵塞的模式timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5.3.4 U本位市价单开仓便捷函数：函数名说明open_market市价单开仓frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <open_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <open_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)symbol='xxxx'# 测试产品 可以选择：BATUSDTopenMoney=15# 购买金额# 市价单开仓binanceUM.trade.open_market(symbol=symbol,# 产品marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单openMoney=openMoney,# 开仓金额 开仓金额openMoney和开仓数量quantity必须输入其中一个leverage=1,# 开仓杠杆quantity=None,# 开仓数量 None：用openMoney计算可以购买的最大数量timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 开仓成功触发的回调函数errorback=errorback,# 开仓失败触发的回调函数newThread=False,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5.3.5 U本位限单价平仓便捷函数：函数名说明close_limit限价单平仓frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_limit中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_limit中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)symbol='BATUSDT'# 测试产品# 限价单平仓binanceUM.trade.close_limit(symbol=symbol,# 产品marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单closePrice=None,# 平仓价格 平仓价格closePrice与止盈率tpRate必须添加一个 优先级closePrice > tpRatetpRate=0.05,# 止盈率# 平多 positionSide="LONG":   closePrice = askPrice * (1 + abs(tpRate))# 平空 positionSide="SHORT":  closePrice = askPrice * (1 - abs(tpRate))quantity='all',# 平仓数量，'all' 表示全部block=True,# 是否以堵塞的模式timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 平仓成功触发的回调函数errorback=errorback,# 平仓失败触发的回调函数newThread=True,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)5.3.6 U本位市价单平仓便捷函数：函数名说明close_market市价单平仓frombinance_tradeimportBinanceUMfrompprintimportpprint# 成功触发的回调函数defcallback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('callback')pprint(information)# 失败触发的回调函数deferrorback(information):''':param information: 交易过程信息字典information = {'symbol': <产品ID>,'status': <订单状态>,'meta': <传递过来的参数>,'request_param': <发送下单请求的具体参数>,'func_param': <close_market中的参数>,'get_order_result': <获取订单状态的结果>,'set_order_result': <下单提交的结果>,'error_result': <异常信息>,'cancel_result': <取消订单的结果>,}'''print('errorback')pprint(information)if__name__=='__main__':key='****'secret='****'binanceUM=BinanceUM(key=key,secret=secret)symbol='xxxx'# 测试产品 可以选择：BATUSDT# 市价单平仓binanceUM.trade.close_market(symbol=symbol,# 产品marginType='ISOLATED',# 保证金模式： ISOLATED: 逐仓 CROSSED: 全仓positionSide='LONG',# 持仓方向 LONG: 多单 SHORT: 空单quantity='all',# 平仓数量，'all' 表示全部timeout=10,# 等待订单成功的超时时间delay=0.2,# 间隔多少秒检测订单是否成功cancel=True,# 订单超时后是否取消callback=callback,# 平仓成功触发的回调函数errorback=errorback,# 平仓失败触发的回调函数newThread=False,# 是否开启一个新的线程维护这个订单newClientOrderId='',# 客户自定义订单IDmeta={},# 向回调函数中传递的参数字典)6 币本位合约 BinanceCM币本位合约的使用方式与U本位相同，类名为BinanceCMfrombinance_tradeimportBinanceCMif__name__=='__main__':binanceCM=BinanceCM(key='****',secret='****',)# binanceCM.account.xxxx# binanceCM.market.xxxx# binanceCM.trade.xxxx