幣安API 系列重點I – 使用Postman 進行現貨交易

文章推薦指數: 80 %
投票人數:10人

了解在不編寫任何程式碼的情況下與幣安API 互動的方法。

遵循幣安學院的Postman 教程。

幣安API系列重點I–使用Postman進行現貨交易目錄前言必備條件建立環境匯入集合提出請求使用Postman來偵錯總結技術交易幣安教學首頁文章幣安API系列重點I–使用Postman進行現貨交易幣安API系列重點I–使用Postman進行現貨交易進階發佈時間Jul13,2020更新時間Aug19,202213m目錄前言必備條件測試網金鑰下載並安裝Postman建立環境匯入集合提出請求總結前言在進入和退出倉位時,了解和使用加密貨幣交易的API有助擴展多種不同的可能性。

您僅需要一些簡單編碼知識,就可以使用交易所後端程式來自動執行交易策略,更能在不使用網站的情況下更快找到與之相符的高效能應用程式。

本系列旨在向您介紹幣安的RESTAPI並教授與之互動的方式。

其後,您應該對查詢有關市場和倉位的資訊,以及下達不同類型訂單充滿信心。

在本文中,我們將利用Postman與交易所通訊。

無需擔心,我們不會將任何真實資金暴露於風險之中。

必備條件測試網金鑰我們將使用測試網以達至我們的目的。

這將為我們提供一些現實世界中沒有任何價值的資金,其功能與真正代幣完全相同。

若您對API感到滿意,則可以開始使用它來進行真正資金交易。

首先前往現貨測試網路。

如要獲得存取權限,則您需要使用GitHub帳戶登入。

如果您還沒有帳戶,請建立一個。

按一下身分驗證並透過GitHub登入。

在API金鑰下,系統將會告知您尚未註冊任何金鑰。

按一下生成HMAC_SHA256金鑰可建立一個金鑰對。

在下一個畫面為金鑰新增一個標籤。

隨意命名,然後點擊產生。

您會看到兩個金鑰:API金鑰和密鑰。

由於事關重大,請先將它記錄下來,否則將需要再建立另一組金鑰。

我們建議您利用電腦的記事app將它儲存起來,以便日後輕鬆複製及貼上。

註:標記金鑰對管理不同金鑰十分重要,因此在真實的交易情況下很值得為此花點時間。

您的帳戶可同時具備多種不同權限的金鑰。

如果您運行多個交易機器人,或使用帶有描述性標籤的獨立金鑰,則可以更輕鬆地管理權限或將個別金鑰刪除,而無需變更所有交易機器人。

下載並安裝PostmanPostman是一個API協作平台。

由於我們可以存取將要測試的幣安請求集合而無需編寫任何程式碼,這對我們而言是個完美起點。

該程式適用於Mac、Windows和Linux。

請前往下載頁面,並下載.zip檔案。

完成後,在檔案瀏覽器中查找、安裝並啟動該應用程式,這樣就大功告成了!請注意,您可以建立一個帳戶來登入,但這並非必要步驟。

如果想要略過該步驟,選擇視窗底部的選項即可。

建立環境在此階段,您會看到類似於下列內容的介面。

我們要首先建立環境,這僅是供我們把變數新增至將要使用之請求組的其中一種方法。

要完成此步驟,我們首先需要從幣安GitHub儲存庫中取得相關資訊:請前往此處,並下載.zip檔案。

下載應該不會花很長時間。

在檔案瀏覽器中查找該檔案並解壓縮,之後回到Postman。

按一下右上角的齒輪圖示(如上圖所示),您會看到管理環境彈出式視窗。

選擇匯入,然後導覽至剛剛解壓縮的資料夾(binance-postman-api)。

進入資料夾,然後進入環境資料夾。

現在您會看到兩個檔案(一個用於主網,一個用於測試網)。

我們在這裡選擇binance_com_spot_testnet_api.postman_environment.json。

確保您擁有正確的金鑰,因為金鑰不能與其他金鑰混用。

我們快要大功告成了。

按一下幣安現貨測試網API,您將看到以下變數。

貼上先前儲存的金鑰,編輯紅色框框內的兩個參數。

按一下更新並退出彈出式視窗。

在此畫面上,「時間戳」和「簽名」欄位留空。

這兩個值將在每次請求時自動建立。

還有最後一項任務尚待完成。

您將在之前點按來設定環境的齒輪圖示右側看到一個下拉式功能表,目前表示無環境。

按一下並選擇幣安現貨測試網API。

匯入集合現在我們要匯入集合,即我們在交易中需要的各種請求,它們將在我們進行調用時完成繁重工作。

將其載入我們的環境中:按一下左上角的匯入。

在彈出式視窗的檔案標籤下,選擇上傳檔案。

我們再次查找 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可以在交易>帳戶資訊下找到該選項。

按一下會顯示與上一個相似的版面配置,但會看到兩個新變數:時間戳和簽名。

簽名是一種安全措施,因為我們正在要求存取敏感資訊,必須證明我們是帳戶持有人。

時間戳會告訴伺服器請求是何時發送的。

由於網路可能不穩定或遇到停機情況,因而伺服器收到請求的時間可能比預期的要晚得多。

如果時間過長,則會拒絕該請求。

您可以使用recvWindow參數指定要等待的時長,該參數預設為5000毫秒。

Postman可幫我們處理這兩個欄位。

按一下發送即可得到回應。

您可以查看六種資產的餘額:BNB、BTC、BUSD、ETH、LTC和TRX。

餘額將分為可用和鎖定兩部分。

我們尚未鎖定任何資產,因此您的資產應全部顯示為可用。

恭喜您獲得了新的(不存在)資產!如何取得幣種的目前價格我們可透過不同方式取得資產的目前價格。

最簡單的可能是提出以下請求:GET/api/v3/ticker/24hr如您所想,以上指令為我們提供過去二十四小時的資產價格資訊。

在市場>24小時行情價格變動統計中可以找到該資訊。

使用的預設幣種變數為BTCUSDT。

您可以直接發送此資訊,以查看價格資訊明細。

您也可以變更幣種(變更為BNBBUSD、LTCUSDT等),也可以取消核取變數,以返回40交易對的資料。

我們還有一個更簡單的調用(市場>幣種價格代號),它會返回資產的目前交易價格:GET/api/v3/price與以前一樣,您可以變更幣種變數或將其完全移除,並取得所有幣種的最新價格。

核查目前訂單簿的深度訂單簿深度(也稱為市場深度或DOM)可以告訴我們很多市場資訊。

我們將調用以下指令來傳回一些有用資訊:GETapi/v3/depth當我們使用預設值(市場>訂單簿)發送此指令時,它會告知我們有關BTCUSDT的出價與需求。

測試網伺服器不會產生與實際資料一樣多的資料,所以下面是您在實際環境下會看到的螢幕截圖:在上方的反白顯示部分,我們可以看到第一個出價。

由於我們正在查看BTCUSDT的訂單簿,上面的數字即某人願意為您的BTC支付的價格,下方則為他們願意買入的數量。

這就表示,此訂單要求以每BTC9704.65USDT的價格買下0.999BTC。

如果繼續向下捲動,我們會看到所報價格逐漸下降,這代表願意支付較少費用的買方。

如果您想要物有所值,最高報價自然是最有吸引力的。

比如說,如果您要推銷3BTC,只能以最佳價格出售0.999BTC,剩下的需要接受其後更為便宜的報價,直到整個訂單履行完畢。

繼續向下捲動,您將看到其他需求。

它們與出價的作用相似,不同之處在於它們表示訂單要以USDT的價格出售BTC。

下測試訂單現在我們要來發布測試訂單。

POSTapi/v3/order/test即使我們只使用測試網上的資金,該請求實際上也不會下單。

測試網在實際提交訂單之前對測試訂單很有用。

在交易>測試新訂單(TRADE)項下可以找到這個指令。

您可以看到這裡涉及到更多參數。

讓我們瀏覽已經核取的參數: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–訂單識別碼。

這並非必填欄位,但您可以將其設定為一個識別碼,方便您在稍後查詢。

否則,交易所會隨機產生該識別碼。

好!我們現在來建立測試訂單。

我們需要使用自動產生的數值:以$9000USDT出售0.1BTC的限價單。

點擊[發送]。

如果此操作成功,作為回應,我們即可取得{}。

  下達真正的訂單是時候下達真正的假訂單了。

 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來偵錯在Postman中,您可以進一步揭露原始的HTTP要求和回應。

此選單會開啟Postman主控台,接著列印出每項要求的詳細資料。

總結本指南目的在於深入淺出地向您介紹幣安API,且不需要編寫任何一行程式碼。

如果您跟得上其中的內容,那麼現在應該可以了解我們如何提出要求及提交資訊。

在本系列的下一個章節中,我們會介紹一些基本編碼概念,我們將使用這些編碼自動買賣加密貨幣及其他數位資產。

 在此過程中遇到疑難問題?請前往我們日漸茁壯的幣安開發人員社區論壇,也可以查看文件。

幣安期貨交易終極指南Nov5,201915m硬分叉和軟分叉Nov29,20188m什麼是領先指標與落後指標?Oct7,20195m探索我們提供的全部內容



請為這篇文章評分?