首页
/
每日頭條
/
科技
/
交易數據api
交易數據api
更新时间:2024-04-29 03:35:09

背景

前幾天我們介紹了如何使用 BigONE Developer API V2 來獲取身份令牌的方法「如何利用BigOne的API制作自動化交易系統 -- 身份驗證」。一旦獲取了身份令牌,我們就可以在網絡請求的 header 中加入令牌來獲取自己的賬戶數據,創建買入、賣出訂單,撤銷未成交的訂單,查詢訂單狀态等,為自己的自動化交易系統搭建底層框架。

有人會問,如果做高頻交易這個接口是否滿足要求呢?我們來看文檔說明:

  • 針對每個獨立IP訪問限額為: 每5秒鐘/500次請求。
  • 針對每個用戶賬号訪問限額為:每小時/2000次請求。

交易數據api(如何利用BigOne的API制作自動化交易系統)1

Rate Limit

BigONE Developer API V2 每秒鐘可以處理大約100次請求,對普通的交易系統應該夠用了,我最近利用網格交易法做自動化交易,30秒輪詢一遍訂單狀态,每天平均能有兩筆成交,跟預期的差不多。

上次解決了身份驗證的問題,本次向大家介紹如何實現賬戶資産的查詢問題。


技術分析

我們先看一下文檔中關于賬戶資産Account的數據結構

  • asset_uuid:表示資産的通用唯一識别碼(Universally Unique Identifier,uuid)。
  • balance:賬戶餘額
  • locked_balance:凍結的賬戶餘額

交易數據api(如何利用BigOne的API制作自動化交易系統)2

Account Struct

調用 API 返回的結構與文檔給出的結構有所出入,除了該三項屬性之外,還有一項 asset_id 屬性,表示資産的标示,如我們常見的BTC、EHT、USDT、ONE等等。

我們再看一下文檔中獲取資産的 API

通過該 API 可以獲得自己賬戶中所有資産的集合。

交易數據api(如何利用BigOne的API制作自動化交易系統)3

Account API


代碼實現

Step1:構造賬戶資産的結構 AccountItem

public class AccountItem { // 資産标識 public string asset_id { get; set; } // 通用唯一識别碼(Universally Unique Identifier)的縮寫 public string asset_uuid { get; set; } // 賬戶餘額 public string balance { get; set; } // 凍結的賬戶餘額 public string locked_balance { get; set; } //格式化輸出 public override string ToString() { string result = "asset_id:" asset_id "," "balance:" balance "," "locked_balance:" locked_balance; return result; } }

Step2:構造網絡請求發生錯誤時接收信息的結構 Errors

public class Errors { public string message { get; set; } public string code { get; set; } }

下圖列舉了部分錯誤信息以及對應的編碼:

交易數據api(如何利用BigOne的API制作自動化交易系統)4

Error Codes

Step3:構造接收賬戶資産的結構 Account

public class Account { // 資産元素的集合 public List<AccountItem> data { get; set; } // 錯誤信息 public List<Errors> errors { get; set; } }

Account由兩部分組成:

  • 第一部分是關于賬戶資産的集合 List data,即獲取賬戶中所有的數字貨币以及這些數字貨币的數量信息。
  • 第二部分是接收網絡請求發生錯誤後返回的錯誤信息List errors。

交易數據api(如何利用BigOne的API制作自動化交易系統)5

API Response

Step4:獲取賬戶全部資産的方法 GetAccount

private string ApiEntryPoint = "https://big.one/api/v2/"; private static Account GetAccount() { string url = ApiEntryPoint "viewer/accounts"; try { HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; if (request != null) { request.Method = "GET"; string token = "Bearer " GetToken(); request.Headers.Add("authorization", token); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; IHtmlDocument document = new JumonyParser().LoadDocument(request.GetResponse()); List<IHtmlNode> nos = document.Nodes().ToList(); string str = nos[0].ToString(); StringReader sr = new StringReader(str); JsonTextReader jsonReader = new JsonTextReader(sr); JsonSerializer serializer = new JsonSerializer(); return serializer.Deserialize<Account>(jsonReader); } return null; } catch (Exception ex) { throw new Exception(ex.Message); } }

Step5:獲取賬戶指定資産的方法 GetAccount

public static List<AccountItem> GetAccount(string[] assetId) { List<AccountItem> lst = GetAccount().data; List<AccountItem> result = new List<AccountItem>(); if (lst == null) return result; for (int i = 0, len = assetId.Length; i < len; i ) { List<AccountItem> temp = lst.Where( a => string.Equals(a.asset_id, assetId[i], StringComparison.CurrentCultureIgnoreCase) ).ToList(); if (temp.Count != 0) { result.AddRange(temp); } } return result; }

Step6:使用方法舉例

string info = @"賬戶餘額數據:" Environment.NewLine; string[] strs = new string[] {"ONE", "USDT", "BTC"}; List<AccountItem> lstAccount = GetAccount(strs); for (int i = 0, len = lstAccount.Count; i < len; i ) { info = lstAccount[i] Environment.NewLine; } Console.WriteLine(info); Console.WriteLine(@"------------------");

以上代碼演示了獲取自己賬戶中 ONEUSDTBTC 數量的方法。這裡主要是介紹自動化交易系統的代碼實現而非顯擺自己的賬戶餘額,我就不貼 BigONE 的餘額啦,見諒!(其實是窮!!)


總結

到此為止,獲取賬戶資産餘額的方法就介紹完畢了。通過該方法可以得到自己賬戶中各項資産的餘額,下篇圖文是有關訂單API的封裝,訂單搞定之後就可以嘗試着驗證自己的交易策略了。

今天就到這裡吧!如果大家對自動化交易感興趣,我們可以一起來完善該交易系統。歡迎與我聯系啊,See You!


相關圖文

  • 數字貨币 One 的投資價值分析
  • 賺錢是剛需,如何正确的交易股票?
  • 我們能否效仿李笑來的投資策略?
  • 如何利用 C# 爬取 One 的交易數據?
  • 如何利用 C# 爬取 One 持有者返利數據?
  • 如何利用 C# 爬取BigOne交易所的公告?
  • 如何利用 C# 爬取Gate.io交易所的公告?
  • 如何利用 C# 爬取帶 Token 驗證的網站數據?
  • 如何利用 C# 開發「股票數據分析軟件」(上)
  • 如何利用 C# 開發「股票數據分析軟件」(中)
  • 如何利用 C# 開發「股票數據分析軟件」(下)
  • 如何利用 C# 爬取「财報說」中的股票數據?
  • 如何利用BigOne的API制作自動化交易系統 -- 身份驗證

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
哪種蘋果最好吃
哪種蘋果最好吃
1、根據個人喜好不同,好吃判斷标準也不同。2、金帥:皮綠.甜中帶酸,皮薄,不耐運輸,膠東人愛吃。3、...
2024-04-29
春季養雞注意哪些事項
春季養雞注意哪些事項
1、減少潮濕。在春季的時候,雞舍内的通風量還是比較少的,所以水分蒸發也不是很多。而且舍内産生的熱空氣在結出到屋頂及牆壁的時候,會凝結成水珠,導緻雞舍内容易潮濕。對細菌以及各種寄生蟲的生長繁殖是非常有利的,因此也就會影響雞的生長。所以我們一定要注意做好管理工作,保持雞舍地面的幹燥。對于損壞的水槽要及時修補,在加水的時候切記不可過滿,也不可往舍内潑水,防止濕度過大。2、定期消毒。消毒自然也是在春季養雞
2024-04-29
qgis是什麼軟件
qgis是什麼軟件
演示機型:華為MateBookX系統版本:win10APP版本:qgis3.16QGIS是一個自由軟件的桌面GIS軟件。它提供數據的顯示、編輯和分析功能。QGIS是一個用戶界面友好的桌面地理信息系統,可運行在Linux、Unix、MacOSX和Windows等平台之上。QGIS是基于Qt,使用C++開發的一個用戶界面友好、跨平台的開源版桌面地理信息系統。QGIS項目開始于2002年5月,是基于跨平
2024-04-29
計算機網絡的資源共享功能包括
計算機網絡的資源共享功能包括
資源共享是現代計算機網絡的最主要的作用,它包括軟件共享、硬件共享及數據共享。在網絡中,多台計算機或同一計算機中的多個用戶,同時使用硬件和軟件資源。通常多用戶同時需要的資源總是超過系統實際物理資源的數量,但采用邏輯資源分配的方式,實現資源共享,可較好地處理這個矛盾,從而提高計算機的使用效率。資源”是指網絡中所有的軟件、硬件和數據資源。共享”指的是網絡中的用戶都能夠部分或全部地
2024-04-29
u盤根目錄在哪裡
u盤根目錄在哪裡
演示機型:華為MateBookX系統版本:win10U盤進入的目錄便是U盤的根目錄,根目錄指邏輯驅動器的最上一級目錄,它是相對子目錄而言的,一般打開“我的電腦”,雙擊C盤即可進入C盤的根目錄,雙擊D盤則進入D盤的根目錄。U盤:U盤是USB盤的簡稱,據諧音也稱優盤。U盤是閃存的一種,故有時也稱作閃盤。U盤與硬盤的最大不同是,它不需物理驅動器,即插即用,且其存儲容量遠超過軟盤,
2024-04-29
Copyright 2023-2024 - www.tftnews.com All Rights Reserved