官方的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样式,请考虑使用asyncio
python库包装此处提供的同步请求。
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
用户可以使用^{
客户端基于^{
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()