Account
exchange.GetAccount
exchange.GetAccount()函数用于请求交易所账户信息。GetAccount()函数是交易所对象exchange的成员函数,exchange对象的成员函数(方法)仅与exchange相关,后续文档不再赘述。
exchange.GetAccount()示例
设置交易对与合约代码,获取当前账户信息。
javascript
function main(){
// 切换交易对
exchange.IO("currency", "BTC_USDT")
// 以OKX期货为例,设置合约为当周合约,当前交易对为BTC_USDT,所以当前合约为BTC的U本位当周合约
exchange.SetContractType("this_week")
// 获取当前账户资产数据
var account = exchange.GetAccount()
// USDT作为保证金的可用余额
Log(account.Balance)
// USDT作为保证金的冻结金额
Log(account.FrozenBalance)
// 当前资产权益
Log(account.Equity)
// 当前资产作为保证金的所有持仓的未实现盈亏
Log(account.UPnL)
}
python
def main():
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("this_week")
account = exchange.GetAccount()
Log(account["Balance"])
Log(account["FrozenBalance"])
Log(account["Equity"])
Log(account["UPnL"])
rust
fn main() {
// 切换交易对
exchange.IO(("currency", "BTC_USDT")).unwrap();
// 以OKX期货为例,设置合约为当周合约,当前交易对为BTC_USDT,所以当前合约为BTC的U本位当周合约
exchange.SetContractType("this_week").unwrap();
// 获取当前账户资产数据
let account = exchange.GetAccount().unwrap();
// USDT作为保证金的可用余额
Log!(account.Balance);
// USDT作为保证金的冻结金额
Log!(account.FrozenBalance);
// 当前资产权益
Log!(account.Equity);
// 当前资产作为保证金的所有持仓的未实现盈亏
Log!(account.UPnL);
}
c++
void main() {
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("this_week");
auto account = exchange.GetAccount();
Log(account.Balance);
Log(account.FrozenBalance);
Log(account.Equity);
Log(account.UPnL);
}返回值
| 类型 | 描述 |
| 查询账户资产信息,查询成功时返回 |
参考
备注
如果交易所对象设置为加密货币期货合约交易所,并且切换为以USDT作为保证金的合约(切换方法请参阅exchange.SetCurrency、exchange.SetContractType函数),此时资产以USDT作为保证金,记录在Account结构的Balance、FrozenBalance属性中。
如果交易所对象设置为加密货币期货合约交易所,并且切换为币本位合约,此时资产以币作为保证金,记录在Account结构的Stocks、FrozenStocks属性中。
使用币安期货统一账户时,调用exchange.GetAccount()函数请求账户信息,封装的数据为所有资产折算为**USD**后的金额,显示在Account结构的Balance字段中。如需计算其它资产的折算金额,可将USD折算金额除以(待折算资产的)指数价格,再除以(待折算资产的)质押率即可算出。
exchange.GetAssets
exchange.GetAssets函数用于请求交易所账户的资产信息。
exchange.GetAssets()示例
获取交易所账户的资产信息,exchange.GetAssets()函数返回一个以Asset结构体为元素的数组。
javascript
function main() {
// exchange.SetCurrency("BTC_USDT") // 可以设置交易对
// exchange.SetContractType("swap") // 可以设置合约
var assets = exchange.GetAssets()
Log(assets)
}
python
def main():
# exchange.SetCurrency("BTC_USDT") # 可以设置交易对
# exchange.SetContractType("swap") # 可以设置合约
assets = exchange.GetAssets()
Log(assets)
rust
fn main() {
// exchange.SetCurrency("BTC_USDT"); // 可以设置交易对
// exchange.SetContractType("swap").unwrap(); // 可以设置合约
let assets = exchange.GetAssets().unwrap();
Log!(assets);
}
c++
void main() {
// exchange.SetCurrency("BTC_USDT"); // 可以设置交易对
// exchange.SetContractType("swap"); // 可以设置合约
auto assets = exchange.GetAssets();
Log(assets);
}返回值
| 类型 | 描述 |
|
|
参考
备注
期货交易所对象的GetAssets()函数返回当前交易对(币本位、USDT本位、USDC本位等)下的保证金资产。
exchange.GetName
exchange.GetName()函数用于获取当前交易所对象所绑定的交易所名称。
exchange.GetName()示例
javascript
function main() {
Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance")
}
python
def main():
Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance")
rust
fn main() {
Log!("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance");
}
c++
void main() {
Log("Check if exchange object is Binance spot, result:", exchange.GetName() == "Binance");
}返回值
| 类型 | 描述 |
string |
|
参考
备注
exchange.GetName()函数通常用于识别策略代码中的exchange或exchanges[1]、exchanges[2]等交易所对象。加密货币期货合约交易所的名称带有固定前缀Futures_。
exchange.GetLabel
exchange.GetLabel()函数用于获取配置交易所对象时设置的自定义标签。
exchange.GetLabel()示例
javascript
function main() {
Log("exchange label:", exchange.GetLabel())
}
python
def main():
Log("exchange label:", exchange.GetLabel())
rust
fn main() {
Log!("exchange label:", exchange.GetLabel());
}
c++
void main() {
Log("exchange label:", exchange.GetLabel());
}返回值
| 类型 | 描述 |
string |
|
参考
备注
通过设置的标签,可在策略代码中识别exchange或exchanges[1]、exchanges[2]等交易所对象。
exchange.GetCurrency
exchange.GetCurrency()函数用于获取当前设置的交易对。
exchange.GetCurrency()示例
javascript
function main() {
Log("Current trading pair:", exchange.GetCurrency())
}
python
def main():
Log("Current trading pair:", exchange.GetCurrency())
rust
fn main() {
Log!("Current trading pair:", exchange.GetCurrency());
}
c++
void main() {
Log("Current trading pair:", exchange.GetCurrency());
}返回值
| 类型 | 描述 |
string |
|
参考
备注
交易对格式统一采用大写形式,并使用下划线分隔baseCurrency与quoteCurrency,例如:BTC_USDT。
exchange.SetCurrency
exchange.SetCurrency()函数用于切换交易所对象exchange当前的交易对。
exchange.SetCurrency(currency)示例
javascript
function main() {
var ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
// 切换交易对,注意切换后行情数据、账户信息的变化
exchange.SetCurrency("LTC_USDT")
Log("Switched to LTC_USDT")
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
}
python
def main():
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
exchange.SetCurrency("LTC_USDT")
Log("Switched to LTC_USDT")
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
rust
fn main() {
let ticker = exchange.GetTicker(None).unwrap();
Log!(ticker);
Log!(exchange.GetAccount());
// 切换交易对,注意切换后行情数据、账户信息的变化
exchange.SetCurrency("LTC_USDT");
Log!("Switched to LTC_USDT");
let ticker = exchange.GetTicker(None).unwrap();
Log!(ticker);
Log!(exchange.GetAccount());
}
c++
void main() {
auto ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
exchange.SetCurrency("LTC_USDT");
Log("Switched to LTC_USDT");
ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
}参数
| 名称 | 类型 | 必填 | 描述 |
currency | string | 是 |
|
参考
备注
1、兼容exchange.IO("currency", "BTC_USDT")的切换方式,详见excahnge.IO。
2、支持在回测系统中切换交易对,但回测系统中切换交易对时,计价币的名称不能改变。例如:BTC_USDT可以切换为LTC_USDT,但不能切换为LTC_BTC。
3、切换为非回测页面初始设置的交易对后,交易币的数量为0。例如:回测时回测页面上初始设置的交易对为BTC_USDT,BTC数量为3个,USDT数量为10000。此时立即切换为LTC_USDT,切换后交易币数量为0,即账户中LTC数量为0;切换后的交易对共享USDT数量,即数量仍为10000。
exchange.GetQuoteCurrency
exchange.GetQuoteCurrency()函数用于获取当前交易对的计价币名称,即quoteCurrency。
exchange.GetQuoteCurrency()示例
javascript
function main() {
exchange.SetCurrency("BTC_USDT")
Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency())
// exchange.SetCurrency("ETH_BTC")
// Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency())
}
python
def main():
exchange.SetCurrency("BTC_USDT")
Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency())
# exchange.SetCurrency("ETH_BTC")
# Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency())
rust
fn main() {
exchange.SetCurrency("BTC_USDT");
Log!("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency());
// exchange.SetCurrency("ETH_BTC");
// Log!("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency());
}
c++
void main() {
exchange.SetCurrency("BTC_USDT");
Log("Quote currency for BTC_USDT:", exchange.GetQuoteCurrency());
// exchange.SetCurrency("ETH_BTC")
// Log("Quote currency for ETH_BTC:", exchange.GetQuoteCurrency())
}返回值
| 类型 | 描述 |
string |
|
参考
备注
例如:exchange交易所对象当前的交易对为BTC_USDT时,exchange.GetQuoteCurrency()函数返回USDT;如果当前交易对为ETH_BTC,则exchange.GetQuoteCurrency()函数返回BTC。