Package: pbinance
pbinance 说明文档 v1.0.111 pbinance设计目的pbinance是完全基于Python语言对Binance交易所REST API接口的封装，包括：现货、U本位合约、币本位合约、欧式期权等功能。本来想起名叫binance_api，但是这个名字被其他人已经申请了，就随手起名叫pbiance了之所以花了花几天的时间去写一个Binance交易所的底层Python SDK，有这么几点原因：官方推荐的Python SDK目前主要支持SPOT现货交易GITHUB很多的开源框架是对官方API的高级封装，而非底层量化交易有太多的框架，但是各个框架的函数名称调用方式等各不相同，这对于立足多平台的量化交易者有较大的学习成本，而且我个人对于非官方开源的SDK的安全性总抱有一个怀疑的态度（虽然他们写的也很好），也见过很多的的优秀项目停更，所以开发了一套量化交易的生态架构，由于各个交易所底层支持的接口类型和内容大多不相同，如果一个框架一个函数可以支持多个平台难免不能做到交易功能的精细化，但是我尽量让各个交易框架的结构相似、调用相似，这样可以极大的降低学习成本，例如如果你学会了binance_candle，仅需要几分钟的时间就可以上手okx_candle。2 下载pbinancepip install pbinance3 pbinance的例子获取现货交易的挂单信息frompbinanceimportBinancefrompprintimportpprintif__name__=='__main__':# 实例化Binance# 如果仅获取行情信息不需要key和secret，与账户交易相关的功能需要填写key和secretbinance=Binance(key='****',secret='****',)# spot表示现货 get_ticker_bookTicker获取最优挂单价格result=binance.spot.market.get_ticker_bookTicker(symbol='BTCUSDT')pprint(result)输出：>> {'code': 200,
>>  'data': {'askPrice': '22886.87000000',
>>           'askQty': '0.05096000',
>>           'bidPrice': '22886.61000000',
>>           'bidQty': '0.00045000',
>>           'symbol': 'BTCUSDT'},
>>  'msg': ''}限价单：以2美元的价格购买5个DOTUSDTfrompbinanceimportBinancefrompprintimportpprintif__name__=='__main__':# 账户与交易功能必须填写key和secretbinance=Binance(key='****',secret='****')result=binance.spot.accountTrade.set_order(symbol='DOTUSDT',# 产品名称side='BUY',# 订单方向type='LIMIT',# 订单类型price='2',# 价格quantity='5',# 数量timeInForce='GTC',# 订单的有效方式)pprint(result)>> {'code': 200,
>>  'data': {'clientOrderId': 'L8lQeRd15657si2u2zg1v6',
>>           'cummulativeQuoteQty': '0.00000000',
>>           'executedQty': '0.00000000',
>>           'fills': [],
>>           'orderId': 3258603953,
>>           'orderListId': -1,
>>           'origQty': '5.00000000',
>>           'price': '2.00000000',
>>           'selfTradePreventionMode': 'NONE',
>>           'side': 'BUY',
>>           'status': 'NEW',
>>           'symbol': 'DOTUSDT',
>>           'timeInForce': 'GTC',
>>           'transactTime': 1675654749477,
>>           'type': 'LIMIT',
>>           'workingTime': 1675654749477},
>>  'msg': ''}关于请求的说明请参考Binance官方文档，或者使用PyTed开源的高级交易架构，可以省去繁琐的官方参数查阅。4 pbinane的说明请求参数名与官方一致，返回结果均采用字典类型：{'code':<状态码:int>,'data':<主体数据:object>,'msg':<提示信息:str>}状态码200表示成功，官方原始的返回结果类型有差异，有的时候仅仅是主体数据内容，有的时候是包括状态码的字典，pbinance对官方的不规整结果做了优化，统一格式字典类型。pbinance在遇到这些状态码时，会自动延时重试多次，避免由于单次网络问题丢失请求：-1001  DISCONNECTED-1003 TOO_MANY_REQUESTS-1004 SERVER_BUSY-1007 TIMEOUT-1008 SERVER_BUSY-1016 SERVICE_SHUTTING_DOWN5 现货模块 SPOT5.1 接口总览5.1.1 账户与交易 AccountTrade接口名称函数名称测试下单set_order_test下单set_order撤销订单cancel_order撤销单一交易对的所有挂单cancel_openOrders撤消挂单再下单order_cancelReplace查询订单get_order当前挂单get_openOrders查询所有订单get_allOrdersOCO下单set_order_oco取消 OCO 订单cancel_orderList查询 OCOget_orderList查询所有 OCOget_allOrderList查询 OCO 挂单get_openOrderList账户信息get_account账户成交历史get_myTrades查询目前下单数get_rateLimit_order5.1.2 行情信息 Market接口名称函数名称测试服务器连通性get_ping获取服务器时间get_time交易规范信息get_exchangeInfo深度信息get_depth近期成交列表get_trades查询历史成交get_historicalTrades近期成交get_aggTradesK线数据get_klines当前平均价格get_avgPriceUIK线数据get_uiKlines24hr 价格变动情况get_ticker_24hr最新价格get_ticker_price当前最优挂单get_ticker_bookTicker滚动窗口价格变动统计get_ticker5.1.3 统一账户 PortfolioMargin接口名称函数名称查询统一账户信息portfolio_account统一账户资产质押率portfolio_collateralRate查询统一账户穿仓借贷金额portfolio_pmLoan偿还统一账户穿仓负债portfolio_repay5.1.4 钱包接口 Wallet接口名称函数名称系统状态get_system_status获取所有币信息get_capital_config_getall查询每日资产快照get_accountSnapshot关闭站内划转set_account_disableFastWithdrawSwitch开启站内划转set_account_enableFastWithdrawSwitch提币set_capital_withdraw_apply获取充值历史get_capital_deposit_hisrec获取提币历史get_capital_withdraw_history获取充值地址get_capital_deposit_address账户状态get_account_status账户API交易状态get_account_apiTradingStatus小额资产转换BNB历史get_asset_dribblet获取可以转换成BNB的小额资产set_asset_dust_btc小额资产转换set_asset_dust资产利息记录get_asset_assetDividend上架资产详情get_asset_assetDetail交易手续费率查询get_asset_tradeFee用户万向划转set_set_asset_transfer查询用户万向划转历史get_get_asset_transfer资金账户set_asset_get_funding_asset用户持仓set_asset_getUserAsset稳定币自动兑换划转set_asset_convert_transfer稳定币自动兑换划转查询get_asset_convert_transfer_queryByPage云算力历史记录分页查询get_asset_ledger_transfer_cloud_mining_queryByPage查询用户API Key权限get_account_apiRestrictions5.2 例子获取BTCUSDT的最新成交价frompbinanceimportBinance,SPOTfrompprintimportpprintif__name__=='__main__':# 实例化现货模块spot=SPOT(key='****',secret='****')# 等同于：spot = Binance( key='****', secret='****').spot# 获取BTCUSDT的最新成交价result=spot.market.get_ticker_price(symbol='BTCUSDT')pprint(result)输出：>> {'code': 200,
>>  'data': {'price': '22902.27000000', 'symbol': 'BTCUSDT'},
>>  'msg': ''}6 U本位合约模块 UM6.1 接口总览6.1.1 账户与交易 AccountTrade接口名称函数名称更改持仓模式set_positionSide_dual查询持仓模式get_positionSide_dual更改联合保证金模式set_multiAssetsMargin查询联合保证金模式get_multiAssetsMargin下单set_order测试下单接口set_order_test批量下单set_batchOrders查询订单get_order撤销订单cancel_order撤销全部订单cancel_allOpenOrders批量撤销订单cancel_batchOrders倒计时撤销所有订单set_countdownCancelAll查询当前挂单get_openOrder查看当前全部挂单get_openOrders查询所有订单get_allOrders账户余额V2get_balance账户信息V2get_account调整开仓杠杆set_leverage变换逐全仓模式set_marginType调整逐仓保证金set_positionMargin逐仓保证金变动历史get_positionMargin_history用户持仓风险V2get_positionRisk账户成交历史get_userTrades获取账户损益资金流水get_income杠杆分层标准get_leverageBracket持仓ADL队列估算get_adlQuantile用户强平单历史get_forceOrders合约交易量化规则指标get_apiTradingStatus用户手续费率get_commissionRate获取合约资金流水下载Idget_income_asyn通过下载Id获取合约资金流水下载链接get_income_asyn_id6.1.2 行情信息 Market接口名称函数名称测试服务器连通性 PINGget_ping获取服务器时间get_time获取交易规则和交易对get_exchangeInfo深度信息get_depth近期成交get_trades查询历史成交get_historicalTrades近期成交get_aggTradesK线数据get_klines连续合约K线数据get_continuousKlines价格指数K线数据get_indexPriceKlines标记价格K线数据get_markPriceKlines最新标记价格和资金费率get_premiumIndex查询资金费率历史get_fundingRate24hr价格变动情况get_ticker_24hr最新价格get_ticker_price当前最优挂单get_ticker_bookTicker获取未平仓合约数get_openInterest合约持仓量get_openInterestHist大户账户数多空比get_topLongShortAccountRatio大户持仓量多空比get_topLongShortPositionRatio多空持仓人数比get_globalLongShortAccountRatio合约主动买卖量get_takerlongshortRatio杠杆代币历史净值K线get_lvtKlines综合指数交易对信息get_indexInfo多资产模式资产汇率指数get_assetIndex6.1.3 统一账户 PortfolioMargin接口名称函数名称获取统一账户交易规则get_pmExchangeInfo查询统一账户账户信息get_pmAccountInfo6.2 例子查询U本位合约持仓模式frompbinanceimportBinance,UMfrompprintimportpprintif__name__=='__main__':# 实例化UM模块um=UM(key='****',secret='****')# 等同于：um = Binance( key='****', secret='****').um# 查询持仓模式result=um.accountTrade.get_positionSide_dual()pprint(result)输出：>> {'code': 200, 'data': {'dualSidePosition': True}, 'msg': ''}7 币本位合约模块 CM7.1 接口总览7.1.1 账户与交易 AccountTrade接口名称函数名称更改持仓模式set_positionSide_dual查询持仓模式get_positionSide_dual下单set_order测试下单接口set_order_test修改订单alter_order批量下单set_batchOrders批量修改订单alter_batchOrders查询订单修改历史get_orderAmendment查询订单get_order撤销订单cancel_order撤销全部订单cancel_allOpenOrders批量撤销订单cancel_batchOrders倒计时撤销所有订单set_countdownCancelAll查询当前挂单get_openOrder查看当前全部挂单get_openOrders查询所有订单get_allOrders账户余额get_balance账户信息get_account调整开仓杠杆set_leverage变换逐全仓模式set_marginType调整逐仓保证金set_positionMargin逐仓保证金变动历史get_positionMargin_history用户持仓风险get_positionRisk账户成交历史get_userTrades获取账户损益资金流水get_income交易对杠杆分层标准get_leverageBracket用户强平单历史get_forceOrders持仓ADL队列估算get_adlQuantile用户手续费率get_commissionRate7.1.2 行情信息 Market接口名称函数名称测试服务器连通性 PINGget_ping获取服务器时间get_time获取交易规则和交易对get_exchangeInfo深度信息get_depth近期成交get_trades查询历史成交get_historicalTrades近期成交get_aggTrades最新现货指数价格和Mark Priceget_premiumIndex查询永续合约资金费率历史get_fundingRateK线数据get_klines连续合约K线数据get_continuousKlines价格指数K线数据get_indexPriceKlines标记价格K线数据get_markPriceKlines24hr价格变动情况get_ticker_24hr最新价格get_ticker_price当前最优挂单get_ticker_bookTicker获取未平仓合约数get_openInterest合约持仓量get_openInterestHist大户账户数多空比get_topLongShortAccountRatio大户持仓量多空比get_topLongShortPositionRatio多空持仓人数比get_globalLongShortAccountRatio合约主动买卖量get_takerBuySellVol基差get_basis7.1.3 统一账户 PortfolioMargin接口名称函数名称获取统一账户交易规则get_pmExchangeInfo查询统一账户账户信息get_pmAccountInfo7.2 例子查询全部当前挂单frompbinanceimportBinance,CMfrompprintimportpprintif__name__=='__main__':# 实例化CM模块cm=CM(key='****',secret='****')# 等同于：cm = Binance( key='****', secret='****').cm# 查询全部当前挂单result=cm.accountTrade.get_openOrders()pprint(result)输出：>> {'code': 200, 'data': [], 'msg': ''}8 欧式期权 EO8.1 接口总览8.1.1 账户与交易 AccountTrade接口名称函数名称账户信息get_account资金划转set_transfer下单set_order批量下单set_batchOrders撤销订单cancel_order批量撤销订单cancel_batchOrders撤销单交易对全部订单cancel_allOpenOrders撤销特定标的全部订单cancel_allOpenOrdersByUnderlying查询当前挂单get_openOrders查询历史订单get_historyOrders仓位信息get_position账户成交历史get_userTrades用户行权历史get_exerciseRecord获取账户资金流水get_bill8.1.2 行情信息 Market接口名称函数名称测试服务器连通性 PINGget_ping获取服务器时间get_time获取交易规则和交易对get_exchangeInfo深度信息get_depth近期成交get_trades查询历史成交get_historicalTradesK线数据get_klines查询期权标记价格get_mark24hr价格变动情况get_ticker标的最新价格get_index历史行权记录get_exerciseHistory合约持仓量get_openInterest8.1.3 市商 MarketMaker接口名称函数名称保证金账户信息get_marginAccount设置MMP规则set_mmpSet获取MMP规则get_mmpSet重置MMP状态set_mmpReset设置倒计时取消所有订单配置set_countdownCancelAll获得倒计时自动取消所有订单配置get_countdownCancelAll重置倒计时取消所有订单心跳set_countdownCancelAllHeartBeat8.2 例子获取交易规则和交易对frompbinanceimportBinance,EOfrompprintimportpprintif__name__=='__main__':# 实例化EO模块eo=EO(key='****',secret='****')# 等同于：eo = Binance( key='****', secret='****').eo# 获取交易规则和交易对result=eo.market.get_exchangeInfo()pprint(result)输出：>> {'code': 200,
>>  'data': {'optionAssets': [{'id': 1, 'name': 'USDT'}],
>>           'optionContracts': [{'baseAsset': 'SOL',
>>                                'id': 1,
>>                                'quoteAsset': 'USDT',
>>                                'settleAsset': 'USDT',
>>                                'underlying': 'SOLUSDT'},
>>                               {'baseAsset': 'BTC',
>>                                'id': 2,
>>                                'quoteAsset': 'USDT',
>>                                'settleAsset': 'USDT',
>>                                'underlying': 'BTCUSDT'},
>>                               {'baseAsset': 'ETH',
>>                                'id': 3,
>>                                'quoteAsset': 'USDT',
>>                                'settleAsset': 'USDT',
>>                                'underlying': 'ETHUSDT'},
>>                               {'baseAsset': 'BNB',
>>                                'id': 4,
>>                                'quoteAsset': 'USDT',
>>                                'settleAsset': 'USDT',
>>                                'underlying': 'BNBUSDT'}],
>>           'optionSymbols': [{'contractId': 3,
>>                              'expiryDate': 1677225600000,
>>                              'filters': [{'filterType': 'PRICE_FILTER',
>>                                           'maxPrice': '923.9',
>>                                           'minPrice': '728.9',
>>                                           'tickSize': '0.1'},
>>                                          {'filterType': 'LOT_SIZE',
>>                                           'maxQty': '1000',
>>                                           'minQty': '0.01',
>>                                           'stepSize': '0.01'}],
>>                              'id': 2474,
>>                              'initialMargin': '0.15000000',
>>                              'maintenanceMargin': '0.07500000',
>>                              'makerFeeRate': '0.00020000',
>>                              'maxQty': '1000',
>>                              'minInitialMargin': '0.10000000',
>>                              'minMaintenanceMargin': '0.05000000',
>>                              'minQty': '0.01',
>>                              'priceScale': 1,
>>                              'quantityScale': 2,
>>                              'quoteAsset': 'USDT',
>>                              'side': 'CALL',
>>                              'strikePrice': '800.00000000',
>>                              'symbol': 'ETH-230224-800-C',
>>                              'takerFeeRate': '0.00020000',
>>                              'underlying': 'ETHUSDT',
>>                              'unit': 1},
>>                              ... ... 
>>                             ],
>>           'rateLimits': [{'interval': 'MINUTE',
>>                           'intervalNum': 1,
>>                           'limit': 400,
>>                           'rateLimitType': 'REQUEST_WEIGHT'},
>>                          {'interval': 'MINUTE',
>>                           'intervalNum': 1,
>>                           'limit': 100,
>>                           'rateLimitType': 'ORDERS'},
>>                          {'interval': 'SECOND',
>>                           'intervalNum': 10,
>>                           'limit': 30,
>>                           'rateLimitType': 'ORDERS'}],
>>           'serverTime': 1675657383732,
>>           'timezone': 'UTC'},
>>  'msg': ''}9 其他 Other9.1 接口总览9.1.1 子母账户 SubAccount接口名称函数名称创建虚拟子账户（适用主账户）set_virtualSubAccount查询子账户列表（适用主账户）get_list查询子账户现货资金划转历史get_transfer_history查询子账户合约资金划转历史get_futures_internalTransfer执行子账户合约资金划转set_futures_internalTransfer查询子账户资产get_assets查询子账户现货资产汇总get_spotSummary获取子账户充值地址get_capital_deposit_subAddress获取子账户充值记录get_capital_deposit_subHisrec查询子账户Margin/Futures状态get_status为子账户开通Marginset_margin_enable查询子账户Margin账户详情get_margin_account查询子账户Margin账户汇总get_margin_accountSummary为子账户开通Futuresset_futures_enable子账户Futures划转set_futures_transfer子账户Margin划转set_margin_transfer向共同主账户下的子账户主动划转set_transfer_subToSub向主账户主动划转set_transfer_subToMaster查询子账户划转历史get_transfer_subUserHistory子母账户万能划转set_universalTransfer查询子母账户万能划转历史get_universalTransfer查询子账户Futures账户详情V2get_futures_account查询子账户Futures账户汇总V2get_futures_accountSummary查询子账户合约持仓信息V2get_futures_positionRisk为子账户开通杠杆代币set_blvt_enable为子账户API Key开启/关闭IP白名单sert_subAccountApi_ipRestriction为子账户API Key添加IP白名单set_subAccountApi_ipRestriction_ipList查询子账户API Key IP白名单get_subAccountApi_ipRestriction删除子账户API Key IP白名单delete_subAccountApi_ipRestriction_ipList取得子帳戶API key IP三方名單get_apiRestrictions_ipRestriction_thirdPartyList为子账户API Key更新IP白名单set_subAccountApi_ipRestriction投资人账户为托管子账户充值资产set_managed_subaccount_deposit投资人账户查询托管子账户资产get_managed_subaccount_asset投资人账户为托管子账户提币资产set_managed_subaccount_withdraw查询托管子账户资产快照get_managed_subaccount_accountSnapshot9.1.2 币安宝 Savings接口名称函数名称获取活期产品列表get_daily_product_list获取用户当日剩余活期可申购余额get_daily_userLeftQuota申购活期产品set_daily_purchase获取用户当日活期可赎回余额get_daily_userRedemptionQuota赎回活期产品set_daily_redeem用户活期产品持仓get_daily_token_position查询定期/活动产品列表get_project_list申购定期/活动产品set_customizedFixed_purchase用户定期/活动持仓get_project_position_list币安宝账户信息get_union_account获取申购记录get_union_purchaseRecord获取赎回记录get_union_redemptionRecord获取利息历史get_union_interestHistory定期/活动持仓转活期持仓set_positionChanged9.1.3 Staking产品 Staking接口名称函数名称查询Staking产品列表get_productList申购锁仓产品set_purchase赎回锁仓产品set_redeem查看个人持仓get_position查看Staking历史记录get_stakingRecord设置自动续期set_setAutoStaking查询Staking个人剩余额度Aget_personalLeftQuota9.1.4 矿池 Mining接口名称函数名称获取算法get_pub_algoList获取币种get_pub_coinList请求矿工列表明细get_worker_detail请求矿工列表get_worker_list收益列表get_payment_list其他收益列表get_payment_other算力转让详情列表get_hash_transfer_config_details算力转让列表get_hash_transfer_config_details_list算力转让详情get_hash_transfer_profit_details算力转让请求set_hash_transfer_config取消算力转让设置set_hash_transfer_config_cancel统计列表get_statistics_user_status账号列表get_statistics_user_list矿池账户收益列表get_payment_uid9.1.5 合约 Future接口名称函数名称合约资金划转set_transfer获取合约资金划转历史get_transfer混合保证金借款历史get_loan_borrow_history混合保证金还款历史get_loan_repay_history混合保证金钱包V2get_loan_wallet混合保证金调整质押率历史get_loan_adjustCollateral_history混合保证金强平历史get_loan_liquidationHistory混合保证金利息收取历史get_loan_interestHistory9.1.6 合约策略交易 FuturesAlgo接口名称函数名称成交量份额参与算法set_newOrderVp时间加权平均价格策略set_newOrderTwap取消策略订单delete_order查询当前策略订单挂单get_openOrders查询历史策略订单get_historicalOrders查询执行子订单get_subOrders9.1.7 杠杆代币 Blvt接口名称函数名称杠杆代币信息get_tokenInfo申购代币set_subscribe查询申购记录get_subscribe_record赎回代币set_redeem查询赎回记录get_redeem_record查询用户每日申购赎回限额get_userLimit9.1.8 币安挖矿 Bswap接口名称函数名称获取所有流动资金池get_pools获取流动资金池具体信息get_liquidity添加流动性set_liquidityAdd移除流动性set_liquidityRemove获取流动性操作记录get_liquidityOps获取报价get_quote交易set_swap获取交易记录get_swap获取币对池的配置信息get_poolConfigure添加流动性的试算get_addLiquidityPreview移除流动性的试算get_removeLiquidityPreview查询未领取的奖励数量get_unclaimedRewards领取奖励set_claimRewards获取已领取奖励记录set_claimedHistory9.1.9 法币 Fiat接口名称函数名称获取法币充值/提现历史记录get_orders获取法币支付历史记录get_payments9.1.10 C2C接口 C2c接口名称函数名称获取 C2C 交易历史记录get_orderMatch_listUserOrderHistory9.1.11 VIP借币 VIPLoans接口名称函数名称查询VIP借币借款中订单get_ongoing_ordersVIP借币还款set_repay查询VIP借币还款记录历史get_repay_history9.1.12 质押借币 CryptoLoans接口名称函数名称获取质押借币资金流水get_income借币 - 质押借币借贷set_borrow借币 - 查询质押借币历史记录get_borrow_history借币 - 查询借款中订单列表get_ongoing_orders还款 - 质押借币还款set_repay还款 - 查询还款记录历史get_repay_history调整质押率 - 质押借币调整质押率set_adjust_ltv调整质押率 - 查询质押率调整历史get_ltv_adjustment_history查询可借币种数据get_loanable_data查询抵押币种数据get_collateral_data查询抵押币种还款汇率get_repay_collateral_rate质押借币自定义补仓质押率set_customize_margin_call9.1.13 Pay接口 Pay接口名称函数名称获取 Pay 交易历史记录get_transactions9.1.14 闪兑 Convert接口名称函数名称查询可交易币对信息get_exchangeInfo查询可交易币种精度get_assetInfo发送获取报价请求set_getQuote接受报价set_acceptQuote查询订单状态get_orderStatus获取闪兑交易记录get_tradeFlow9.1.15 返佣 Rebate接口名称函数名称获取现货返佣历史记录get_taxQuery9.1.16 NFT接口 Nft接口名称函数名称获取 NFT 资金流水记录get_history_transactions获取 NFT 充值记录get_history_deposit获取 NFT 提现记录get_history_withdraw获取 NFT 资产get_user_getAsset9.1.17 币安码 GiftCard接口名称函数名称创建币安码set_createCode兑现币安码set_redeemCode验证币安码get_verify获取RSA Public Keyget_cryptography_rsa_public_key购买币安码set_buyCode获取货币使用限制get_buyCode_token_limit9.2 例子获取混合保证金调整质押率历史frompbinanceimportBinance,Otherfrompprintimportpprintif__name__=='__main__':# 实例化other模块other=Other(key='****',secret='****')# 等同于：other = Binance( key='****', secret='****').other# 获取混合保证金调整质押率历史result=other.future.get_loan_adjustCollateral_history()pprint(result)输出：>> {'code': 200, 'data': {'rows': [], 'total': 0}, 'msg': ''}