MT5 EA交易期貨-查詢資金

例子演示了EA如何獲得期貨賬號下的權益、手續(xù)費、占用保證金、平倉盈虧、持倉盈虧和可用資金。

EA是通過調用mt5ctp.dll進行期貨交易,所以EA需要先引用mt5ctp.dll,該DLL頭文件mt5ctp.mqh在\MQL5\Include目錄下。
MT5通過mt5ctp.dll得到交易所的各種回調(如報單回調,成交回調,撤單回調,錯誤回調,倉位回調,資金回調),之后會把這些回調作為MQL圖表事件(ChartEvent)發(fā)送給當前打開的全部圖表,EA 則通過MQL圖表事件響應函數(shù)OnChartEvent得到這些回調。
期貨發(fā)送的MQL圖表事件ID都是3000,EA需要在OnChartEvent函數(shù)中只處理ID是3000的事件。
EA通過OnChartEvent函數(shù)的sparam參數(shù)獲得MQL圖表事件中的資金回調。
資金回調是一個字符串,格式如下:
OnRspQryTradingAccount, 期貨公司編碼, 期貨交易賬號, 上次結算準備金, 占用保證金, 手續(xù)費, 平倉盈虧, 浮動盈虧, 動態(tài)權益, 可用資金,e
把sparam參數(shù)對應的字符串按逗號拆分后保存到字符數(shù)組chartEvents[],處理后chartEvents[0]就等于"OnRspQryTradingAccount"。
因為在OnChartEvent函數(shù)中ID是3000的事件包括了各種的交易所回調(如報單回調,成交回調,撤單回調,錯誤回調,倉位回調,資金回調), 所以EA需要先根據(jù)chartEvents[0]=OnRspQryTradingAccount找出其中的資金回調。
然后遍歷chartEvents數(shù)組,得到資金回調中的各項數(shù)據(jù):
chartEvents[1]就是期貨公司編碼,
chartEvents[2]就是期貨交易賬號,
chartEvents[3]就是上次結算準備金,
chartEvents[4]就是占用保證金,
chartEvents[5]就是手續(xù)費,
chartEvents[6]就是平倉盈虧,
chartEvents[7]就是浮動盈虧,
chartEvents[8]就是動態(tài)權益,
chartEvents[9]就是可用資金,
最后把資金回調的各項數(shù)據(jù)按指定的格式打印出來。