8cace5555目錄
導語
先修條件
測試網路金鑰
下載並安裝Postman
建立環境
匯入集合
提出請求
總結
了解並使用API介面進行數位貨幣交易可以為買入和賣出創造更多的可能性。只需掌握一些簡單的編碼知識,即可使用交易平台的後端程式自動執行交易策略。繞過網站後,可以更快地為高效能應用程式找到撮合引擎。
這一系列文章旨在介紹幣安推出的REST API並示範具體的互動方法。經過學習,您可以游刃有餘地查詢有關市場和頭寸的信息並下達各種不同類型的訂單。
在本文中,我們將使用Postman與交易平台通訊。別擔心,我們不會讓任何真實資金面臨風險。
5a70b網中完成,事先可以領取沒有任何實際價值的虛擬資金,它們的功能與真實貨幣和代幣完全相同。在您熟練使用這款API後,即可透過其交易真實資金。
Postman是一種API協作平台。對我們來說,它是一個完美的起點——不必編寫任何程式碼,即可透過Postman存取我們需要測試的幣安請求集合。
此程式適用於Mac、Windows和Linux系統。請前往下載頁面下載「.zip」檔案。
下載完畢後,請在檔案瀏覽器中找到該檔案並進行安裝。然後啟動應用程序,即可完成操作。請注意,您可以透過建立帳戶登入程序,但建立帳戶並非必要的步驟。如果您想要跳過該步驟,只需選擇視窗底部的選項即可。
在此階段,螢幕中應顯示類似下圖的介面。
首先,我們需要創造環境。這只是在即將使用的功能中添加變數的一種方式。為此,首先需要從幣安GitHub儲存庫中抓取一些資訊。請前往此處下載「.zip」文件,
下載過程應該很快。在文件瀏覽器中找到該文件並解壓縮。然後,即可返回Postman。
點選右上角的齒輪圖示(如上圖)。您將看到管理環境彈出視窗。
選擇匯入並轉至剛剛擷取的資料夾(「binance -postman-api”)。
進入資料夾並選擇環境資料夾。
您將看到兩個檔案(分別套用於主網和測試網)。此時,我們選擇binance_com_spot_testnet_api.postman_environment.json。必須輸入正確的密碼,因為兩個密碼不能混用。
操作差不多完成了。點選幣安現貨測試網API,畫面中將顯示以下變數。將先前儲存的金鑰貼於紅線框出的欄位中,編輯兩個參數。點選更新並退出彈跳窗。
只剩最後一步了-在先前設定環境的齒輪圖示右側,您將看到一個下拉式選單,目前顯示無環境。點選該選單並選擇幣安現貨測試網API。
現在我們匯入集合-其中包含各種各樣的請求,在我們呼叫時執行繁重而複雜的任務。如需將其載入我們的環境:
點選左上角的匯入 strong>。
在彈出視窗的檔案標籤下,選擇上傳檔案。
再次找到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表示遇到問題)
回應接收時間(不到1秒)
回應文字大小(約22 KB)。
第二個框是回應的容量。為了便於閱讀和學習,我們進行了仔細編排——其中包含交易平台資訊、可以交易的貨幣對及其最低/最高金額。
資訊量似乎很大,但這種格式很容易透過程式處理。在編寫互動腳本時,您將可以輕鬆地從回應中選擇特定元素的特定屬性。
在此處可以查看所持資產以及對應的金額:
GET/account
在交易> 帳戶資訊下可以找到該選項。點擊後將顯示與上一個選項相似的佈局,但請注意出現的兩個新變數:時間戳和簽名。簽名是一種安全保障措施。由於我們正在請求存取敏感訊息,簽名可以證明我們的確是帳戶持有者本人。
時間戳記告知伺服器請求的傳送時間。考慮到網路狀態不穩定或面臨停機,伺服器收到請求的時間可能比預期晚得多。如果時間過長,它將拒絕該請求。透過recvWindow參數可以設定等待時間,預設值為5000毫秒。
這兩個字段的值由Postman產生。點擊“發送”,即可獲得回應。在「餘額」項目下,您將看到六種資產 – BNB、BTC、BUSD、ETH、LTC和TRX。餘額將分為自由使用和已鎖定兩部分。我們尚未鎖定任何資產,您的所有資產均可自由使用。
恭喜您獲得了新資產! (但實際上並不存在)
我們可以透過不同方式取得資產的當前價格。最簡單的可能是透過以下請求:
GET /api/v3/ticker/24hr
如您所料,透過上述請求,我們可以獲得過去24小時內的資產價格資訊。在市場 > 24小時內價差指標統計下可以找到該請求。該資產變數的預設交易對是BTCUSDT。
您可以直接發送該請求,查看價格資訊明細。您也可以更改資產(更改為BNBBUSD、LTCUSDT等),也可以取消所選變量,傳回40對的資料。
還有一種更簡單的調用方法:(市場> 資產價格指標),其可回報資產目前的交易價格:
GET /api/v3/price
與之前一樣,您可以更改或完全刪除資產變量,以獲得所有資產的最新價格。
訂單簿深度(也稱為市場深度或DOM)蘊藏許多市場資訊。我們可以呼叫以下請求來獲得這些有效資訊:
GET api/v3/depth
pre>當我們以預設值(市場> 訂單簿)發送此請求時,它將告知我們有關BTCUSDT的出價與需求。測試網伺服器產生的資料量低於實際,因此以下是在實際環境中顯示的螢幕截圖:
在上方高亮顯示的部分中,可以看到第一筆出價。我們查看的是BTCUSDT的訂單簿,上面的數字是某位交易者願意用來支付比特幣的價格,下方則是其願意購買的數量。因此,該數據表示這份訂單請求以9704.65 USDT的單價買進0.999枚BTC。繼續向下觀察,可以看到價格由高到低排列,代表買方的出價逐漸降低。
想讓自己的資產物有所值,最高報價自然最具吸引力。也是說,如果在市場中出售3枚BTC,其中只有0.999枚BTC能夠以最高的價格出售。剩餘部分需以後續較低的報價出售,直到整個訂單成交。
繼續往下捲動,可以看到其他需求。它們與出價類似,不同之處在於其表示的是透過出售BTC換取USDT的訂單。
發布測試訂單
現在我們發布測試訂單。
POST api/v3/order/test
即使只是使用測試網中的資金,該請求實際上也不會發布訂單。在實際提交前,這項請求對測試訂單非常有效。在交易 > 測試新訂單(TRADE)中可以找到該請求。
您可以看到更多參數。讓我們來瀏覽一下選取的參數:
symbol – 上文已經有介紹,表示需要交易的貨幣對。
side – 在此指定BUY或SELL。對於BTCUSDT交易對,BUY表示以USDT購買BTC,SELL則是出售USDT來換取BTC。
type – 需要提交的訂單類型。可能的數值(點擊此處了解詳情):
LIMIT
MARKET
STOP_LOSS
STOP_LOSS_LIMIT p>
TAKE_PROFIT
TAKE_PROFIT_LIMIT
LIMIT_MAKER
timeInForce– 此參數表示預期的訂單執行方式:
GTC(取消前有效)– 這是最受歡迎的設定。 GTC將確保訂單在成交或取消前始終有效。
FOK(全部成交或取消)– FOK指示交易平台立即執行整張訂單。如果無法執行操作,訂單立即取消。
IOC(立即成交或取消)– 訂單將立即全部或部分執行,否則將會取消。與FOK不同的是,如果訂單可以部分執行,則不會取消。
quantity – 就是指需要購買或出售的資產數量。
price – 目標出售價格。在BTCUSDT交易對中,價格以USDT表示。
newClientOrderId – 訂單標識。這不是必填字段,但可以將其設定為某個標識,以便日後查詢。否則,它將由交易平台隨機產生。
好的!現在就來建立測試訂單。我們使用自動產生的價值:一份以9000美元的單價賣出0.1枚BTC來換取USDT的限價單。點擊發送。如果操作成功,我們將收到的回應是{}。
現在我們發布真實的虛擬訂單。
POST /api/v3/order
轉至交易> 新訂單。現在,您已經熟悉了測試訂單,因此不會對此處的參數感到陌生。我們讓所有數值維持原狀,但由於一直處於多頭狀態,因此將出售價格改為4萬美元。調整價格數值,使其反映在系統中。然後點選發送。
如果交易成功,您的回應將返回有關訂單的一系列詳細資訊。
在上一章中,我們已收到訂單發布成功的確認,那如果我們後來想查看訂單,該怎麼操作呢?有幾項請求可供我們使用。
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」。將此標籤填入欄位並點擊發送,以取得回應。
DELETE /api/v3/order
在交易> 取消訂單下找到該請求,可透過其選擇需要取消的訂單。取消選取orderId和newClientOrderId並將「my_order_id_1」設為origClientOrderId的值。
發送此要求後,訂單將會退回。如果向下捲動至“狀態”,即可看到訂單確實已取消。如需確認,請再一次使用GET /api/v3/openOrders端點(系統會顯示一份空白清單)或有origClientOrderId的GET /api/ v3/order。
為此,讓我們回傳交易 > 新訂單。我們將示範回應類型(newOrderRespType),這是一個可以調整的參數,取決於我們想要伺服器給出什麼樣的回應。共有三個選項:ACK、RESULT或FULL – 您可以在此處查看每個回應的範例。我們使用ACK,可透過其直接確認已收到的訂單。
下面,您可以看到我們即將提交一份市價單,以當前市場價格出售BNB來換取BUSD。
請注意,此回應僅向我們提供了最簡潔的資訊:
您可以透過/api/v3/allOrders端點驗證該訂單是否成交。
GET /api/v3/myTrades
此請求位於交易> 帳戶交易清單(USER_DATA)之下。透過該端點,可以檢查特定資產對應的每筆交易。如需查看預設資產(BTCUSDT)的所有交易,只需取消選取startTime、endTime和fromId。該回應最多可以返回500筆交易-若要查看更多內容,只需調整limit。
Postman中可以詳細顯示原始HTTP請求和回應。
透過此選單可開啟Postman控制台,列印每項請求的詳細資料。
p>
本指南旨在簡要介紹如何在不編寫程式碼的情況下,使用幣安API。如果已經詳細閱讀本文,現在應該對如何要求和提交資訊有所了解。
本系列的後續文章將介紹一些基礎編碼概念。掌握了這些概念,我們便可以自動買賣數位貨幣和其他數位資產。
是否有其他問題?請造訪我們不斷發展的幣安開發者社群論壇,或查看相關文件。