はじめに
このシリーズの目的は、バイナンスのREST APIを紹介し、利用方法について伝えることです。最終的には、市場とポジションに関する情報を照会し、さまざまな種類の注文を出すことができるようになります。
前提条件
テストネットキー
テストネットを目的に使う予定です。これにより、実際には何の価値もない資金を手に入れることができます。これらは本物のコインやトークンと全く同じように機能するので、APIに慣れてしまえば、本物の資金を取引する時に慣れた状態で始めることができます。
- まずはスポットテストネットワークへ。
- アクセスするには、GitHubアカウントでログインする必要があります。まだ作成していない場合は作成してください。
- AuthenticateをクリックしてGitHub経由でサインインします。
- API Keysの下に、鍵が登録されていないことが通知されます。Generate HMAC_SHA256 Keyをクリックしてペアを作成します。
- 次の画面で、キーにラベルを付けます。好きなように呼んで、Generateを押してください。
- API KeyとSecret Keyの2つのキーが提示されます。今すぐこれらを記録することが重要です。記録しない場合は、鍵の作成プロセスを再度開始する必要があります。後で簡単にコピー&ペーストできるように、お使いのマシンのノートアプリに保存しておくことをお勧めします。
ポストマンのダウンロードとインストール
ポストマンはAPIコラボレーションプラットフォームです。これは私たちにとっての出発点です。一行のコードを書かなくてもテストできるバイナンスリクエストのコレクションにアクセスできるようになります。
それが完了したら、ファイルエクスプローラーでそれを見つけてインストールしてください。アプリケーションを起動してください。ログインするためにアカウントを作成することができますが、その必要はありません。このステップをスキップしたい場合は、ウィンドウの下部にあるオプションを選択してください。
環境作り
この段階では、以下のようなインターフェースが必要です。
ダウンロードにはそれほど時間はかかりません。ファイルエクスプローラーで見つけて解凍してください。その後、ポストマンに戻って先に進むことができます。
- インポートを選択し、先ほど抽出したフォルダー(binance-postman-api)に移動します。
- それを入力して、環境フォルダーに入ります。
- これで2つのファイルが表示されます。(1つはメインネット用、もう1つはテストネット用)binance_com_spot_testnet_api.postman_environment.jsonです。もう一方のファイルではキーが動作しないので、正しい方を確認してください。
この画面では、タイムスタンプと署名フィールドは空白のままにしてください。これら2つの値は各リクエストで自動的に作成されます。
コレクションのインポート
次に、このコレクションをインポートします。これは、コールを行う際に大変な負担となるさまざまなリクエストです。環境にロードするには、次の手順に従います。
- 左上の隅にあるインポートをクリックします。
- ポップアップで、ファイルタブの下で、アップロードファイルを選択します。
- binance-postman-apiフォルダーを見つけて開いてください。
- 今回はサブディレクトリにコレクションを入力します。
- ここにも2つのファイルがあります。1つは先物APIで作業するためのものです。しかし、私たちはスポットを使用しているため、binance_spot_api_v1.postman_collection.jsonファイルを選択する必要があります。
- これで、インポートがポストマンコレクション形式であることを確認する確認画面が表示されるはずです。インポートを選択します。
ウィンドウの左側にあるコレクションタブの下に、100以上のリクエストがあるフォルダーの存在に気づくでしょう。おめでとうございます!次のセクションでは、リクエストの種類を見てみましょう。
リクエストをする
コレクションタブの下のフォルダーを展開すると、さまざまなリクエストがあることがわかります。また、色分けを見ると、3つのタイプのメソッドがあることが分かります:
- GET:GETメソッドは、サーバーから何かを取得するために使用されます。これを使ってアカウント残高や資産価格などの情報を取得します。
- POST:一般的にはPOSTメソッドを使用してサーバー上に情報を作成します。これは、注文や出金のリクエストなどを行う際に必要となります。
- DELETE:DELETEメソッドは、サーバーに情報の削除を依頼するものです。注文をキャンセルするときに重宝します。
シンボルの一覧と取引ルールを探す
最初のリクエストの時間です!取引所で取引できるシンボルと取引ルールを教えてもらいましょう:
GET /exchangeInfo
これは追加のパラメーターを取得しません。アドレスバーにコピーして貼り付けることで、レスポンスが返ってきます。しかし、いくつかのパラメーターを含むリクエストのために、ポストマンはそれらを簡単に見たり修正したりすることができます。
一番上のハイライト部分には、重要な情報が表示されています。
- 回答の状態(200は成功したことを意味し、400から499は問題に遭遇したことを意味します)
応答の受信に掛かった時間(1秒未満)
レスポンスのサイズ(22KBまで)
2番目のボックスには、応答の大部分が表示されます。きれいにプリントされているので、目に優しいです。これには、取引所自体の情報、および取引可能なペアとその最小・最大金額が含まれます。
情報量が多いように見えますが、このフォーマットはプログラム的に非常に簡単に作業できるようにしてくれます。これと対話するスクリプトを書くときには、レスポンスから特定の要素の特定のプロパティを簡単にピックアップすることができるようになります。
アカウント残高の確認
どんな資産があるのか、それぞれどれくらいあるか確認してみましょう:
GET /account
新たな(存在しない)資産を手に入れられたこと、おめでとうございます!
シンボルの現在の価格を取得する方法
私たちは、さまざまな方法で資産の現在の価格を取得することができます。おそらく最も簡単なのは、次のようなリクエストです:
GET /api/v3/ticker/24hr
GET /api/v3/price
先ほどと同様に、シンボル変数を変更したり、完全に削除したりして、すべてのシンボルの最新価格を取得することができます。
現在のオーダーブックのデプスを確認
オーダーブックのデプス(市場のデプス、またはDOMとも呼ばれている)は、市場について多くのことを教えてくれます。有益な情報が返ってくるようなコールをします:
GET api/v3/depth
これをデフォルト値(Market > Order Book)で送信すると、入札に関する応答が返信され、BTCUSDTをリクエストされます。テストネットサーバーは実際のデータほど多くのデータを生成しないため、次のスクリーンショットは実際の環境で表示されることを想定しています:
上の赤枠の部分では、最初の入札を見ることができます。私たちはBTCUSDTの本を見ているので、下の赤枠は誰かがあなたのBTCのために支払う意志がある価格です。下の数字は、彼らが買いたいと思っている金額です。これは何を意味するかというと、したがって、この注文は、0.999 BTCをBTCあたり9704.65 USDTのレートでリクエストしているということです。我々は下にスクロールし続けた場合、提示価格の減少が表示されます。これは購入者の支払いが少なくなることを示しています。
最高のオファーは、当然、あなたが投資に見合う価値を探しているなら、最も魅力的なものになるでしょう。とはいえ、例えば3 BTCを売り込もうとしているのであれば、0.999 BTCしか最低価格で売ることができません。あなたの注文がすべて埋まるまで、次の (安い) オファーを受ける必要があります。
テストオーダーの発行
今度はテストオーダーを発行します。
POST api/v3/order/test
この他にも多くのパラメーターがあることがわかります。チェックしたものを見ていきましょう:
- symbol ― 以前にも見たことがあります。これは取引したいペアです。
- side ― ここでは、購入か売却を指定します。BTCUSDTペアでは、BUYはUSDTでBTCを購入したいことを示し、SELLはUSDTでBTCを売却したいことを示します。
- type ― 送信する注文のタイプです。使用可能な値は以下(ここで詳しく説明しています):
- LIMIT
- MARKET
- STOP_LOSS
- STOP_LOSS_LIMIT
- TAKE_PROFIT
- TAKE_PROFIT_LIMIT
- LIMIT_MAKER
- timeInForce ― このパラメーターは、注文をどのように実行するかを表します。
- GTC(グッド・チル・キャンセル) ― おそらく最も人気のある設定で、GTCは注文が完了するかキャンセルされるまで、注文が有効であることを保証します。
- FOK(フィル・オア・キル) ― FOK は、注文を一度に実行するように取引所に指示します。交換できない場合は、注文は直ちにキャンセルされます。
- IOC(イメディエート・オア・キャンセル) ― 注文の全部または一部を直ちに実行するか、キャンセルする必要があります。FOKとは異なり、部分的に入力できる場合、注文は取り消されません。
- quantity ― 単純に、売買したい資産の数量。
- price ― 販売する価格。BTCUSDTペアの場合、これはUSDTで表示されます。
- newClientOrderId ― 注文の識別子。これは必須フィールドではありませんが、後で簡単に問い合わせができるように識別子を設定することができます。そうでない場合は、取引所によってランダムに生成されます。
実際の注文をする
実際に注文する時が来ました。
POST /api/v3/order
あなたのレスポンスが成功した場合、注文に関する詳細が返されます。
未決済注文の状況を確認する
前の項で注文確認は取れましたが、再度確認したい場合はどうすればいいのでしょうか?いくつかのリクエストがあります。
GET /api/v3/openOrders
GET /api/v3/allOrders
最後に、次のように特定の注文照会ができます:
GET /api/v3/order
注文をキャンセルする
しばらくすると、40,000ドルの目標は少し楽観的すぎると判断し、キャンセルしたくなるかもしれません。その場合は次のものを使用します:
DELETE /api/v3/order
すぐに満タンになる注文を出す
下の画像の例では、現在の相場でBNBをBUSDで販売るための市場注文を出していることがわかります。
このレスポンスでは最低限の情報しか得られないことに注意してください:
取引の確認
最後に、取引をチェックするためのエンドポイントを見てみましょう:
GET /api/v3/myTrades
ポストマンでのデバッグ
ポストマンでは、生のHTTPリクエストとレスポンスをさらに明らかにすることができます。
このメニューは、各リクエストの詳細を出力するポストマンコンソールを開きます。
おわりに
このガイドの目的は、1行のコードも書かずにバイナンスAPIを優しく紹介することでした。このガイドをお読みになった方は、情報をリクエストして送信する方法を理解しているはずです。