背景
前几天我们介绍了如何使用BigONE开发者API V2获取一个身份令牌“如何使用BigOne API制作一个自动化交易系统——认证”。一旦我们获得了身份令牌,我们就可以将该令牌添加到网络请求的头部,以获得我们的帐户数据、创建买卖订单、取消未完成的订单、查询订单状态等。,并为我们的自动交易系统构建底层框架。
有人会问,如果做高频交易,这个接口符合要求吗?让我们看看文档:
针对每个独立IP访问限额为: 每5秒钟/500次请求。针对每个用户账号访问限额为:每小时/2000次请求。速率极限
BIE开发者API V2每秒可以处理大约100个请求,对于普通的交易系统来说应该足够了。最近用网格交易法做自动化交易,每30秒轮询一次订单状态。平均每天有两笔交易,几乎和预期的一样。
上次解决了身份验证的问题。这次我来介绍一下如何查询账户资产。
技术分析
我们先来看看文档中的账户资产账户的数据结构。
asset_uuid:表示资产的通用唯一识别码(Universally Unique Identifier,uuid)。balance:账户余额locked_balance:冻结的账户余额帐户结构
API返回的结构与文档中给出的结构不同。除了这三个属性之外,还有一个asset_id属性,表示资产的标识,如BTC、EHT、USDT、ONE等等。
让我们看看文档中获取资产的API。
通过这个API,你可以获得你账户中所有资产的集合。
帐户API
代码实现
第一步:构建账户资产账户项的结构。
class account item
{
/asset id
public string asset _ id { get;设置;}
//通用唯一标识符的缩写
公共字符串asset _ uuid { get设置;}
//账户余额
公共字符串余额{ get设置;}
/冻结账户余额
公共字符串locked _ balance { get设置;}
//打印格式
公共覆盖字符串tostring()
{
string result=” asset _ id:”+asset _ id+”,”
+” balance:”+balance+”
返回结果;
}
}
第二步:构造网络请求出错时接收信息的结构Errors。
公共类错误
{
公共字符串消息{ get设置;}
公共字符串代码{ get设置;}
}
下图列出了一些错误信息及其对应的代码:
错误代码
第三步:构建收款账户资产的结构账户。
类别帐户
{
/资产元素集合
公共列表< AccountItem gt数据{ get设置;}
//错误消息
公共列表< Errors gt错误{ get设置;}
}
账户由两部分组成:
第一部分是关于账户资产的集合 List data,即获取账户中所有的数字货币以及这些数字货币的数量信息。第二部分是接收网络请求发生错误后返回的错误信息List errors。API响应
第四步:GetAccount,获取账户所有资产的方法。
私有字符串API entry point=” https://big . one/API/v2/”;
private static Account get Account()
{
string URL=ApiEntryPoint+” viewer/accounts “;
try
{
http WebRequest request=WebRequest。将(url)创建为HttpWebRequest
if(请求!=null)
{
请求。Method=” GET
string token=” Bearer “+GetToken();
请求。Headers.Add(“授权”,token);
ServicePointManager。security protocol=security protocol type。Tls12
ihtml document document=new JumonyParser()。加载文档(请求。GetResponse());
List lt;IHtmlNode gtnos=文档。节点()。to list();
string str=nos[0]。ToString();
string reader Sr=new string reader(str);
JsonTextReader JSON reader=new JsonTextReader(Sr);
JSON serializer serializer=new JSON serializer();
返回序列化程序。反序列化 lt帐户 gt(JSON reader);
}
返回null
}
catch(Exception ex)
{
抛出新的异常(ex。消息);
}
}
第五步:GetAccount,获取账户指定资产的方法。
公共静态列表 ltAccountItem gtget account(string[]asset id)
{
List lt;AccountItem gtlst=GetAccount()。数据;
List lt;AccountItem gtresult=新列表 ltAccountItem gt();
if (lst==null)
返回结果;
for (int i=0,len=assetId。长度;我 ltleni++)
{
List lt;AccountItem gt温度=lst。其中(
a=gt;
字符串。Equals(a.asset_id,assetId[pig币(PiG币转钱包扣百分之五)i],
StringComparison。CurrentCultureIgnoreCase)
)。to list();
if(温度数数!=0)
{
结果。add range(temp);
}
}
返回结果;
}
第六步:用法举例。
String=@ “账户余额数据:”+环境。换行;
string[] strs=new string[] { “一”,” USDT “,” BTC ” };
List lt;AccountItem gtlst account=get account(strs);
for (int i=0,len=lstAccount。数数;我 ltleni++)
{
info+=lst account[I]+环境。换行;
}
控制台。WriteLine(info);
控制台。WriteLine(@ “-“);
上面的代码演示了如何获取你的账户中的数字一,USDT和BTC。这主要是介绍自动化交易系统的代码实现而不是炫耀你的账户余额,所以我就不贴BigONE的余额了。原谅我!(其实就是穷!!)
摘要
至此,账户资产余额的获取方法已经出台。通过这个方法,你可以得到你账户中每项资产的余额。下一张图是关于订单API的封装。订单结清后,可以尝试验证自己的交易策略。
今天到此为止吧!如果你对自动化交易感兴趣,我们可以一起改进交易系统。欢迎联系我,再见!
相关图文:
数字货币 One 的投资价值分析赚钱是刚需,如何正确的交易股票?我们能否效仿李笑来的投资策略?如何利用 C# 爬取 One 的交易数据?如何利用 C# 爬取 One 持有者返利数据?如何利用 C# 爬取BigOne交易所的公告?如何利用 C# 爬取Gate.io交易所的公告?如何利用 C# 爬取带 Token 验证的网站数据?如何利用 C# 开发「股票数据分析软件」(上)如何利用 C# 开发「股票数据分析软件」(中)如何利用 C# 开发「股票数据分析软件」(下)如何利用 C# 爬取「财报说」中的股票数据?如何利用BigOne的API制作自动化交易系统 — 身份验证