官方的shrimpy api python客户端

shrimpy-python的Python项目详细描述


虾蟒

Shrimpy Developer API的官方Python库https://developers.shrimpy.io/docs。库当前仅与python3兼容。

安装

pip install shrimpy-python

快速启动

所有请求都是同步的。有关全面的api使用指南,请参见https://developers.shrimpy.io/docs

如果您想使用与node.js库类似的async/await样式,请考虑使用asynciopython库包装此处提供的同步请求。

importshrimpypublic_key='bea8edb348af226...'secret_key='df84c39fb49026dcad9d99...'client=shrimpy.ShrimpyApiClient(public_key,secret_key)ticker=client.get_ticker('bittrex')

公共终结点

公共端点和经过身份验证的端点的客户端都是相同的。请注意,如果尝试使用没有密钥的已验证终结点,则将失败。

supported_exchanges=client.get_supported_exchanges()
exchange_assets=client.get_exchange_assets('bittrex')
trading_pairs=client.get_trading_pairs('bittrex')

市场数据方法

ticker=client.get_ticker('bittrex')
orderbooks=client.get_orderbooks('bittrex',# exchange'XLM',# base_symbol'BTC',# quote_symbol10# limit)
candles=client.get_candles('bittrex',# exchange'XLM',# base_trading_symbol'BTC',# quote_trading_symbol'15m'# interval)

已验证的终结点

如上所述,请使用提供的shrimpy api密钥访问经过身份验证的端点。用户管理等端点需要主api密钥,而交易等端点将使用主api密钥或用户api密钥。

用户管理方法

users=client.list_users()
user=client.get_user('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)
create_user_response=client.create_user('mycustomname'# (optional) name)user_id=create_user_response['id']
client.name_user('mycustomname'# name)
client.enable_user('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)
client.disable_user('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)

用户api密钥方法

public_user_keys=client.get_api_keys('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)
user_api_keys=client.create_api_keys('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)
client.delete_api_keys('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id'51ac18b7d208f59b3c88acbb1ecefe6ba6be6ea4edc07e7a2450307ddc27ab80'# public_key)
permissions=client.get_api_key_permissions('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id'51ac18b7d208f59b3c88acbb1ecefe6ba6be6ea4edc07e7a2450307ddc27ab80'# public_key)
client.set_api_key_permissions('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id'51ac18b7d208f59b3c88acbb1ecefe6ba6be6ea4edc07e7a2450307ddc27ab80',# public_keyTrue,# enable account methodsFalse# enable trading methods)

会计方法

accounts=client.list_accounts('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)
account=client.get_account('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# exchange_account_id)
link_account_response=client.link_account('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id'binance',# exchange'GOelL5FT6TklPxAzICIQK25aqct52T2lHoKvtcwsFla5sbVXmeePqVJaoXmXI6Qd',# public_key (a.k.a. apiKey)'SelUuFq1sF2zGd97Lmfbb4ghITeziKo9IvM5NltjEdffatRN1N5vfHXIU6dsqRQw',# private_key (a.k.a. secretKey'mypassphrase'# (optional)passphrase - required for exchanges with passphrases like CoinbasePro)account_id=link_account_response['id']
client.unlink_account('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id456# account_id)
ip_addresses=client.get_ip_whitelist_addresses('701e0d16-1e9e-42c9-b6a1-4cada1f395b8'# user_id)

交易方法

create_trade_response=client.create_trade('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id'BTC',# from_symbol'ETH',# to_symbol'0.01'# amount of from_symbol)trade_id=create_trade_response['id']
trade=client.get_trade_status('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# exchange_account_id'72dff099-54c0-4a32-b046-5c19d4f55758'# trade_id)
active_trades=client.list_active_trades('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# exchange_account_id)

平衡法

balance=client.get_balance('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
total_balance_history=client.get_total_balance_history('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)

资产管理方法

client.rebalance('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
rebalance_period_hours=client.get_rebalance_period('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
client.set_rebalance_period('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id24# rebalance_period in hours)
strategy=client.get_strategy('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
client.set_strategy('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id{'isDynamic':False,'allocations':[{'symbol':'BTC','percent':'50'},{'symbol':'ETH','percent':'50'}]}# strategy)
client.clear_strategy('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
client.allocate('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id{'isDynamic':False,'allocations':[{'symbol':'USDT','percent':'100'}]}# strategy)

极限阶方法

place_limit_order_response=client.place_limit_order('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id'BTC',# base_symbol'ETH',# quote_symbol'0.01',# quantity of base_symbol'0.026',# price'SELL',# side'IOC',# time_in_force)limit_order_id=place_limit_order_response['id']
order=client.get_limit_order_status('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id'8c2a9401-eb5b-48eb-9ae2-e9e02c174058'# order_id)
orders=client.list_open_orders('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123# account_id)
order=client.cancel_limit_order('701e0d16-1e9e-42c9-b6a1-4cada1f395b8',# user_id123,# account_id'8c2a9401-eb5b-48eb-9ae2-e9e02c174058'# order_id)

分析方法

backtest_assets=client.get_backtest_assets('kucoin'# exchange)
backtest_results=client.run_backtest('binance',# exchange10,# rebalance_period in hours'0.1',# fee in percent'2018-05-19T00:00:00.000Z',# start_time'2018-11-02T00:00:00.000Z',# end_time'5000',# initial_value in USD[{'symbol':"BTC",'percent':'50'},{'symbol':"ETH",'percent':'50'}]# allocations)

洞察方法

asset_dominance=client.get_asset_dominance()
asset_popularity=client.get_asset_popularity()

WebSocket

用户可以使用^{}类访问ShrimpyWebSocket提要。处理程序必须是 在负责处理来自WebSocket的传入消息的订阅上传入 溪流。建议您只将消息从您的自定义线程发送到另一个处理线程 阻止阻止传入消息流的处理程序。

客户端基于^{}

importshrimpyclient=shrimpy.ShrimpyWsClient()# This is a sample handler, it simply prints the incoming message to the consoledefhandler(msg):print(msg)subscribe_data={"type":"subscribe","exchange":"coinbasepro","pair":"ltc-btc","channel":"orderbook"}# Start processing the Shrimpy websocket stream!client.connect()client.subscribe(subscribe_data,handler)# Once complete, stop the clientclient.disconnect()

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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本