主なポイント

  • API は、アプリケーションが情報を共有できるようにし、暗号通貨取引戦略を強化するために使用できるコードです。

  • Postman は、API の構築と使用のプロセスを簡素化する API プラットフォームです。

  • Binance API エコシステムでのスポット取引に Postman を使用する方法について詳しく学びます。

Binance API Series Pt. I – Spot Trading with Postman

導入

暗号通貨取引の API を理解して使用すると、ポジションのエントリーとエグジットの可能性が広がります。簡単なコーディングの知識があれば、取引所のバックエンドに接続して取引戦略を自動化できます。Web サイトを経由せずに、高性能アプリケーションのマッチング エンジンにすばやくアクセスできます。

この記事では、簡素化された API プラットフォームである Postman を使用して取引所と通信します。心配しないでください。実際の資金が危険にさらされることはありません。

前提条件

テストネットキー

現在の目的にはテストネットを使用します。このシミュレーション機能により、実際の価値のない資金がいくつか提供され、試すことができます。これらは実際のコインやトークンと同じように機能するため、API に慣れたら、実際の資金の取引に使用できます。

  1. まず、スポット テスト ネットワークにアクセスします。

  2. アクセスするには、GitHub アカウントでログインしてください。まだアカウントを作成していない場合は、作成する必要があります。

  3. 「認証」をクリックし、GitHub 経由でサインインします。

  4. API キーの下に、キーが登録されていないことが通知されます。HMAC_SHA256 キーの生成をクリックして、ペアを作成します。

  5. 次の画面で、キーにラベルを付けます。好きな名前を付けて、「Generate」をクリックします。

  6. API キーとシークレット キーの 2 つのキーが表示されます。これらのキーを今すぐ記録することが重要です。記録しないと、キー作成プロセスを再度開始する必要があります。後で簡単にコピーして貼り付けられるように、これらのキーをマシンのメモ アプリに保存することをお勧めします。

注: 実際の取引所を使用してさまざまなキーを管理する場合は、キーにラベルを付けることをお勧めします。アカウントには、異なる権限を持つ複数のキーを設定できます。複数の取引ボットを実行している場合は、説明的なラベルが付いた個別のキーを使用すると、すべてのボットを変更せずに権限を管理したり、個々のキーを削除したりすることが容易になります。

Postmanのダウンロードとインストール

Postman は API コラボレーション プラットフォームです。私たちにとっては完璧な出発点です。コードを 1 行も書かずにテストする Binance リクエストのコレクションにアクセスできるようになります。

このプログラムは、Mac、Windows、Linux で利用できます。ダウンロード ページにアクセスして、.zip ファイルをダウンロードしてください。

それが完了したら、ファイル エクスプローラーでそれを見つけてインストールします。アプリケーションを起動すれば、準備完了です。ログインするためにアカウントを作成することもできますが、必須ではありません。この手順をスキップしたい場合は、ウィンドウの下部にあるオプションを選択するだけです。

環境を作る

この段階では、次のようなインターフェースが表示されるはずです。

まず、環境を作成します。このステップは、操作するリクエストに変数を追加するだけです。まず、Binance GitHub リポジトリから情報を取得する必要があります。こちらにアクセスして、.zip ファイルをダウンロードしてください。

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

右上隅にある歯車アイコンをクリックします (上図参照)。[環境の管理] ポップアップが表示されます。

  1. [インポート] を選択し、抽出したフォルダー (binance-postman-api) に移動します。

  2. それを入力してから、環境フォルダーに入ります。

  3. 2 つのファイル (メインネット用とテストネット用) が表示されます。必要なのは binance_com_spot_testnet_api.postman_environment.json です。キーは他のファイルでは機能しないため、正しいファイルであることを確認してください。

もうすぐ完了です。Binance Spot Testnet API をクリックして、以下の変数を確認します。先ほど保存したキーを貼り付けて、赤で囲まれた 2 つのパラメータを編集します。[更新] をクリックして、ポップアップを終了します。

この画面では、タイムスタンプと署名のフィールドを空白のままにしておきます。これら 2 つの値は、リクエストごとに自動的に作成されます。

最後にもう 1 つやるべきことがあります。先ほど環境を設定するためにクリックした歯車アイコンの右側に、現在「環境なし」と表示されているドロップダウン メニューが表示されます。それをクリックして、「Binance Spot Testnet API」を選択します。

コレクションのインポート

次に、コレクションをインポートします。これは、呼び出しを行うときに大変な作業を行う、さまざまなリクエストの集合です。これを環境にロードするには、次のようにします。

  1. 左上隅の「インポート」をクリックします。

  2. ポップアップの「ファイル」タブで、「ファイルのアップロード」を選択します。

  3. もう一度、binance-postman-api フォルダを探します。それを見つけて開きます。

  4. 今回は、サブディレクトリにコレクションを入力します。

  5. ここにも 2 つのファイルがあります。1 つは先物 API を操作するためのものです。ただし、ここではスポット API を操作するため、Binance Spot API.postman_collection.json ファイルを選択する必要があります。

  6. インポートが Postman Collection 形式であることを示す確認画面が表示されます。[インポート] を選択します。

ウィンドウの左側にある [コレクション] タブの下に、100 件を超えるリクエストを含むフォルダーがあることがわかります。おめでとうございます。準備は完了です。次のセクションでは、作成できるリクエストの種類について説明します。

リクエストの作成

「コレクション」タブのフォルダーを展開すると、さまざまなリクエストを行えることがわかります。色分けから、使用できるメソッドが 3 種類あることがわかります。

  • GET: GET メソッドは、サーバーから情報を取得するために使用されます。これを使用して、アカウント残高、資産価格などの情報を検索します。

  • POST: 通常、サーバー上に情報を作成するには POST メソッドを使用します。このメソッドは、注文の発行や引き出しのリクエストなどに必要です。

  • DELETE: DELETE メソッドは、サーバーに情報を削除するよう要求します。注文をキャンセルするときに便利です。

シンボルのリストと取引ルールを見つける

最初のリクエストの時間です!取引所で取引できるシンボルと取引ルールを取得します。

/api/v3/exchangeInfo を取得します。

これは追加のパラメータを必要としません。これをコピーしてアドレスバーに貼り付けると、応答が返されます。ただし、Postman を使用すると、複数のパラメータを含むリクエストを簡単に確認および変更できます。

このリクエストを読み込むには、「マーケット」>「取引所情報」を選択します。次のようなタブがポップアップ表示されます。

ここでは他に何もする必要はありませんので、送信を押してください。すると応答が返ってきます。

一番上のハイライト表示されたセクションには、いくつかの重要な情報が表示されます。

  • 応答のステータス (200 は成功したこと、400 ~ 499 は問題が発生したことを意味します)。

  • 応答を受信するのにかかった時間 (1 秒未満)。

  • 応答のサイズ (~22KB)。

2 番目のボックスには、応答の大部分が表示されます。このボックスには、取引所、取引可能なペア、およびそれらの最小/最大金額に関する情報が含まれています。

情報量が多いように見えますが、この形式によりプログラムでの操作が簡単になります。これを操作するスクリプトを作成すると、応答から特定の要素の特定のプロパティを簡単に選択できるようになります。

口座残高を確認する

保有している資産とその量を確認しましょう。

GET /api/v3/アカウント

これは、[取引] > [アカウント情報] の下にあります。クリックすると、前のレイアウトに似たレイアウトが表示されます。ただし、タイムスタンプと署名という 2 つの新しい変数があることにも注意してください。署名はセキュリティ対策です。機密情報を要求しているため、署名によってアカウント所有者であることが証明されます。

タイムスタンプは、リクエストが送信された時刻をサーバーに通知します。ネットワークが不安定であったり、ダウンタイムが発生する場合があるため、サーバーがリクエストを受信するのが予定よりかなり遅れることがあります。時間が経過しすぎると、サーバーはリクエストを拒否します。recvWindow パラメータを使用して待機時間を指定できます。このパラメータのデフォルトは 5000 ミリ秒です。

Postman は、これら 2 つのフィールドの生成を処理します。送信をクリックすると、応答が返されます。残高の下に、BNB、BTC、BUSD、ETH、LTC、TRX の 6 つの資産が表示されます。残高は、無料資産とロックされた資産に分割されます。まだロックされていないため、資産はすべて無料であるはずです。

シンボルの現在の価格を取得する

資産の現在の価格を取得するには、さまざまな方法があります。おそらく最も簡単なのは、次のリクエストです。

GET /api/v3/ticker/24時間

ご想像のとおり、これにより過去 24 時間の資産価格に関する情報が得られます。これは、[マーケット] > [24 時間ティッカー価格変動統計] で確認できます。シンボル変数として表示されるデフォルトのペアは BTC/USDT です。

これをすぐに送信して、価格情報の内訳を確認できます。また、シンボルを変更したり(BNB/USDT、LTC/USDT など)、変数のチェックを外して 40 ペアのデータを返すこともできます。

資産が取引されている現在の価格を返す、より簡単な呼び出し (Market > Symbol Price Ticker) もあります。

/api/v3/価格を取得する

前と同様に、シンボル変数を変更したり、完全に削除して、すべてのシンボルの最新価格を取得したりできます。

現在の注文書の深さを確認する

注文板の深さ(マーケットの深さ(DOM)とも呼ばれます)は、市場について多くのことを教えてくれます。ここでは、役に立つ情報を返す呼び出しを行います。

GET /api/v3/depth

これをデフォルト値(マーケット > オーダーブック)で送信すると、BTC/USDT のビッドとアスクを知らせる応答が返されます。テストネット サーバーは実際のサーバーほど多くのデータを生成しません。以下は実際の環境で表示されると思われるスクリーンショットです。

上記のハイライトされたセクションでは、最初の入札を確認できます。BTC / USDTのブックを見ているので、上の数字は誰かがあなたのBTCに支払う意思のある価格です。下は彼らが購入したいと思っている量です。したがって、これは、この注文が1 BTCあたり9704.65 USDTのレートで0.999 BTCを要求していることを示しています。下にスクロールし続けると、オファー価格が下がることがわかります。これは、より少ない金額を支払う買い手を表しています。

当然のことながら、最もお得なオファーは、最も魅力的なものになります。ただし、たとえば 3 BTC を売ろうとしている場合、最高価格で売ることができるのは 0.999 BTC だけです。注文が満たされるまで、後続の(より安い)オファーを受け入れる必要があります。

スクロールし続けると、売り注文が表示されます。売り注文は機能的には売り注文と似ていますが、BTC を USDT で売る注文を表しています。

テスト注文をする

それではテスト注文を投稿します。

POST /api/v3/order/test

テストネットの資金を使用しているだけですが、このリクエストでは実際に注文は行われません。実際に注文を送信する前にテストするのに役立ちます。[取引] > [新規注文のテスト (TRADE)] で見つけてください。

他にも多くのパラメータが関係していることがわかります。チェックされているものを見ていきましょう。

  • シンボル – 以前にもこのシンボルに遭遇しました。これが取引したいペアです。

  • サイド – ここでは、購入または販売のどちらを希望するかを指定します。BTC/USDT ペアの場合、購入は BTC を USDT で購入することを示し、販売は BTC を USDT で販売することを示します。

  • type – 送信する注文の種類。可能な値(詳細はこちら):

    • 制限

    • 市場

    • ストップロス

    • ストップロス制限

    • 利益を得る

    • 利益制限

    • 制限メーカー

  • timeInForce – このパラメータは、注文をどのように実行するかを表します。

    • GTC (キャンセルされるまで有効) – おそらく最も一般的な設定です。GTC により、注文が履行されるかキャンセルされるまで、注文が有効であることが保証されます。

    • FOK (フィル・オア・キル) – FOK は取引所に注文を一度にすべて実行するよう指示します。取引所が実行できない場合、注文は直ちにキャンセルされます。

    • IOC (即時またはキャンセル) – 注文の全部または一部を即時に実行するか、キャンセルする必要があります。FOK とは異なり、注文が部分的に履行できる場合はキャンセルされません。

  • 数量 – 購入または売却したい資産の数量。

  • 価格 – 売りたい価格。BTC/USDT ペアの場合、これは USDT で表されます。

  • newClientOrderId – 注文の識別子。これは必須フィールドではありませんが、後で簡単に照会できる識別子に設定できます。それ以外の場合は、取引所によってランダムに生成されます。

わかりました!では、テスト注文を作成しましょう。自動生成された値を使用して、0.1 BTC を USDT で 9000 ドルで売る指値注文を実行します。[送信] をクリックします。成功すると、応答として {} が返されます。

実際に注文する

実際に注文する時間です。

POST /api/v3/order

「取引」>「新規注文」に移動します。テスト注文についてはすでにお馴染みなので、ここでのパラメータは驚くようなものではありません。すべての値はそのままにして、販売価格を 40,000 USD に変更します。これを反映するように価格値を調整します。次に、「送信」をクリックします。

成功した場合、応答では注文に関する一連の詳細が返されます。

未処理注文のステータスを確認する

前のセクションで注文が行われたことを確認しましたが、後で再確認したい場合はどうすればよいでしょうか? いくつかのリクエストがあります。

GET /api/v3/openOrders

これは、[取引] > [現在のオープン注文 (USER_DATA)] にあります。デフォルトでは BTC/USDT が選択されています。[送信] をクリックすると、すべてのオープン BTC/USDT 注文が取得されます (これまでのところ、以前に設定した注文のみが表示されます)。シンボルを指定しないことも選択できます。その場合、代わりにすべてのオープン注文が返されます。

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 を削除します

「取引 > 注文のキャンセル」の下には、キャンセルする注文を個別に選択できるリクエストがあります。orderId と newClientOrderId のチェックを外し、origClientOrderId の値として「my_order_id_1」を渡します。

このリクエストを送信すると、注文が返されます。「ステータス」までスクロールすると、確かにキャンセルされていることがわかります。これを確認するには、GET /api/v3/openOrders エンドポイントを再度使用するか (空のリストが返されます)、origClientOrderId を指定して GET /api/v3/order を使用します。

すぐに注文が完了する

前回の注文は、BTC 価格が 40,000 USD に達したときにのみ発動する指値注文だったため、約定しませんでした。成行注文では、基本的に「資産が現在取引されている価格で買うか売るか」と指示します。これは即座に約定します。

そのためには、[取引] > [新規注文] に戻りましょう。応答タイプ (newOrderRespType) について説明します。これは、サーバーから取得したい応答に応じて調整できるパラメーターです。ここには ACK、RESULT、または FULL の 3 つのオプションがあります。各応答の例は、こちらで確認できます。ここでは、注文が受信されたという簡単な確認応答である ACK を使用します。

以下では、現在の市場価格で BNB を BUSD に売却する成行注文を送信しようとしていることがわかります。

応答では最小限の情報しか提供されないことに注意してください。

/api/v3/allOrders エンドポイントを使用して注文が完了したことを確認できます。

取引の確認

最後に、取引を確認するためのエンドポイントを見てみましょう。

GET /api/v3/myTrades

これは、[取引] > [アカウント取引リスト (USER_DATA)] にあります。特定のシンボルの各取引を確認できます。デフォルトのシンボル (BTC/USDT) のすべての取引を確認するには、startTime、endTime、fromId のチェックを外します。応答では最大 500 件の取引が返されます。さらに確認したい場合は、制限を微調整してください。

Postman によるデバッグ

Postman では、生の HTTP リクエストと応答をさらに公開することが可能です。

このメニューを選択すると、Postman コンソールが開き、各リクエストの詳細が出力されます。

Binance APIを使い始める

このガイドの目的は、コードを 1 行も書かずに Binance API をやさしく紹介することでした。ここまで読んでいただければ、情報をリクエストして送信する方法がおわかりいただけるはずです。

その間、質問がありますか? 成長を続ける Binance 開発者コミュニティ フォーラムにアクセスするか、ドキュメントをご覧ください。

参考文献

  • 用語集: アプリケーション プログラミング インターフェイス (API)

  • API キーとは何ですか? また、それを安全に使用するにはどうすればいいですか?

  • API キーを安全に使用する方法: Binance からの 5 つのヒント