コンテンツ
導入
前提条件
ネットワークキーをテストする
Postmanをダウンロードしてインストールします
環境を作る
コレクションをインポートする
リクエストの実行
最終的な考え
導入
暗号通貨取引の API を理解して使用すると、ポジションの出入りに関して可能性の世界が広がります。基本的なプログラミングの知識があれば、取引所のバックエンドに接続して取引戦略を自動化できます。 Web サイトをバイパスすることで、高性能アプリケーションのマッチング エンジンにはるかに速くアクセスできます。
このシリーズの目的は、Binance REST API を紹介し、その操作方法を教えることです。最終的には、市場とポジションをクエリし、さまざまな種類の注文を行う能力に自信を持つ必要があります。
この記事では、Postman を使用して取引所と通信します。心配しないでください。実際のお金を危険にさらすことはありません。
前提条件
ネットワークキーをテストする
私たちの目的のためにテストネットを使用します。これにより、実際には価値がなく、実験できる資金が得られます。これらは実際のコインやトークンとまったく同じように機能するため、API に慣れたら、実際のお金の取引に使用できるようになります。
まずはスポット テスト ネットワークにアクセスしてください。
アクセスするには、GitHub アカウントでサインインする必要があります。まだ作成していない場合は作成してください。
「認証」をクリックし、GitHub でサインインします。
「API キー」セクションでは、登録されたキーがないことがわかります。 「HMAC_SHA256 キーの生成」をクリックしてペアを生成します。
次の画面で、キーにラベルを付けます。好きな名前を付けて、「生成」をクリックします。
API キーと秘密キーの 2 つのキーが表示されます。今すぐ書き留めておくことが重要です。そうしない場合は、キー生成プロセスを再度開始する必要があります。後で簡単にコピーできるよう、コンピュータ上のメモ作成アプリケーションに保存することをお勧めします。
注: ライブ交換を使用してさまざまなキーを管理する場合、キーにラベルを付ける必要があります。アカウントには、異なる権限を持つ複数のキーを含めることができます。複数の取引ボットを使用する場合、説明的なラベルが付いた個別のキーを使用すると、すべてのボットを変更することなく、アクセス許可の管理や個々のキーの削除が容易になります。
Postmanをダウンロードしてインストールします
Postman は API コラボレーションのためのプラットフォームです。これは私たちにとって完璧な出発点です。コードを 1 行も記述することなく、Binance クエリ コレクションにアクセスしてテストできるようになります。
このプログラムは、Mac、Windows、Linux で利用できます。ダウンロード ページに移動し、.zip ファイルをダウンロードします。
その後、エクスプローラーで見つけてインストールします。アプリを開いて開始してください。ログインするためにアカウントを作成できますが、これは必須ではないことに注意してください。この手順をスキップする場合は、ウィンドウの下部にある適切なオプションを選択してください。
環境を作る
この時点で、次のようなインターフェイスが表示されるはずです。

まず、環境を構築する必要があります。これは、これから扱うクエリのセットに変数を追加するための単なる方法です。これを行うには、まず Binance GitHub リポジトリから情報を取得する必要があります。ここにアクセスして .zip ファイルをダウンロードします。

ダウンロードにはそれほど時間はかかりません。ファイルエクスプローラーでそれを見つけて解凍します。その後、Postman に戻ります。

右上隅にある歯車アイコンをクリックします (上図を参照)。 「環境の管理」ポップアップウィンドウが表示されます。
「インポート」を選択し、新しく解凍したフォルダー (binance-postman-api) に移動します。
次に、環境フォルダーに入ります。
2 つのファイル (メイン ネットワーク用とテスト ネットワーク用) が表示されます。 binance_com_spot_testnet_api.postman_environment.json を探しています。当社のキーは他のキーでは機能しないため、正しいものを選択していることを確認してください。

ほぼ完了しました。 「Binance Spot Testnet API」をクリックすると、以下の変数が表示されます。前に保存したキーを挿入して、赤で強調表示された 2 つのパラメーターを編集します。 「更新」をクリックしてポップアップウィンドウを閉じます。

この画面では、「タイムスタンプ」と「署名」フィールドは空白のままにしておきます。これら 2 つの値はリクエストごとに自動的に生成されます。
まだやるべきことが残っています。先ほど環境をセットアップするためにクリックした歯車アイコンの右側には、現在「環境なし」と表示されているドロップダウン メニューが表示されます。それをクリックして「Binance Spot Testnet API」を選択します。
コレクションをインポートする
次に、コレクションをインポートします。これは、面倒な作業を行うクエリの大規模なコレクションです。これを環境にアップロードするには、次の手順に従います。
左上隅の「インポート」をクリックします。
ポップアップウィンドウの「ファイル」タブで「ファイルのアップロード」を選択します。
再び binance-postman-api フォルダーを探します。見つけて開きます。
今回はサブディレクトリに「collections」と入力します。
ここでも 2 つのファイルを示します。 1 つは先物 API を操作するためのものです。ただし、ここではスポットを使用しているため、binance_spot_api_v1.postman_collection.json ファイルを選択する必要があります。
インポートが Postman コレクション形式であることを示す確認画面が表示されます。 「インポート」を選択します。
ウィンドウの左側にある [コレクション] タブに、100 を超えるリクエストを含むフォルダーがあることがわかります。おめでとう!よし。次のセクションでは、どのようなリクエストを送信できるかを見ていきます。
リクエストの実行
[コレクション] タブの下のフォルダーを展開すると、実行できるさまざまなクエリが大量にあることがわかります。色分けから、次の 3 種類のメソッドを使用できることがわかります。
GET: 「GET」メソッドは、サーバーからデータを取得するために使用されます。当社は、お客様の口座残高、資産価格などに関する情報を調べるためにこれを使用します。
POST: 通常、サーバー上に情報を作成するには「POST」メソッドを使用します。これは注文や出金リクエストなどに必要です。
DELETE: 「DELETE」メソッドは、サーバーに対する情報の削除リクエストです。注文のキャンセルなどに便利です。
シンボルと取引ルールのリストを検索する
最初のクエリの時間です!取引所で取引できるシンボルと取引ルールを取得します。
GET /exchangeInfo
このリクエストには追加のパラメータは必要ありません。コピーしてアドレス バーに貼り付けると、応答が得られます。 Postman を使用すると、複数のパラメーターが含まれるクエリの表示と変更が簡単になります。
このリクエストをダウンロードするには、[マーケット] > [Exchange 情報] を選択します。次のタブが表示されます。

ここでは特に何もする必要はありませんので、「送信」をクリックしてください。答えが得られます:

上部の強調表示されたセクションには、重要な情報が表示されます。
応答ステータス (200 はリクエストが成功したことを意味し、400 ~ 499 は問題があることを意味します)
応答を受信するまでにかかる時間 (1 秒未満)
応答サイズ (~22KB)。
2 番目のフィールドには、回答の主要部分が含まれます。美しく印刷されているので、目にも優しいです。これには、取引所自体、取引できるペアとその最小/最大金額に関する情報が含まれています。
情報が多いように見えますが、プログラムで簡単に操作できる形式になっています。インタラクション スクリプトを作成する場合、応答から特定の要素の特定のプロパティを簡単に選択できます。
口座残高の確認
どのような資産がどれだけあるのかを確認してみましょう。
アカウントを取得このリクエストは、「取引」>「アカウント情報」にあります。それをクリックすると、前のものと同様のレイアウトが表示されます。ただし、「タイムスタンプ」と「署名」という 2 つの新しい変数があることにも気づくでしょう。署名はセキュリティ対策です。私たちは機密情報を要求しているので、これは私たちがアカウントの所有者であることを証明することになります。
タイムスタンプは、リクエストがいつ送信されたかをサーバーに伝えます。ネットワークの信頼性が低いかダウンしている可能性があるため、サーバーは予想よりも大幅に遅れてリクエストを受信する可能性があります。時間が経過しすぎると、リクエストは拒否されます。 「recvWindow」パラメータを使用して待機時間を指定できます。デフォルトは 5,000 ミリ秒です。
Postman は、これらのフィールドの両方の作成を処理します。 「送信」をクリックすると返信が届きます。 「残高」の下に、BNB、BTC、BUSD、ETH、LTC、TRX の 6 つの資産が表示されます。残高はフリーとロックに分かれます。まだ何もブロックされていないため、すべてのアセットは無料になるはずです。
あなたの新しい(存在しない)富、おめでとうございます!
シンボルの現在の価格を確認する方法
さまざまな方法で資産の現在の価格を取得できます。おそらく最も簡単なのは、次のようなリクエストです。
GET /api/v3/ticker/24時間ご想像のとおり、これにより、過去 24 時間の資産価格に関する情報が得られます。 「マーケット」>「24時間ティッカー価格変動統計」で見つけてください。シンボル変数として表示されるデフォルトのペアは BTCUSDT です。
今すぐ送信して、価格情報の内訳を確認できます。シンボルを変更したり (BNBBUSD、LTCUSDT など)、変数のチェックを外して 40 ペアのデータを返すこともできます。
資産が取引されている現在の価格を返す、より単純な呼び出し (「マーケット」>「シンボル価格ティッカー」) もあります。
/api/v3/価格を取得する以前と同様に、シンボル変数を変更するか、完全に削除して、すべてのシンボルの最新価格を取得できます。
現在のオーダーブックの深さを確認する
オーダーブックの深さ (市場の深さまたは DOM とも呼ばれます) から、市場について多くのことがわかります。有用な情報を返すために呼び出しを行います。
GET API/v3/深さデフォルト値 (「マーケット」 > 「オーダーブック」) で送信すると、BTCUSDT の入札と要求を示す応答が返されます。テストネット サーバーは実際のサーバーほど多くのデータを出力しないため、実際の環境で表示されると予想されるスクリーンショットを以下に示します。

上で強調表示されたセクションでは、最初の問題が発生します。ここでは BTCUSDT の台帳を見ているので、一番上の数字は、誰かがあなたの BTC に対して支払ってもよい価格です。以下は購入希望額です。したがって、これは、この注文が BTC あたり 9,704.65 USDT のレートで 0.999 BTC を要求していることを示唆しています。さらに下にスクロールすると、提示価格が減少することがわかります。つまり、購入者の支払いが少なくなります。
利益を得たい場合には、当然、最高のオファーが最も魅力的になります。ただし、市場で、たとえば 3 BTC を売ろうとすると、最良の価格で 0.999 BTC しか売ることができません。注文が完全に満たされるまで、さらに(安い)入札を受け入れる必要があります。

スクロールし続けると質問が表示されます。機能的には、USDT のために BTC を売る注文である点を除けば、入札と似ています。
テスト注文をする
それではテスト注文をしてみます。
POST api/v3/order/testテストネットの資金を使用しているだけであっても、このリクエストによって実際に注文が行われるわけではありません。これは、注文を送信する前にテストするのに役立ちます。 「取引」 > 「新規注文のテスト (TRADE)」で見つけます。

ご覧のとおり、さらに多くのパラメータが関係しています。マークされた部分を見てみましょう。
シンボル - これは前にも見たことがあります。これはあなたが取引したいペアです。
サイド - ここで、買いたいか売りたいかを示します。 BTCUSDT ペアの場合、BUY は USDT で BTC を購入することを示し、SELL は USDT で BTC を販売します。
type – 送信する注文のタイプ。可能な値 (詳細はこちら):
制限
市場
ストップロス
ストップロス制限
利益を得る
利益制限
制限メーカー
timeInForce – このパラメータは、注文の実行方法を表します。
GTC (キャンセルされるまで有効) はおそらく最も一般的な設定です。 GTC は、注文が約定されるまで、またはキャンセルされるまで、注文が有効であることを保証します。
FOK (実行またはキャンセル) – FOK は取引所に注文をただちに実行するように指示します。交換ができない場合は、直ちにご注文をキャンセルさせていただきます。
IOC (即時実行またはキャンセル) – 注文は全部または一部をただちに実行する必要があり、そうでない場合はキャンセルされます。 FOK とは異なり、注文は部分的に約定できる場合にはキャンセルされません。
数量は単に購入または売却したい資産の量です。
価格 – 販売したい価格。 BTCUSDT ペアの場合、これは USDT で表されます。
newClientOrderId – 注文識別子。これは必須フィールドではありませんが、後でクエリを簡素化する識別子に設定できます。それ以外の場合は、取引所でランダムに生成されます。
大丈夫!次に、テスト注文を作成しましょう。自動的に生成された値、つまり価格 9,000 ドルで USDT あたり 0.1 BTC の売り指値注文を使用します。 「送信」をクリックします。すべてが成功すると、応答として {{}} が返されます。
実際の注文
本物の偽の注文をする時が来ました。
POST /api/v3/order[取引] > [新規注文] に移動します。テストの順序についてはすでによく知っているので、ここでのパラメータに驚くことはありません。すべての値をそのままにしておきますが、販売価格を $40,000 に変更します。これを反映するように価格値を変更します。次に「送信」をクリックします。
成功した場合、応答には注文に関する詳細情報が含まれます。
オープン注文のステータスを確認する
前のセクションで注文の確認を受け取りましたが、後で確認したい場合はどうすればよいですか?いくつかのご要望を承っております。
GET /api/v3/openOrdersこれは、「取引」 > 「現在のオープン注文 (USER_DATA)」の下にあります。デフォルトではBTCUSDTが選択されています。 「送信」を押すと、開いているすべての BTCUSDT 注文が受信されます (これまでのところ、前に設定した注文のみが表示されます)。シンボルを省略すると、代わりにすべてのオープン注文が返されます。
GET /api/v3/allOrders「取引」 > 「すべての注文 (USER_DATA)」では、オープンな注文だけでなく、すべての注文の概要が表示されます。ここではシンボルを指定する必要があります。 「orderId」、「startTime」、「endTime」は、検索を絞り込むのに役立つオプションのパラメーターです。ここではそのままにしておきますので、チェックボックスをオフにします。 「送信」をクリックすると、以前と同じ応答が表示されます。注文を終了またはキャンセルした場合も、ここに表示されます。
最後に、次を使用して特定の注文をリクエストできます。
GET /api/v3/order「Trade」>「Query Order (USER_DATA)」で取得します。 「orderId」または「origClientOrderId」(注文に追加できるオプションの「newClientOrderId」タグ)のいずれかを指定する必要があります。 「orderId」のチェックを外します。 「origClientOrderId」には、以前に使用されていたデフォルトのタグ「my_order_id_1」を提供します。フィールドに入力して「送信」をクリックすると、応答が届きます。
注文のキャンセル
しばらくすると、40,000 ドルの目標は楽観的すぎると判断し、注文をキャンセルしたいと思うかもしれません。この場合、次を使用します。
/api/v3/order を削除します「取引」>「注文のキャンセル」で、キャンセルする注文を強調表示できるクエリ。 「orderId」と「newClientOrderId」のチェックを外し、「origClientOrderId」の値として「my_order_id_1」を渡します。
このリクエストを送信すると、注文は返されます。 「ステータス」まで下にスクロールすると、実際にキャンセルされていることがわかります。これを確認するには、再度 GET /api/v3/openOrders エンドポイント (空のリストを使用) を使用するか、 origClientOrderId を使用して GET /api/v3/order を使用します。
瞬時に約定される注文の曖昧さ
前回の注文は、BTC の価格が 40,000 ドルに達した場合にのみ機能する指値注文だったため、実行されませんでした。成行注文の場合、基本的には「資産が現在取引されている価格で売買する」ことを意味します。この注文はすぐに満たされます。
このために、「取引」>「新規注文」に戻りましょう。応答タイプ (newOrderRespType) を示します。これは、サーバーから受信したい応答に応じて構成できるパラメーターです。ここには ACK、RESULT、または FULL の 3 つのオプションがあります。各応答の例はここで確認できます。注文が受信されたことを簡単に確認する「ACK」を使用します。
以下では、現在の市場価格で BUSD に対して BNB を売る成行注文を送信することがわかります。

応答では最小限の情報が得られることに注意してください。

/api/v3/allOrders エンドポイントを介して注文が約定されたことを確認できます。
取引を確認する
最後に、トランザクションを検証するためのエンドポイントを見てみましょう。
GET /api/v3/myTradesリクエストは「取引」 > 「アカウント取引リスト (USER_DATA)」セクションにあります。特定のシンボルで各トランザクションを確認できます。デフォルトのシンボル (BTCUSDT) のすべての取引を確認したい場合は、「startTime」、「endTime」、「fromId」のチェックを外してください。答えは最大 500 件の取引を返します。さらに表示したい場合は制限を変更してください。
Postman を使用したデバッグ
Postman では、生の HTTP リクエストとレスポンスをさらに公開できます。

このメニューにより Postman コンソールが開き、各リクエストの詳細が表示されます。

最終的な考え
このガイドの目的は、コードを 1 行も書かずに Binance API を紹介することです。必要な手順をすべて完了した場合は、当社が情報を要求および送信する方法を理解できるはずです。
このシリーズの次のパートでは、暗号通貨やその他のデジタル資産の売買を自動化できるようにするための基本的なコーディング概念をいくつか紹介します。
他にご質問はありますか?成長を続ける Binance 開発者コミュニティ フォーラムにアクセスするか、ドキュメントをチェックしてください。
