欢迎光临散文网 会员登陆 & 注册

MT5 EA交易期货-获得持仓

2022-11-08 21:27 作者:wewin28  | 我要投稿

本例子演示了EA如何获得期货的持仓。

EA是通过调用mt5ctp.dll进行期货交易,所以EA需要先引用mt5ctp.dll,该DLL头文件mt5ctp.mqh在\MQL5\Include目录下。

EA通过mt5ctp.dll得到交易所的各种回调(如报单回调,成交回调,撤单回调,错误回调,仓位回调,资金回调),然后会把这些回调作为MQL图表事件发送给全部图表,EA 通过MQL中的图表事件响应函数OnChartEvent得到这些回调,所以EA需要在OnChartEvent函数中只处理ID是3000的事件。


EA通过OnChartEvent函数的sparam参数获得MQL图表事件中的仓位回调,仓位回调是一个字符串,格式如下:

OnRspQryInvestorPosition, 交易所, 合约, 仓位多空, 昨天持仓, 总持仓, 今天持仓, 持仓均价, 持仓盈亏, 冻结, 浮动盈亏,开仓均价,是否最后一个仓位,e

把sparam参数对应的字符串按逗号拆分后保存到字符数组chartEvents[],这样chartEvents[0]就等于"OnRspQryInvestorPosition"。因为在OnChartEvent函数中ID是3000的事件包括了交易所的各种回调(如报单回调,成交回调,撤单回调,错误回调,仓位回调,资金回调), 所以EA需要先根据chartEvents[0]=OnRspQryInvestorPosition找出其中的仓位回调。

然后遍历chartEvents数组,得到仓位回调中的各项数据:

chartEvents[2]是合约

chartEvents[3]是2(多)或3(空)

chartEvents[4]是昨仓

chartEvents[5]是昨仓+今仓

chartEvents[6]是今仓

chartEvents[7]是持仓均价

chartEvents[8]是持仓盈亏

chartEvents[9]是冻结

chartEvents[10]是浮动盈亏

chartEvents[11]是开仓均价

chartEvents[12]是否最后一个仓位


MT5 EA交易期货-获得持仓的评论 (共 条)

分享到微博请遵守国家法律