Binance API系列Pt。 I –与邮递员进行现货交易

当前位置:首页 > 币安app > Binance API系列Pt。 I –与邮递员进行现货交易

Binance API系列Pt。 I –与邮递员进行现货交易

2022-10-06币安app260

介绍

了解和使用API进行加密货币交易可以为进入和退出头寸打开无限可能。借助一些简单的编码知识,您可以插入交易所后端以自动化您的交易策略。通过回避网站,您可以更快地找到适用于高性能应用程序的匹配引擎。

本系列的目的是向您介绍Binances REST API并教您如何与之交互。最后,您应该对查询有关市场和头寸的信息以及下达各种不同的订单类型的能力充满信心。

在本文中,最好使用Postman与交易所进行交流。不用担心,我们不会将任何实际资金置于风险之中。

先决条件

测试网密钥

我们将使用测试网。这将使我们获得一些没有实际价值的资金。它们的功能与真实硬币和代币完全相同,因此一旦您熟悉了API,就可以开始使用它来交易真实资金。

首先进入现场测试网络。 要获得访问权限,您需要使用GitHub帐户登录。如果您还没有,请创建一个。 单击身份验证并通过GitHub登录。在“ API密钥”下,您会被告知您没有注册密钥。单击生成HMAC_SHA256密钥以创建一个对。 在下一个屏幕上,给键添加标签。随便叫他们,然后点击Generate。您将看到两个密钥:API密钥和Secret Key。重要的是您现在记录这些。如果您不这样做,则需要再次启动密钥创建过程。我们建议将它们存储在您的机器备注应用程序中,以便以后进行复制粘贴。

注意:在使用真正的交换来管理不同的密钥时,标记密钥是值得做的事情。您的帐户可以具有多个具有不同权限的密钥。如果您运行多个交易机器人,则使用带有描述性标签的单独密钥可以更轻松地管理权限或删除单个密钥,而无需更改所有机器人。

下载并安装邮递员

Postman是一个API协作平台。对于我们来说,这是一个完美的起点,可以访问经过良好测试的Binance请求的集合,而无需编写任何代码。

该程序可用于Mac,Windows和Linux 。转到“下载”页面,然后下载.zip文件。

完成后,在文件浏览器中找到它并安装。启动该应用程序,一切顺利!请注意,您可以创建一个帐户来登录,但这不是必需的。如果要跳过该步骤,只需选择窗口底部的选项即可。

创造环境

在此阶段,您应该具有类似于以下内容的界面。

Binance API系列Pt。 I –与邮递员进行现货交易

我们要首先创造我们的环境。这只是我们向要使用的请求集中添加变量的一种方式。为此,首先需要从Binance GitHub存储库中获取一些信息。转至此处并下载.zip文件。

Binance API系列Pt。 I –与邮递员进行现货交易

下载不应该花费很长时间。在文件浏览器中找到它并解压缩。然后,我们可以回到邮递员那里。

Binance API系列Pt。 I –与邮递员进行现货交易

单击右上角的齿轮图标(如上图所示)。您会看到“管理环境”弹出窗口。

选择导入,然后导航到您刚刚提取的文件夹(binance-postman-api)。输入它,然后输入环境文件夹。现在,您将看到两个文件(一个用于主网,一个用于测试网)。后面的一个是binance_com_spot_testnet_api.postman_environment.json。确保您有正确的密码,因为我们的钥匙无法与另一密码一起使用。

Binance API系列Pt。 I –与邮递员进行现货交易

差不多了。单击Binance Spot Testnet API,然后将看到以下变量。通过粘贴先前保存的键来编辑以红色概述的两个参数。单击更新并退出弹出窗口。

Binance API系列Pt。 I –与邮递员进行现货交易

在此屏幕上,将“时间戳记”和“签名”字段留空。这两个值将在每次请求时自动创建。

还有最后一件事要做。在我们单击以更早设置环境的齿轮图标右侧,您会看到一个下拉菜单,当前显示No Environment。单击它,然后选择Binance Spot Testnet API。

导入馆藏

现在要导入集合,这是各种各样的请求,在打电话时给我们带来了沉重的负担。要将其加载到我们的环境中:

单击左上角的导入。在弹出窗口的“文件”选项卡下,选择“上载文件”。再次在寻找binance-postman-api文件夹。找到并打开它。这次,在子目录中输入collections。再次有两个文件。一种是使用期货API。但是正在与现场工作,因此您需要选择binance_spot_api_v1.postman_collection.json文件。现在,您应该看到一个确认屏幕,该屏幕将导入标识为Postman Collection格式。选择导入。

现在,在窗口左侧的“收藏夹”标签下,您会注意到我们有一个包含100个以上请求的文件夹。恭喜你!很好去。在下一部分中,请看一下我们可以提出的各种请求。

发出请求

如果展开“收藏夹”选项卡下的文件夹,您将看到我们可以提出许多不同的请求。从颜色编码中,您可能会注意到我们可以使用三种方法:

GET: GET方法用于从服务器检索内容。很好地使用它来查找有关您的帐户余额,资产价格等的信息。 POST:通常使用POST方法在服务器上创建信息。下订单,请求提款等操作都需要这样做。 DELETE: DELETE方法是服务器删除信息的请求。Itll可以方便地取消订单。

查找交易品种列表和交易规则

时间到了我们的第一个要求!将获得我们可以在交易所和交易规则上进行交易的符号:

GET / exchangeInfo

这个没有任何其他参数,您可以将其复制并粘贴到地址栏中,然后得到响应。但是对于包含多个参数的请求,Postman可以轻松查看和修改它们。

要加载此请求,请选择“市场交易信息”。将会弹出如下所示的标签:

Binance API系列Pt。 I –与邮递员进行现货交易

我们不需要在这里做任何其他事情,所以继续并点击Send。然后您会得到一个响应:

Binance API系列Pt。 I –与邮递员进行现货交易

在最上方突出显示的部分中,您将看到一些重要信息:

响应的状态(200表示我们已经成功,400-499表示我们遇到了问题)

接收响应所花费的时间(少于一秒)

响应的大小(〜22KB)。

在第二个框中是大部分响应。它的印刷精美,因此在眼睛上更容易一点。其中包含有关交易所本身以及您可以交易的货币对及其最小/最大金额的信息。

它看起来像很多信息,但是这种格式使以编程方式进行工作变得非常容易。在编写脚本进行交互时,您可以轻松地从响应中选择特定元素的特定属性。

查看账户余额

让我们检查一下我们拥有哪些资产,以及每种资产的数量:

GET /帐户

可以在“贸易帐户信息”下找到此帐户。单击它,您将看到与上一个相似的布局。您还会注意到,但是,我们有两个新变量:timestamp和signature。签名是一种安全措施。因为现在正在询问敏感信息,所以它将证明是帐户持有人。

时间戳告诉服务器何时发送请求。由于网络可能不可靠或面临停机,因此服务器收到我们的请求的时间可能比预期的要晚得多。如果经过了太多时间,它将拒绝该请求。您可以使用recvWindow参数指定要等待的时间,默认值为5000毫秒。

邮递员为我们处理这两个领域的产生。单击发送,您将收到回复。在余额下,您应该看到六个资产BNB,BTC,BUSD,ETH,LTC和TRX。余额将分为免费和锁定。我们尚未锁定任何设备,因此您的资产应全部免费。

恭喜您获得了新的(不存在的)财富!

如何获得符号的当前价格

我们可以通过不同的方式获取资产的当前价格。也许最简单的是以下请求:

GET / api / v3 / ticker / 24hr

您可能会猜到,这将为我们提供过去二十四小时的资产价格信息。在市场24小时收盘价格变化统计中找到它。由于符号变量为BTCUSDT,因此使用了默认对。

您可以立即发送此信息以查看价格信息明细。您还可以更改符号(更改为BNBBUSD,LTCUSDT等),也可以取消选中变量以返回40对数据。

我们还有一个更简单的调用(市场交易价格指示),它返回资产当前的交易价格:

GET / api / v3 / price

与以前一样,您可以更改或完全删除符号变量,并获得所有符号的最新价格。

检查当前订单簿的深度

订单簿深度(也称为市场深度或DOM)可以告诉我们很多有关市场的信息。将拨打电话,将返回一些有用的信息:

获取api / v3 / depth

当我们使用默认值(市场订单簿)发送该邮件时,会被发送回一个响应,告诉我们有关出价并要求BTCUSDT。testnet服务器不会产生与实际数据一样多的数据,因此以下是您希望在实际环境中看到的屏幕截图:

Binance API系列Pt。 I –与邮递员进行现货交易

在上面突出显示的部分中,我们可以看到第一个出价。由于正在为BTCUSDT看书,因此上面的数字是某人愿意为您的BTC支付的价格。以下是他们愿意购买的数量。因此,这表示此订单要求以每BTC 9704.65 USDT的价格请求0.999 BTC。如果我们继续向下滚动,我们将看到要约价格下降,代表愿意支付较少费用的买方。

如果您希望物有所值,那么最高报价将自然是最有吸引力的。就是说,如果您试图以3 BTC的价格进行市场出售,则您只能以最佳价格出售0.999 BTC。您需要接受后续(更便宜的)报价,直到您的订单全部完成为止。

Binance API系列Pt。 I –与邮递员进行现货交易

继续滚动,您会看到询问。它们在功能上类似于出价,不同之处在于它们代表以USDT出售BTC的订单。

下测试订单

现在要发布测试订单。

POST api / v3 / order / test

即使只是使用testnet资金,此请求实际上也不会下订单。在实际提交订单之前,它对于测试订单很有用。在“贸易测试新订单”(TRADE)下找到它。

Binance API系列Pt。 I –与邮递员进行现货交易

您可以看到我们还涉及更多参数。让我们逐步检查一下:

符号weve以前碰到过这个。这是您要交易的货币对。 一边在这里,你会规定你是否要买进或卖出。对于BTCUSDT,买入表示您想以USDT的价格购买BTC,而卖出则会以USDT的价格出售BTC。 输入您要提交的订单类型。可能的值(在此处详细说明):限制市场STOP_LOSSSTOP_LOSS_LIMIT获利TAKE_PROFIT_LIMITLIMIT_MAKER timeInForce此参数表示您希望订单执行的方式: GTC(直到取消为止)可能是最受欢迎的设置,GTC将确保您的订单在填满或取消之前一直有效。 FOK(执行或取消)FOK指示交易所一次执行所有指令。如果交易所不能这样做,则该订单将立即被取消。 所有或部分订单的IOC(立即或取消)必须立即执行或取消。与FOK不同,如果可以部分填写订单,则不会取消订单。 量简单地说,你想购买或出售资产的数量。 价格您要出售的价格。对于BTCUSDT对,以USDT表示。 newClientOrderId订单的标识符。这不是必填字段,但是您可以将其设置为一个标识符,以便以后查询。否则,它是由交易所随机生成的。

好的!现在就创建一个测试订单。将使用自动生成的值:以9000美元的价格卖出0.1 BTC的USDT的限价订单。点击发送。如果成功,那么只需返回{}作为响应。

下真实订单

是时候下一个真正的假订单了。

POST / api / v3 / order

导航至“交易新订单”。您现在已经熟悉测试订单,因此这里的参数不足为奇。让我们保留所有的值,但是由于它们是永久性的,因此请将价格更改为40,000美元。调整价格值以反映这一点。然后,点击发送。

如果成功,您的响应将返回有关该订单的大量详细信息。

检查未结订单状态

我们已确认订单已放置在上一节中,但是如果我们以后要再次检查该怎么办?我们有一些要求可以处理。

GET / api / v3 / openOrders

您可以在“交易当前未结订单”(USER_DATA)中找到此内容。BTCUSDT默认情况下处于选中状态。如果您点击发送,您将获得所有未结BTCUSDT订单(到目前为止,您应该只看到我们之前设置的订单)。您可以选择不指定交易品种,而是返回所有未结订单。

GET / api / v3 / allOrders

交易所有订单(USER_DATA)为您提供所有订单的概览,而不仅仅是未平仓订单。在这里,您必须提供一个符号。orderId,startTime,endTime和limit是可选参数,可以帮助您优化搜索。好吧,把它们放在这里,所以不要勾选它们。点击发送,您将看到与以前相同的响应。如果您有任何关闭或取消的订单,也可以在这里看到它们。

最后,我们可以使用以下命令查询特定订单:

GET / api / v3 / order

在交易查询订单(USER_DATA)下获取此信息。您需要提供orderId或origClientOrderId(可以添加到订单的可选标记newClientOrderId)。取消选中orderId。对于origClientOrderId,它们将提供先前的my_order_id_1中的默认标记。填写该字段,然后单击发送以获取响应。

取消订单

一段时间后,我们可能会认为40,000美元的目标过于乐观,因此我们希望取消该目标。在这种情况下,请使用:

删除/ api / v3 / order

在“交易取消订单”下有一个请求,该请求使我们可以选择要取消的订单。取消选中订单ID和newClientOrderId和通my_order_id_1作为价值origClientOrderId。

当您发送此请求时,订单将被退回。如果向下滚动到status,则会看到其确实已取消。要确认这一点,请再次使用GET / api / v3 / openOrders端点(为您提供一个空列表)或将GET / api / v3 / order与origClientOrderId一起使用。

下订单即刻成交

我们之前的订单没有成交,因为这是一个限价订单,只有在BTC价格达到40,000美元时才会触发。对于市场订单,基本上是说以资产当前交易的任何价格进行买卖。这将立即填充。

为此,让我们回到“交易新订单”。我们将演示响应类型(newOrderRespType),该参数是我们可以根据要从服务器获取的响应进行调整的参数。这里有三个选项:ACK,RESULT或FULL,您可以在此处查看每个响应的示例。将与ACK一起使用,这将使我们简单地确认已收到订单。

在下面,您可以看到即将提交一份市场订单,以当前市场价格将BNB出售给BUSD。

Binance API系列Pt。 I –与邮递员进行现货交易

请注意,该响应仅向我们提供了最少的信息:

Binance API系列Pt。 I –与邮递员进行现货交易

您可以验证订单是否已使用/ api / v3 / allOrders端点执行。

检查您的交易

最后,让我们看一下检查交易的端点:

GET / api / v3 / myTrades

它位于贸易帐户贸易清单(USER_DATA)下。它允许您检查每笔交易中的特定交易品种。如果要查看默认交易品种(BTCUSDT)的所有交易,只需取消选中startTime,endTime和fromId即可。响应将返回多达500个行业简单地调整了限制,如果你想看到更多。

使用邮递员进行调试

在Postman中,可以进一步显示原始HTTP请求和响应。

Binance API系列Pt。 I –与邮递员进行现货交易

此菜单将打开Postman控制台,该控制台将打印出每个请求的详细信息。

Binance API系列Pt。 I –与邮递员进行现货交易

总结思想

本指南的目的是向您简要介绍Binance API,而无需编写任何代码。如果您一直遵循,那么您现在应该对我们如何请求和提交信息有所了解。

在本系列的下一部分中,我们将介绍一些基本的编码概念,这些概念使我们能够自动执行加密货币和其他数字资产的买卖。

在此期间有疑问吗?前往我们不断发展的Binance开发人员社区论坛,或查看文档。

<
Binance API系列Pt。 I –与邮递员进行现货交易 | 分享给朋友: