MT5 EA交易期貨-行情深度
期貨軟件里提供了上期所和能源中心的五檔市場(chǎng)深度,中金所、大商所和鄭商所的一檔市場(chǎng)深度,這樣我們就可以開發(fā)基于行情深度的策略了。
下面的例子源代碼講解了如何把期貨行情深度顯示在圖表上的源代碼。


通過MQL的MarketBookAdd函數(shù),將期貨合約傳入該函數(shù), 就可以訂閱和接收到該期貨合約的盤口。
當(dāng)合約的行情深度發(fā)生變化的時(shí)候,MQL的OnBookEvent事件函數(shù)會(huì)被觸發(fā)。
當(dāng)OnBookEvent事件函數(shù)觸發(fā)的時(shí)候,先定義一個(gè)MQL MqlBookInfo結(jié)構(gòu)體數(shù)組book[],通過MQL的MarketBookGet得到盤口并保存到book[]。
MT5期貨里上期所和能源中心的行情深度是五檔,中金所、大商所和鄭商所的行情深度是一檔。所以如果book[]的數(shù)組長(zhǎng)度是10的話, 就顯示五檔行情,如果book[]的數(shù)組長(zhǎng)度是2的話,就顯示一檔行情。
通過MqlBookInfo結(jié)構(gòu)體book[]的price屬性獲得各檔盤口對(duì)應(yīng)的價(jià)格, 通過MqlBookInfo結(jié)構(gòu)體的volume屬性獲得各檔盤口對(duì)應(yīng)的手?jǐn)?shù)。
最后記得在EA退出的時(shí)候調(diào)用MQL的MarketBookRelease函數(shù)取消訂閱該合約的盤口。