获取当前设置的交易对、合约代码对应的现货或合约的{@struct/Depth Depth}结构,即订单簿数据。
exchange.GetDepth()函数请求数据成功时返回{@struct/Depth Depth}结构,请求数据失败时返回空值。
{@struct/Depth Depth} / 空值
exchange.GetDepth() exchange.GetDepth(symbol)
参数symbol用于指定请求的{@struct/Depth Depth}数据对应的具体交易对、合约代码。不传递该参数时,默认请求当前设置的交易对、合约代码的订单簿数据。
当调用exchange.GetDepth(symbol)函数时,若exchange为现货交易所对象,如需请求获取计价币种为USDT、交易币种为BTC的订单簿数据,参数symbol为:"BTC_USDT",格式为FMZ平台定义的交易对格式。
当调用exchange.GetDepth(symbol)函数时,若exchange为期货交易所对象,如需请求获取BTC的U本位永续合约的订单簿数据,参数symbol为:"BTC_USDT.swap",格式为FMZ平台定义的交易对与合约代码的组合,以字符”.“分隔。
当调用exchange.GetDepth(symbol)函数时,若exchange为期货交易所对象,如需请求获取BTC的U本位期权合约的订单簿数据,参数symbol为:"BTC_USDT.BTC-240108-40000-C"(以币安期权BTC-240108-40000-C为例),格式为FMZ平台定义的交易对与交易所定义的具体期权合约代码的组合,以字符”.“分隔。
symbol
false
string
function main(){
var depth = exchange.GetDepth()
/*
可能由于网络原因,访问不到交易所接口(即使托管者程序所在设备能打开交易所网站,但是API接口也可能访问不通)
此时depth为null,当访问depth.Asks[1].Price时,会导致错误,所以在测试该代码时,确保可以访问到交易所接口
*/
var price = depth.Asks[1].Price
Log("Second ask price:", price)
}
def main():
depth = exchange.GetDepth()
price = depth["Asks"][1]["Price"]
Log("Second ask price:", price)
void main() {
auto depth = exchange.GetDepth();
auto price = depth.Asks[1].Price;
Log("Second ask price:", price);
}
测试exchange.GetDepth()函数:
function main() {
// BTC的U本位永续合约
var depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
}
def main():
depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
void main() {
auto depth = exchange.GetDepth("BTC_USDT.swap");
Log(depth);
}
当配置的exchange对象为期货交易所对象时,使用symbol参数请求具体品种(期货品种)的订单簿数据。
在回测系统中,使用模拟级Tick回测时,exchange.GetDepth()函数返回的数据各档位均为模拟值。
在回测系统中,使用实盘级Tick回测时,exchange.GetDepth()函数返回的数据为秒级别深度快照。
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.GetRecords exchange.GetRecords}