MT5 EA交易期货-查询资金

例子演示了EA如何获得期货账号下的权益、手续费、占用保证金、平仓盈亏、持仓盈亏和可用资金。

EA是通过调用mt5ctp.dll进行期货交易,所以EA需要先引用mt5ctp.dll,该DLL头文件mt5ctp.mqh在\MQL5\Include目录下。
MT5通过mt5ctp.dll得到交易所的各种回调(如报单回调,成交回调,撤单回调,错误回调,仓位回调,资金回调),之后会把这些回调作为MQL图表事件(ChartEvent)发送给当前打开的全部图表,EA 则通过MQL图表事件响应函数OnChartEvent得到这些回调。
期货发送的MQL图表事件ID都是3000,EA需要在OnChartEvent函数中只处理ID是3000的事件。
EA通过OnChartEvent函数的sparam参数获得MQL图表事件中的资金回调。
资金回调是一个字符串,格式如下:
OnRspQryTradingAccount, 期货公司编码, 期货交易账号, 上次结算准备金, 占用保证金, 手续费, 平仓盈亏, 浮动盈亏, 动态权益, 可用资金,e
把sparam参数对应的字符串按逗号拆分后保存到字符数组chartEvents[],处理后chartEvents[0]就等于"OnRspQryTradingAccount"。
因为在OnChartEvent函数中ID是3000的事件包括了各种的交易所回调(如报单回调,成交回调,撤单回调,错误回调,仓位回调,资金回调), 所以EA需要先根据chartEvents[0]=OnRspQryTradingAccount找出其中的资金回调。
然后遍历chartEvents数组,得到资金回调中的各项数据:
chartEvents[1]就是期货公司编码,
chartEvents[2]就是期货交易账号,
chartEvents[3]就是上次结算准备金,
chartEvents[4]就是占用保证金,
chartEvents[5]就是手续费,
chartEvents[6]就是平仓盈亏,
chartEvents[7]就是浮动盈亏,
chartEvents[8]就是动态权益,
chartEvents[9]就是可用资金,
最后把资金回调的各项数据按指定的格式打印出来。