获取当前设置的交易对、合约代码对应的{@struct/Depth Depth}结构,即订单薄数据。
结构体{@struct/Depth Depth}包含两个结构体数组,分别是Asks[]
和Bids[]
,Asks
和Bids
包含以下结构体变量:
数据类型 | 变量名 | 说明 |
---|---|---|
number | Price | 价格 |
number | Amount | 数量 |
exchange.GetDepth()
函数请求数据成功时返回{@struct/Depth Depth}结构,请求数据失败时返回空值。
{@struct/Depth Depth}、空值
exchange.GetDepth() exchange.GetDepth(symbol)
参数symbol
用于指定请求的{@struct/Depth Depth}数据对应的合约代码。不传该参数时默认请求当前设置的合约代码的订单薄数据。
symbol false string
function main() {
// 鉴于测试代码,不使用商品期货策略一般架构,这里仅仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while(!exchange.IO("status")) {
Sleep(1000)
}
Log(exchange.SetContractType("rb888"))
var depth = exchange.GetDepth()
var price = depth.Asks[0].Price
Log("卖一价为:", price)
}
def main():
while not exchange.IO("status"):
Sleep(1000)
Log(exchange.SetContractType("rb888"))
depth = exchange.GetDepth()
price = depth["Asks"][0]["Price"]
Log("卖一价为:", price)
void main() {
while(exchange.IO("status") == 0) {
Sleep(1000);
}
Log(exchange.SetContractType("rb888"));
auto depth = exchange.GetDepth();
auto price = depth.Asks[0].Price;
Log("卖一价为:", price);
}
测试exchange.GetDepth()
函数:
回测系统中,使用模拟级 Tick回测时exchange.GetDepth()
函数返回的数据各档位均为模拟值。 回测系统中,使用实盘级 Tick回测时exchange.GetDepth()
函数返回的数据为秒级别深度快照。
商品期货实盘时需要注意:
涨停时卖单卖一的价格是涨停价格,订单量是0。跌停时买单买一的价格是跌停价格,订单量是0。通过判断买一、卖一订单数据中的订单量,可以判断出是否涨跌停。
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.GetRecords exchange.GetRecords}
exchange.GetTicker exchange.GetTrades