目錄
前言
本系列旨在向您介紹幣安的 REST API 並教授與之互動的方式。其後,您應該對查詢有關市場和倉位的資訊,以及下達不同類型訂單充滿信心。
必備條件
測試網金鑰
我們將使用測試網以達至我們的目的。這將為我們提供一些現實世界中沒有任何價值的資金,其功能與真正代幣完全相同。若您對 API 感到滿意,則可以開始使用它來進行真正資金交易。
- 首先前往現貨測試網路。
- 如要獲得存取權限,則您需要使用 GitHub 帳戶登入。如果您還沒有帳戶,請建立一個。
- 按一下身分驗證並透過 GitHub 登入。
- 在 API 金鑰下,系統將會告知您尚未註冊任何金鑰。按一下生成 HMAC_SHA256 金鑰可建立一個金鑰對。
- 在下一個畫面為金鑰新增一個標籤。隨意命名,然後點擊產生 。
- 您會看到兩個金鑰:API 金鑰和密鑰。由於事關重大,請先將它記錄下來,否則將需要再建立另一組金鑰。我們建議您利用電腦的記事 app 將它儲存起來,以便日後輕鬆複製及貼上。
下載並安裝 Postman
Postman 是一個 API 協作平台。由於我們可以存取將要測試的幣安請求集合而無需編寫任何程式碼,這對我們而言是個完美起點。
完成後,在檔案瀏覽器中查找、安裝並啟動該應用程式,這樣就大功告成了!請注意,您可以建立一個帳戶來登入,但這並非必要步驟。如果想要略過該步驟,選擇視窗底部的選項即可。
建立環境
在此階段,您會看到類似於下列內容的介面。
下載應該不會花很長時間。在檔案瀏覽器中查找該檔案並解壓縮,之後回到 Postman。
- 選擇匯入 ,然後導覽至剛剛解壓縮的資料夾 (binance-postman-api)。
- 進入資料夾,然後進入環境資料夾。
- 現在您會看到兩個檔案(一個用於主網,一個用於測試網)。我們在這裡選擇 binance_com_spot_testnet_api.postman_environment.json。確保您擁有正確的金鑰,因為金鑰不能與其他金鑰混用。
在此畫面上,「時間戳」和「簽名」欄位留空。這兩個值將在每次請求時自動建立。
匯入集合
現在我們要匯入集合,即我們在交易中需要的各種請求,它們將在我們進行調用時完成繁重工作。將其載入我們的環境中:
- 按一下左上角的匯入。
- 在彈出式視窗的檔案標籤下,選擇上傳檔案。
- 我們再次查找 binance-postman-api 資料夾。查找並開啟該資料夾。
- 此時,請在子目錄中輸入集合。
- 這裡又有兩個檔案了。一個可供使用期貨 API。但我們現在使用的是現貨,因此需要選擇 binance_spot_api_v1.postman_collection.json 檔案。
- 現在您應該會看到一個確認畫面,將匯入的集合標示為 Postman 集合格式。選擇「匯入」。
在視窗左側的「集合」標籤下,您會發現我們有一個包含 100 多種請求的資料夾。恭喜!已經匯入成功了。在下一節中,我們將詳細說明可以提出的各種請求。
提出請求
如果您在「集合」標籤下展開資料夾,會看到可以提出的各種不同請求。從顏色編碼中,您可能會注意到我們可以使用三種方法:
- GET:GET(取得)方法可用來擷取伺服器的內容,可用其查詢帳戶餘額、資產價格等資訊。
- POST:我們通常使用 POST(發布)在伺服器上建立資訊。而下訂單、請求提現等操作也需要用到。
- DELETE:DELETE(刪除)方法可請求伺服器刪除資訊,可隨時用來取消訂單。
尋找幣種清單和交易規則
現在來執行第一個請求!我們將得到可以在交易所進行交易的幣種和交易規則:
GET /exchangeInfo
這項指令不需要任何其他參數,您可以將其複製並貼上到地址列,即會得到回應。但是,若為包含多個參數的請求,Postman 可以輕鬆查看並予以修改。
在最上方的反白顯示部分,您會看到一些重要資訊:
- 回應狀態(200 表示我們已成功,400-499 表示我們遇到問題)
接收回應所花費的時間(不到一秒鐘)
回應的大小(約 22KB)。
第二個方塊內是回應的主體,已經仔細編排,以便更輕鬆地查看。這包含交易所的資訊、您可以交易的貨幣對及其最小/最大金額。
資訊量看起來很多,但採用這種格式可極為輕鬆地對其進行編程處理。在編寫與之互動的腳本時,可從回應中選取特定元素的特定屬性。
核查帳戶餘額
我們來核查自己所擁有的資產及其相應數量:
GET /account
恭喜您獲得了新的(不存在)資產!
如何取得幣種的目前價格
我們可透過不同方式取得資產的目前價格。最簡單的可能是提出以下請求:
GET /api/v3/ticker/24hr
GET /api/v3/price
與以前一樣,您可以變更幣種變數或將其完全移除,並取得所有幣種的最新價格。
核查目前訂單簿的深度
訂單簿深度(也稱為市場深度或 DOM )可以告訴我們很多市場資訊。我們將調用以下指令來傳回一些有用資訊:
GET api/v3/depth
當我們使用預設值(市場 > 訂單簿)發送此指令時,它會告知我們有關 BTCUSDT 的出價與需求。測試網伺服器不會產生與實際資料一樣多的資料,所以下面是您在實際環境下會看到的螢幕截圖:
在上方的反白顯示部分,我們可以看到第一個出價。由於我們正在查看 BTCUSDT 的訂單簿,上面的數字即某人願意為您的 BTC 支付的價格,下方則為他們願意買入的數量。這就表示,此訂單要求以每 BTC 9704.65 USDT 的價格買下 0.999 BTC。如果繼續向下捲動,我們會看到所報價格逐漸下降,這代表願意支付較少費用的買方。
如果您想要物有所值,最高報價自然是最有吸引力的。比如說,如果您要推銷 3 BTC,只能以最佳價格出售 0.999 BTC,剩下的需要接受其後更為便宜的報價,直到整個訂單履行完畢。
下測試訂單
現在我們要來發布測試訂單。
POST api/v3/order/test
您可以看到這裡涉及到更多參數。讓我們瀏覽已經核取的參數:
- symbol – 我們以前遇到過這個參數,這表示您要交易的貨幣對。
- side – 可在此指定要買入還是出售。對於 BTCUSDT 交易對,買入表示您想以 USDT 的價格買入 BTC,而出售則會以 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
下達立即成交的訂單
您可以在下方看到我們即將提交市價單,以 BUSD 目前的市場價格出售 BNB (幣安幣)。
請注意,回應訊息中給我們的資訊很少:
檢查您的交易
最後,我們看一下用來檢查交易的端點:
GET /api/v3/myTrades
使用 Postman 來偵錯
在 Postman 中,您可以進一步揭露原始的 HTTP 要求和回應。
此選單會開啟 Postman 主控台,接著列印出每項要求的詳細資料。
總結
本指南目的在於深入淺出地向您介紹幣安 API,且不需要編寫任何一行程式碼。如果您跟得上其中的內容,那麼現在應該可以了解我們如何提出要求及提交資訊。