Bitpanda全局交换API异步Python客户端

bitpanda-aio的Python项目详细描述


比特熊猫AIO

bitpanda-aio是一个python库,提供对Bitpanda Global Exchange API的访问。库实现了bitpanda的rest api和websockets。

bitpanda-aio被设计为一个异步库,利用了python的现代特性和支持异步库(主要是async websocketsaiohttp)。

功能

  • 访问完整的Bitpanda的Rest API(帐户详细信息、市场数据、订单管理等)和WebSocket(帐户订阅源、市场数据订阅源、订单簿订阅源等)
  • 自动连接管理(远程终止后重新连接,…)
  • 捆绑在一个或多个并行处理的WebSocket中的频道
  • 精益架构为未来的扩展和定制奠定了基础
  • 以最佳性能为目标的完全异步设计

安装

pip install bitpanda-aio

先决条件

由于库使用的依赖项和python特性,请确保使用python3.63.7

在开始使用bitpanda-aio之前,必须注意:

  1. 从Bitpanda全球交换帐户下载Bitpanda API密钥
  2. 生成用于保护SSL连接的证书。证书certificate.pem可以通过
  3. 轻松生成
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out certificate.pem

示例

rest api

importasyncioimportpathlibimportloggingimportdatetimefrombitpanda.BitpandaClientimportBitpandaClientfrombitpanda.PairimportPairfrombitpanda.enumsimportOrderSide,TimeUnitlogger=logging.getLogger("bitpanda")logger.setLevel(logging.DEBUG)logger.addHandler(logging.StreamHandler())asyncdefrun():certificate_path=pathlib.Path(__file__).with_name("certificate.pem")api_key="<YOUR_API_KEY>"client=BitpandaClient(certificate_path,api_key)print("Account balance:")awaitclient.get_account_balances()print("Account fees:")awaitclient.get_account_fees()print("Account orders:")awaitclient.get_account_orders()print("Account order:")awaitclient.get_account_order("1")print("Create market order:")awaitclient.create_market_order(Pair("BTC","EUR"),OrderSide.BUY,"1")print("Create limit order:")awaitclient.create_limit_order(Pair("BTC","EUR"),OrderSide.BUY,"10","10")print("Create stop loss order:")awaitclient.create_stop_limit_order(Pair("BTC","EUR"),OrderSide.BUY,"10","10","10")print("Delete orders:")awaitclient.delete_account_orders(Pair("BTC","EUR"))print("Delete order:")awaitclient.delete_account_order("1")print("Order trades:")awaitclient.get_account_order_trades("1")print("Trades:")awaitclient.get_account_trades()print("Trade:")awaitclient.get_account_trade("1")print("Trading volume:")awaitclient.get_account_trading_volume()print("Currencies:")awaitclient.get_currencies()print("Candlesticks:")awaitclient.get_candlesticks(Pair("BTC","EUR"),TimeUnit.DAYS,"1",datetime.datetime.now()-datetime.timedelta(days=7),datetime.datetime.now())print("Fees:")awaitclient.get_account_fees()print("Instruments:")awaitclient.get_instruments()print("Order book:")awaitclient.get_order_book(Pair("BTC","EUR"))print("Time:")awaitclient.get_time()awaitclient.close()if__name__=="__main__":asyncio.run(run())

网站
importasyncioimportpathlibimportloggingfrombitpanda.BitpandaClientimportBitpandaClientfrombitpanda.PairimportPairfrombitpanda.subscriptionsimportAccountSubscription,PricesSubscription,OrderbookSubscription, \
	CandlesticksSubscription,MarketTickerSubscription,CandlesticksSubscriptionParamsfrombitpanda.enumsimportTimeUnitlogger=logging.getLogger("bitpanda")logger.setLevel(logging.DEBUG)logger.addHandler(logging.StreamHandler())asyncdeforder_book_update(response:dict)->None:print(f"Callback {order_book_update.__name__}: [{response}]")asyncdefrun():certificate_path=pathlib.Path(__file__).with_name("certificate.pem")api_key="<YOUR_API_KEY>"client=BitpandaClient(certificate_path,api_key)# Bundle several subscriptions into a single websocketclient.compose_subscriptions([AccountSubscription(),PricesSubscription([Pair("BTC","EUR")]),OrderbookSubscription([Pair("BTC","EUR")],"50",callbacks=[order_book_update]),CandlesticksSubscription([CandlesticksSubscriptionParams(Pair("BTC","EUR"),TimeUnit.MINUTES,1)]),MarketTickerSubscription([Pair("BTC","EUR")])])# Bundle another subscriptions into a separate websocketclient.compose_subscriptions([OrderbookSubscription([Pair("ETH","EUR")],"50",callbacks=[order_book_update]),])# Execute all websockets asynchronouslyawaitclient.start_subscriptions()awaitclient.close()if__name__=="__main__":asyncio.run(run())

所有示例都可以在github存储库中的client-example/client.py中找到。

支持

如果你喜欢这个库,你觉得你想支持它的进一步发展,增强和修复,那么它将是巨大的帮助,最值得赞赏的是:

  • 文件错误,建议,拉取请求…
  • 传播单词
  • 随便给点小费
    • BTC:15jugvq3yfopedej5wgqvkzrx5hqokjc4
    • ETH:0xf29304b6af5831030ba99aceb290a3a2129b993d
    • ADA:DDZffzcqrhshylv3wktxffconeter9mcfrmo9v3dyz4pz6ynq9pjjusfnn4kzwkqr91pweebkohodpajzgbhdv2akedsfr4sckrek79
    • XRP:rhvwrjb9egdek4zuj1xsjjspsdqsau6+标签599790141

接触

如果您想联系,请

  • 如果与开发相关,请使用github问题,或
  • 发送电子邮件

从属关系

如果你对在不久的将来使用bitpanda-aio的自动交易机器人感兴趣,那么可以访问我的另一个项目creten

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何忽略缓冲读取器中在“”之后的行的其余部分,或行上的特定字符?   java在db中创建空对象或稍后保存   java如何实现UI无关的后台工作任务   java未能在Android中从BaseAdapter扩展的类中启动Tactivity?   java斐波那契迭代移动数组[]   安卓从文件读取提供了java。木卫一。StreamCorruptedException:无效的流标头:73720027   java计算矩形中的六边形数?   仅使用Java 1.5(或更早版本)读写XML   java如果所有元素都以相同的bucked结尾,为什么要进行大小调整?   java Apache POI Excel在xx中发现无法读取的内容。xlsx   swing我可以在普通java应用程序中使用GWTGUI吗?   来自自定义Java客户端的http删除请求的行为与邮递员不同   运行批处理文件时,java当前目录无效   使用TypeReference将java字符串转换为ArrayList<STRING>   documentlistener突出显示所有匹配词Java