MQL4编程:显示MT4交易平台持仓订单号
的有关信息介绍如下:相信有很多初学MQL4编程的朋友都曾经和我一样,想写出一个自己的EA交易程序,来助力自己进行交易,提高交易效率,提升交易成功率,但想法虽好,做起来却不容易。
今天,我就和大家分享一下自己学习的小收获,获取MT4交易平台的持仓订单号,并将它们显示在行情窗口的左上角。
首先,在电脑上打开任意一款MT4交易平台;
然后点击上方工具栏的“MetaEditor”按钮,打开MQL编辑器;
在“MQL编辑器”中选择“文件”中的“新建”;
在随后出现的“MQL向导”中选择“EA模板”,然后给自己的EA程序取一个名字,如“Display_Demo”,然后一路选择默认选项;
全部完成后,EA模板文件就建立了;
在MT4交易平台上,当我们提交订单时,系统会为每个订单生成一个“订单号”,它是唯一的;想对具体的订单进行操作,比如计算某个持仓订单的盈亏,当然得先“拿到”具体的订单。因此,拿到订单号,我们就可以对订单进行我们想要的操作了;这是第一步,也是较为关键的一步;
在MQL中,OrderTicket()函数可以获取具体交易单的“订单号”;
但在使用这个函数前,必须先使用“选择交易单函数”OrderSelect()选定具体的订单;
因此,我们要先弄清楚“选择交易单函数”OrderSelect()的用法;
从MQL自带的帮助文件可以看出,OrderSelect()函数的用法有些复杂,因此,我们还是用“笨办法”——试用,看看这个函数究竟会给我们些什么?
在我们的EA程序“Display_Demo"中的OnTick()函数中输入下列语句:
if(OrderSelect(0,SELECT_BY_POS)==true)
Comment(OrderTicket());
然后编译执行;
这时,我们再变动一下参数,在OnTick()函数中输入下列语句:
if(OrderSelect(3,SELECT_BY_POS)==true)
Comment(OrderTicket());
然后编译执行;
从运行结果来看,在MT4交易平台上,我们的交易订单会按照”成交时间“的先后依次排列,并且起始索引号为0!
知道了”SELECT_BY_POS“这个参数是指定在持仓订单中选择订单后,我们再将OnTick()函数中的语句改为:
if(OrderSelect(49391790,SELECT_BY_TICKET)==true) Comment(OrderTicket());
然后编译执行;
从运行结果来看,”SELECT_BY_TICKET“这个参数需要在持仓订单中指明具体订单的订单号,然后才能返回这个订单的相关信息,我个人认为这个参数在EA交易程序中的意义不大!
在明白了OrderSelect()函数的用法后,我们在OnTick()函数中输入下列语句,完成”显示MT4交易平台持仓订单号“的目标功能:static int num; int index; for(index=0;index 检查无误后编译执行; 从运行结果来看,目标功能成功实现!也就是说,我们完全可以将持仓订单进行”遍历“,这样,我们就可以对其中任意的订单进行操作了………^O^……