目錄
了解並使用 API 接口進行加密貨幣交易可以為進入和退出部位打開無限可能。僅需要一些簡單的編碼知識,您就可以使用交易後端程序來自動執行交易策略。在不使用網站的情況下,您可以更快找到與之匹配的高性能應用程序。
本系列的目的是向您介紹幣安的寧靜式 API 並教您如何交互。最後您會可以自己查詢市場和部位的信息以及下達各種不同的訂單類型。
在本文中,我們將使用 Postman 來與交易所進行通信。別擔心 – 我們不會讓任何實際資金置於風險之中。
我們使用測試網:我們獲得一些沒有實際價值的資金,它們的功能與真實硬幣和代幣完全相同,直到您熟悉這個 API,就可以開始使用它來交易真實資金。
注意: 在真實交易情況下,標記密鑰對管理不同密鑰十分重要。您的帳戶可以同時具有多種不同權限的密鑰,如果您運行多種交易機器人,使用帶有描述性標籤的單獨密鑰可以更輕鬆地管理權限或刪除,而無需更改所有的交易機器人。
Postman 是一個 API 協作平台,對我們來說是一個完美的起點 – 我們可以訪問將測試的幣安請求集合,而無需編寫任何代碼。
該程序可用於 Mac、Windows 和 Linux 。請到下載頁面下載 .zip 文件。
完成後,在文件瀏覽器中找到並安裝、啟動該應用程序,這樣就完成了。請注意,您可以創建一個帳戶來登錄,但也可以跳過該步驟,選擇窗口底部的選項即可。
在此階段,您應該看到類似於以下的界面。
我們要首先架構環境,這僅是在我們將要使用的功能中添加變量的一種方式。我們首先需要從幣安 GitHub 的存儲庫中獲取一些信息:請到此處下載 .zip 文件。
下載應該不會花費太長的時間。在文件瀏覽器中找到並解壓縮,之後會到 Postman。
單擊右上角的齒輪圖標(如上圖所示),您會看到“管理環境” 彈出頁面。
我們快完成了。點擊 幣安現貨交易測試網 API ,您將看到以下變量。在紅色框中貼上先前保存的兩個參數,點擊更新並退出當前視窗。
在此頁面上,“時間戳記”和“簽名”部分留空。這兩個值會在每次請求時自動創建。
還有最後一項:在之前設置環境的齒輪圖標右側,您會看到一個下拉選單顯示為無環境。點擊它並選擇幣安現貨交易測試網 API。
現在我們要導入巨集 – 就是我們在交易中會需要的各種各樣的請求。以下是如何將其加載到我們的環境中:
在視窗左側的“集合”標籤下,您會發現我們有一個包含 100 多種請求的文件夾。恭喜你,已經導入成功了。在下一節中,我們將詳細說明可以提出的各種請求。
如果您在“集合”標籤下展開文件夾,會看到許多不同的請求。從顏色編碼中,您可能會注意到我們可以使用三種類型:
現在我們來進行第一項指令!我們將得到可以在交易所的交易符號和交易規則:
GET /exchangeInfo
這項指令不需要任何其他參數,您可以將其複制黏貼到地址欄中得到響應。如果是包含多個參數的請求,Postman 可以輕鬆查看和修改它們。
要加載此請求,請選擇市場 > 交易信息。將彈出以下視窗:
在這裡不需要執行任何其他操作,請繼續並點擊發送。您將得到響應:
在最上方加強顯示的部分中,您會看到一些重要信息:
響應的狀態( 200 表示我們已成功,400-499 表示我們遇到問題)
接收響應所花費的時間(不到一秒鐘)
響應的大小(〜22KB)。
在第二個框中是響應的主體,為了更容易查看已經仔細編排過了:其中包含交易所的信息、您可以交易的貨幣對及其最小/最大金額。
信息量看起來很多,但這種格式使您可以很容易地將之編程處理。在編寫交互時腳本時,您可以從響應中選擇特定元素的屬性。
讓我們查看自己擁有什麼資產,以及各有多少:
GET /account
可以在交易 > 帳戶信息下找到該選項。單擊它將看到與上一個相似的佈局,但有兩個新變量:時間戳和簽名。簽名是一種安全措施,因為我們現在正在訪問敏感信息,必須證明我們是帳戶持有人。
時間戳告訴服務器請求是何時發送的。由於網絡可能不穩定或停機,因此當服務器收到請求的時間可能比預期的要晚得多。如果時間過長,它將拒絕該請求。您可以使用 recvWindow參數指定要等待多長時間,該參數默認為 5000 毫秒。
Postman 幫我們處理這兩個部分:點擊發送您便可以得到答复。您可以看到六種資產餘額 – BNB、BTC、BUSD、ETH、LTC 和 TRX。餘額將分為可使用和鎖定兩部分。我們尚未鎖定任何資產,因此您的應全部顯示為可使用。
恭喜您獲得了新的資產!(但他們其實不存在的)
我們可以通過不同的方式獲取資產的當前價格。最簡單的是以下請求:
GET /api/v3/ticker/24hr
您可能已經猜到,以上指令這為我們提供過去二十四小時的資產價格信息。在市場 > 24 小時行情價格變動統計中可以找到,使用的默認符號變量為 BTCUSDT。
您可以發送此信息以立即查看價格信息明細。您也可以更改符號(更改為BNBBUSD、LTCUSDT等),也可以取消選取的變量,返回 40對數據。
我們還有一個更簡單的調用(市場 > 符號價格代碼),它會返回資產當前的交易價格:
GET /api/v3/price
與以前一樣,您可以更改或刪除符號變量,並獲得所有符號的最新價格。
委託簿深度(也稱為市場深度或 DOM )可以告訴我們很多市場信息。我們將使用以下指令來獲得一些有用的信息:
GET api/v3/depth
當我們使用默認值(市場 > 委託簿)發送此指令時,它會告知我們有關 BTCUSDT 的出價與需求。 測試網服務器不會產生與實際數據一樣多的數據,所以下面是您在實際環境下會看到的屏幕截圖:
在上面加強顯示的部分中,我們可以看到第一個出價。由於我們正在看 BTCUSDT 的委託簿,上面的數字是某人願意為您 BTC 支付的價格,下方則是是他們願意購買的。表示此訂單要求以每 BTC 9704.65 USDT 的價格買下 0.999 BTC。如果我們繼續向下看,我們會看到價格逐漸下降 – 代表願意支付較少費用的買方。
如果您想要物有所值,最高報價自然是最有吸引力的。如果您要推銷 3 BTC,那麼您只能以最佳價格出售 0.999 BTC,剩下的需要接受後續更便宜的報價,直到整個訂單被執行。
繼續向下滾動,您將看到其他需求。它們與出價類似,不同之處在於它們要 出售 BTC 換成 USDT。
現在我們要來發布測試訂單。
POST api/v3/order/test
即使我們只是使用測試網上的資金,該請求也不會實際下單。測試網在實際提交訂單之前對測試訂單很有用。在交易 > 測試新訂單(TRADE) 中可以找到這個指令。
您可以看到涉及了更多參數。讓我們仔細檢查一下:
好的!我們現在就創建一個測試訂單。我們使用自動生成的值:一份以 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 美元的目標過於樂觀,希望取消該訂單。在這種情況下,我們將使用:
DELETE /api/v3/order
在交易 > 取消訂單中找到該請求,使我們能夠選擇要取消的訂單。取消選取 orderId 和 newClientOrderId 並將“ my_order_id_1” 作為 origClientOrderId 的值。
當您發送此請求時,訂單將被退回。如果您往下到 “狀態” 欄目,;您會看到它確實被取消了。如果要確認,請再次使用 GET / api / v3 / openOrders端點(提供了一個空列表)或使用origClientOrderId 在指令 GET / api / v3 / order 之中。
我們之前的訂單沒有成交,因為它是一個限價訂單,只有 BTC 價格達到 40,000 美元時才會成交。對於市價單,基本表明“以資產當前交易價格買賣”,這筆訂單就會立即被填滿。
為此,讓我們回到交易 > 新訂單。我們將演示響應的類型( newOrderRespType),該參數讓我們可以根據服務器獲取的響應進行參數調整。這裡有三個選項: ACK、RESULT 或 FULL – 您可以在此處查看每個響應的示例。我們使用可以簡單確認已收到訂單的 ACK 模式
下面您可以看到我們即將提交的市價單,以當前市場 BUSD 的價格出售 BNB。
請注意,該響應僅向我們提供了最簡略的信息:
您可以驗證訂單是否已填充: / api / v3 / allOrders 。
最後,讓我們看一下檢查您的交易的端點:
GET /api/v3/myTrades
這指令位於交易 > 帳戶交易清單(USER_DATA)中可以找到。它允許您檢查每個交易中的特定交易品種,如要查看默認符號下(BTCUSDT )的所有交易,只需取消選取 startTime、endTime 和 fromId。最多可以返回 500 筆交易 – 如果 想查看更多內容,需調整 limit 的值。
在 Postman 中,可以進一步顯示原始 HTTP 請求和響應。
此選單將打開 Postman 控制台,並打印出每個請求的詳細信息。
本指南的目的是向您簡要介紹無需編寫任何代碼的使用幣安 API。如果您詳讀指南,那麼您現在應該對我們如何請求和提交信息有所了解。
在本系列的下一部分中,我們將介紹一些基本編碼概念,這些概念使我們能夠自動執行加幣貨幣和其他數位資產的買賣。
仍然疑問嗎?前往我們不斷進步的幣安開發者社區論壇,或查看技術文檔。