- Square
- 账号内所有订单显示(U本位)
账号内所有订单显示(U本位)
Author:
高频量化, Date: 2021-12-16 01:36:32
Tags:
function main() {
//exchange.SetContractType("swap"); // 设置为永续合约,注意币本位和USDT本位都存在永续
const binanceFundingRate = {//持仓单数组
type: 'table',
title: '币安U本位持仓单',
cols: ['交易对', '交易方向 ', '开仓量', '开仓价格', '持仓价值','杠杆','占用保证金','持仓盈利'],//列表头
rows: null //列表数组
};
const binanceHangingOrder = {//挂单数组
type: 'table',
title: '币安U本位挂单',
cols: ['交易对', '交易方向','挂单状态', '开仓量', '开仓价格', '挂单价值','订单ID','订单时间'],//列表头
rows: null //列表数组
};
const gateFundingRate = {//个人信息
type: 'table',
title: '联系方式',
cols: ['微信:18826683356', '币安工具出租']
}
//循环体
while (true) {
binanceFundingRate.rows = []
binanceHangingOrder.rows = [] //挂单临时数组
var y = 0 //判断没有改产品也可以
var yy = 0 //判断没有改产品也可以
var exchangeInfo = HttpQuery('https://fapi.binance.com/fapi/v1/exchangeInfo');//如果不能访问,可以通过设置产品池的方式解决
exchangeInfo = JSON.parse(exchangeInfo) //处理json文件
for (var i = 0; i < exchangeInfo.symbols.length; i++) {
var bas = exchangeInfo.symbols[i];
var symbols1 = bas.baseAsset + "_" + bas.quoteAsset //合成产品名
var symbolstr = String(symbols1) //强制字符串
if (symbolstr == "BTCST_USDT") continue //不知道为什么就是多了一个已经没有的产品给
exchange.SetCurrency(symbolstr) //切换产品
if(exchangeInfo.symbols[i].contractType=="NEXT_QUARTER"){//下季度
exchange.SetContractType("next_quarter")
}else if(exchangeInfo.symbols[i].contractType=="CURRENT_QUARTER"){//当前季度
exchange.SetContractType("quarter")
}else if(exchangeInfo.symbols[i].contractType=="PERPETUAL"){//永续
exchange.SetContractType("swap")
}else {
Log("产品过期",symbolstr)
}
let depth = exchange.GetDepth(); //获取行情数据,如果没有改产品,那么就获取不到该行情数据
if (!depth) {
Log("该产品不存在:", symbolstr, "或者产品列表格式不对") // 测试时使用
continue; //没有获得该产品的行情
}
//-------------------------------------------------------
var position = exchange.GetPosition() //获取账号持仓情况
//币本位不一样的跨期合约放在一个数组。永续与之不一样
var positionLength = position.length
if (positionLength > 0) {
for(var iii= 0;iii <positionLength;iii++){
if(exchange.GetContractType()==position[iii].ContractType){//为什么要判断,因为跨期合约的持仓,都放在一起了
binanceFundingRate.rows[y] = [position[iii].Info.symbol, position[iii].Type==0?"BUY":"SELL", position[iii].Amount,
position[iii].Price, position[iii].Amount* position[iii].Price,
position[iii].MarginLevel,position[iii].Margin,position[iii].Profit]
y = y + 1
}
}
} //存在该产品,否则弹数组错误
//-------------------------------------------------------
var GetOrder= exchange.GetOrders() //获取账号该产品的挂单情况
//币本位不一样的跨期合约不放在一个数组。永续与之不一样
var GetOrderLength = GetOrder.length
if (GetOrderLength > 0) {
//循环订单
for(var ii = 0;ii <GetOrderLength;ii++ ){
binanceHangingOrder.rows[yy]=[
GetOrder[ii].Info.symbol,GetOrder[ii].Info.side,GetOrder[ii].Info.type,GetOrder[ii].Amount,
GetOrder[ii].Price, GetOrder[ii].Amount* GetOrder[ii].Price,
GetOrder[ii].Id,_D(GetOrder[ii].Info.time)]
yy = yy + 1
}
}
}
//binanceFundingRate.rows = binanceFundingRaterows
//binanceHangingOrder.rows = binanceFundingRaterowsOrder
//Log("binanceFundingRate.rows", binanceFundingRate.rows)
LogStatus('\n`' + JSON.stringify([binanceFundingRate,binanceHangingOrder, gateFundingRate]) + '`\n'); //栏目框展示
Sleep(1000*10); //一分钟
}
}
More