资源加载中... loading...

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

```javascript
function main(){
    var depth = exchange.GetDepth()
    /*
        可能由于网络原因,访问不到交易所接口(即使托管者程序所在设备能打开交易所网站,但是API接口也可能访问不通)
        此时depth为null,当访问depth.Asks[1].Price时,会导致错误,所以在测试该代码时,确保可以访问到交易所接口
    */
    var price = depth.Asks[1].Price
    Log("卖二价为:", price)
}
def main():
    depth = exchange.GetDepth()
    price = depth["Asks"][1]["Price"]
    Log("卖二价为:", price)
void main() {
    auto depth = exchange.GetDepth();
    auto price = depth.Asks[1].Price;
    Log("卖二价为:", 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}

exchange.GetTicker exchange.GetTrades