Coinbase Pro API/由Cryptogeek提供的指南

Coinbase Pro API/由Cryptogeek提供的指南
此页面会被自动翻译。 以原始语言打开页面
Apr 24, 2022 0
Coinbase Pro API/由Cryptogeek提供的指南

每个交易所都有吸引交易者的特殊功能。 Coinbase Pro有一个特殊的代码,帮助自动化和简化交易。 此代码是Coinbase Pro API。 
创建帐户以及启用Coinbase Pro API是完全免费的。

Coinbase和Coinbase Pro的差异

这两个平台确实有一些共同点。 至少Coinbase Global Inc拥有两者,Ui彼此相似。

然而,很明显,Coinbase和Coinbase Pro共享相当多的差异。 N.硬币基数 是一个加密货币市场,而Coinbase Pro是一个成熟的加密交换。 N.硬币基数 类似于加密货币钱包,而Coinbase Pro更可能是交易平台。

创新的属性和端点使Coinbase Pro API上的交易比Coinbase更快,更好。

现在Coinbase Pro API可用于更多 100个国家.

使用Coinbase Pro API的利弊

以下是交易者应该考虑的利弊的简短列表。

专业人员:

●简单
●直观
●美国全面监管
●高流动性
●支持菲亚特(美元,欧元,英镑)
●支持超过120种加密货币

缺点:

●高收费
●客户支持缓慢
●对新手来说太复杂了

总而言之,Coinbase Pro API的优点是缺点的两倍。

Coinbase Pro是否收取费用?

是的,是的。 Coinbase Pro从其用户那里收取通常的交易费用。 它发生在计算最终价格的30天之后。 为了交易者的方便,金额以美元计算。

通常情况下,费用分为"制造者"和"接受者":

1. 当一个放置的市场订单立即被填满时,用户就成为一个接受者。 费用:从0.04%到0.50%。

2. 当一个放置的订单没有立即完成并出现在订单簿上时,Aser就会成为一个制造商。 所以有必要等到它被另一个交易者匹配。 费用:0.00%至0.50%。

3. 当订单只被部分填充时,这两个费用都被支付。 首先,支付与填充部分相匹配的接受者费用,而订单的其余部分在订单簿上移动到以后。 当它匹配时,支付制造商费用。

此表显示了两种费用的当前交易量:

其他交易所有API吗?

许多其他交易所确实有API。 这就是为什么Coinbase Pro API不能成为交易者的唯一选择。 这里只是几个与API的交流:

宾纳斯
比特梅克斯
HitBTC
海妖
双子座
库科因
Bittrex的
Bitfinex

在完成适当的研究后,交易者可以在提供的交易所中进行选择,或者找到满足他们需求的其他平台。 但是,让我们回到Coinbase Pro。

在Coinbase Pro上创建帐户

交易者在这个平台上只有两种创建账户的方法:

1. 如果交易者已经拥有Coinbase帐户,唯一剩下的就是将其与Coinbase Pro连接起来。 然后资金转移将是可能的帐户之间。

2. 或者只是访问 Coinbase Pro开始页面 并在那里启动一个帐户。

点击"开始使用"按钮后,新人必须填写基本帐户详细信息,验证电子邮件地址并启用双因素身份验证。 要完成注册,用户必须提供一些个人信息:姓名,出生日期,地址,意图,资金来源,职业,包括身份证照片和银行帐户的链接。

什么是Coinbase API密钥?

要处理Coinbase Pro API,交易者需要Coinbase API密钥。 首先,点击"API",然后点击"+New API Key"按钮。 然后,用户必须选择API密钥的权限,设置昵称和密码短语,额外的身份验证级别和Coinbase实现的安全功能。

在API密钥开始工作之前,交易者需要再完成一个步骤:输入验证代码以获得密钥。 此外,用户应将该密钥保存在安全的地方,以免丢失。

最后,创建了Coinbase Pro API。 让我们继续谈论它的能力。

有用的Python Coinbase Pro API命令

每个交易者可以从五个支持的客户中选择他们最喜欢的客户:

巨蟒
去吧
Java语言
铁锈
C#

Python是在Coinbase Pro API上编写命令的最流行客户端。 这就是为什么例子只包括它。

让我们开始吧:

pip安装cbpro

使用Python Coinbase API交易对信息

在Coinbase Pro API中,python库使用 get_产品 端点获取交易对的信息。 下一步是导入库,初始化客户端,获取产品数据:

进口cbpro 
导入pandas作为pd 
c=cbpro。公共客户端() 
数据=pd。DataFrame(c.get_products()) 
数据。尾()。

使用Python Coinbase API的价格数据

要获取有关价格数据的信息,请使用 get_产品_ticker 端点并指定ticker参数。 对于卡尔达诺来说,这将是:

ticker=c.get_product_ticker(product_id='ADA-USD') 
股票,股票

获取日期的第二种方法是借助 硬币基数PRO RESTAPI 端点:

导入请求ticker=requests.get('https://api.pro.coinbase.com/products/ADA-USD/ticker json() 
股票,股票

使用Python Coinbase API的历史数据

要获取历史数据的信息,请使用 get_product_historic_rates 端点。 可以指定粒度,开始和结束日期。

看看使用默认参数获取ETH-USD历史数据并将其全部排列成一个有序的数据框是多么简单:

历史=pd。DataFrame(c.get_product_historic_rates(product_id='ETH-USD'))历史。columns=["日期","开盘","高","低","收盘","成交量"] 
历史['日期']=pd.to_datetime(历史['日期'],单位='s') 
历史。set_index('日期',inplace=True) 
历史。sort_values(by='Date',ascending=True,inplace=True) 
历史

如果需要,以后这些数据可以用来创建一个简单的指标并产生一个烛台图。

使用Python Coinbase API访问技术指标

不幸的是,Coinbase Pro API不提供任何预设指标。 但是,可以使用内置的pandas功能或仅依赖btalib库来制作它们。

这就是如何用pandas创建一个简单的20SMA指标:

历史['20SMA']=历史。很近。滚动(20)。平均() 
历史。尾()

拥有所有这些数据,就可以创建一个交互式图表:

导入plotly。graph_objects as go 
fig=走。图(data=[go.烛台(x=历史。索引, 
open=历史['Open'], 
高=历史['高'], 
低=历史['低'], 
关闭=历史['关闭'],), 
去吧。散点(x=历史。index,y=historical['20SMA'],line=dict(color='purple',width=1))]) 
无花果。表演()

订购簿数据

要获取订单簿数据,请使用 get_product_order_book Coinbase Pro API端点。 下面是一个获取BTC输油管的数据并安排出价和要求的例子.

order_book=c.get_product_order_book('BTC-USD') 
订购书

下一步是创建两个数据帧:

出价=pd。DataFrame(order_book['出价']) 
问=pd。DataFrame(order_book['asks']) 
出价。头()

现在合并它们并重命名列以提供更多信息:

df=pd。合并(出价,询问,left_index=True,right_index=True) 
df=df。重命名({"0_x":"出价","1_x":"出价大小","2_x":"出价金额", 
"0_y":"要价","1_y":"要价","2_y":"要价"},axis='columns') 
df.头()

交易数据

要获取交易数据,请使用 get_产品_贸易 端点。 不要忘记输入资产获取数据;ETH-USD在这个例子中。

trades=pd.DataFrame(requests.get('https://api.pro.coinbase.com/products/ETH-USD/trades json()) 
交易。尾()

不要让Python库卡住,请使用REST API。

如何使用Coinbase Pro WebSocket API?

要访问Coinbase Pro WebSockets,请使用 Webcoketclient 端点。 多亏了它,交易者可以很容易地了解有趣的数据。

进口cbpro 
wsc=cbpro.WebsocketClient(url="wss://ws-feed.pro.coinbase.com",products="ADA-USD", 
频道=["股票"])

要关闭WebSocket,只需使用一个简单的命令:

wsc。关闭()

下一个命令有助于收集股票价格数据,最多可以收集一定数量的WebSocket消息并将其打印出来:

进口时间,cbpro 
类myWebsocketClient(cbpro.WebsocketClient): 
def on_open(自我): 
自我。url="wss://ws-feed.pro.coinbase.com/" 
自我。产品=["ETH-USDT"] 
自我。频道=["股票"] 
自我。message_count=0 
def on_message(自我,味精): 
自我。消息_count+=1 
如果味精中的"价格"和味精中的"类型": 
print("消息类型:",msg["类型"], 
"\t@{:。3f}"。格式(float(msg["price"]))) 
def on_close(自我): 
打印("关闭") 
wsClient=myWebsocketClient() 
wsClient。开始() 
打印(wsClient.url,wsClient。产品,wsClient。频道) 
虽然(wsClient。message_count<50): 
print("\nmessage_count=","{}\n".格式(wsClient.message_count)) 
时间。睡眠(1) 
wsClient。关闭()

在Coinbase Pro API上执行交易

使用python Coinbase API命令,执行交易非常简单。 让我们来看两个例子:当BTC输油管达到某个价格时执行ETH交易,当BTC输油管在过去5分钟内移动5%时执行ETH交易。

当BTC输油管达到一定价格时,如何在ETH上进行交易?

现在让我们来了解如何正确启动具有特定要求的订单:当BTC达到某个价格(例如$38500)时开始ETH交易。

1. 设置订单基础;
2. 创建一个循环,检查价格水平是否达到;
3. 一旦价格被击中,市场秩序将被执行; 
4. 等待几秒钟,检查订单是否真的已满。 

设置好逻辑后,就可以导入相关的库并设置Api了:

进口cbpro 
进口基准64 
从时间导入json 
导入睡眠 
键=" 
秘密=" 
密码=" 
编码=json。转储(秘密)。编码() 
b64secret=base64.b64encode(编码) 
auth_client=cbpro。AuthenticatedClient(key=key,b64secret=secret,passphrase=密码短语) 
c=cbpro。公共客户端()

至于主要的交易逻辑,这里有一个重要的通知,使订单更安全。 要做到这一点,通过采取当前的ETH-USD价格并在顶部添加几美元来下达限价订单。

虽然真实: 
试试: 
ticker=c.get_product_ticker(product_id='BTC-USD') 
例外情况为e: 
print(F'Error获取股票数据:{e}') 
如果浮动(股票['价格'])>=38500.00: 
试试: 
limit=c.get_product_ticker(product_id='ETH-USD') 
例外情况为e: 
print(F'Error获取股票数据:{e}') 
试试: 
订单=auth_client。place_limit_order(product_id='ETH-USDT', 
side='购买', 
价格=浮动(限价['价格'])+2, 
尺寸='0.007') 
例外情况为e: 
打印(F'Error下订单:{e}') 
睡眠(2) 
试试: 
检查=订单['id'] 
check_order=auth_client。get_order(order_id=检查) 
例外情况为e: 
打印(F'Unable检查订单. 它可能会被拒绝。 {e}') 
如果check_order['状态']=='完成': 
列印("成功订购") 
打印(check_order) 
休息 
其他: 
打印("订单未匹配") 
休息 
其他: 
print(f'未达到要求。 股票价格为{股票["价格"]}') 
睡眠(10)

当BTC在过去5分钟内移动5%时,如何执行ETH交易?

任务变得稍微复杂。 新的循环将不得不获得两种加密货币的价格,并计算两者之间的百分比变化:

●如果百分比变化小于5%,程序将再睡5分钟;

●如果百分比变化等于或超过5%,交易将执行。

完成后等待几秒钟,然后再次检查交易。

虽然真实: 
试试: 
ticker_old=c.get_product_ticker(product_id='BTC-USD') 
例外情况为e: 
print(F'Error获取股票数据:{e}') 
睡眠(300) 
试试: 
ticker_new=c.get_product_ticker(product_id='BTC-USD') 
例外情况为e: 
print(F'Error获取股票数据:{e}') 
百分比=((float(ticker_new['price'])-float(ticker_old['price']))*100)/float(ticker_old['price']) 
如果百分比>=5: 
试试: 
limit=c.get_product_ticker(product_id='ETH-USDT') 
例外情况为e: 
print(F'Error获取股票数据:{e}') 
试试: 
订单=auth_client。place_limit_order(product_id='ETH-USDT', 
side='购买', 
价格=浮动(限价['价格'])+2, 
尺寸='0.007') 
例外情况为e: 
打印(F'Error下订单:{e}') 
睡眠(2) 
试试: 
检查=订单['id'] 
check_order=auth_client。get_order(order_id=检查) 
例外情况为e: 
打印(F'Unable检查订单. 它可能会被拒绝。 {e}') 
如果check_order['状态']=='完成': 
列印("成功订购") 
打印(check_order) 
休息 
其他: 
打印("订单未匹配") 
休息 
其他: 
print(f'未达到要求。 百分比变化在{percent}')

如何使用Coinbase Pro API取消订单?

取消订单非常简单。 前往 取消订单 API端点并输入订单id作为参数:

客户。cancel_order(order_id="ORDER-ID-HERE")

结论

在本文中,我们仔细研究了Coinbase Pro API,并给出了一些python代码示例。 完整的代码可以在平台上找到 GitHub 页。

本文中表達的觀點和評估是本文作者的觀點,並不代表Cryptogeek的立場。 不要忘記投資加密貨幣並在交易所交易與風險相關。 在做出決定之前,請務必對市場和您感興趣的產品進行自己的研究。


此处暂无评论。 成为第一个!