全局变量在MT4编程中有两层含义,一是编程领域中常规的全局变量含义,即独立于所有函数之外定义的变量,生命周期覆盖整个程序;还有一个就是MT4中独有的:在同一MT4客户端内,所有的指标、脚本和EA都可共享同一全局变量:
GlobalVariable,这个概念类似于编程领域中的共享内存区域;下面简单介绍一下其用法。
首先是必须用到的三个函数:GlobalVariableSet()、GlobalVariableGet()、GlobalVariableDel()。顾名思义,这三个函数的作用分别是设置、获取和删除GlobalVariable。在任何一个指标、脚本和EA中,可用GlobalVariableSet来设置一个GlobalVariable,如:
GlobalVariableSet(“test”, 1.2345);
这就设置好了,把这个指标挂到任何一张图表之上后,在同一个MT4客户端下运行的任何指标、脚本和EA都能读取到这个GlobalVariable了,读取方法:
GlobalVariableGet(“Test”);
最后,如果我们不需要这个GlobalVariable了,就可以这样把它删除了:
GlobalVariableDel(“Test”);
需要注意:一是GlobalVariable只能是double类型的数据,不能把string、数组之类的赋给它,否则编译的时候虽然不会报错,但其实是无效的;二是GlobalVariable的生命周期是名符其实的“全局”,在设置了一个GlobalVariable后,如果不用GlobalVariableDel来删除它,它将会一直存在,无论设置它的指标、脚本和EA是否已被删除,甚至MT4关闭后也会存在,下次重新启动MT4时这个GlobalVariable仍然是可用的!善用这点,在设计交易程序的时候可说是如虎添翼,呵呵!
新增加了如下三个功能:
1、将止损提到入场价位(脚本);
2、新K线出现时发送警报(指标);
3、当前K线剩余时间(指标);
v0.1.1.0版本下载地址
简介:睿盈外汇工具包(RexPack)是一套为MT4平台提供辅助功能的工具集,内置了一组具备各种功能的指标、脚本和EA,现在免费发布第一个测试版,希望大家使用后多多反馈。
v0.1.0.0版本包括了多个适合不同情况的平仓脚本,这些脚本和网上能找到的不同之处在于添加了许多错误处理函数,力求达到100%完成平仓,大家在测试时如遇到任何错误,请反馈给我,谢谢!
睿盈外汇工具包下载页面
虽然MT4内已经设置了多种周期的浏览方式,如M5、M15、M30等,但有些朋友喜欢看一些“非主流”的周期的图表,MT4内置的周期格式就已不能满足需求,这时就要通过别的途径来生成其它周期的数据图表。
在MT4中的“导航器”(Ctrl+N调出),打开“脚本”一栏,大家可以看到有个叫做“period_converter”的脚本,顾名思义,这个就是用来生成任意周期的数据图表的脚本,而且这个是mt4内置的,非常方便。下面和大家分享一下这个脚本的用法。
假如我现在看EURUSD的2分钟图表,但MT4只有1分钟周期的图表,该怎么做?我们可以利用M1的数据来生成m2的图表,方法如下:首先打开EURUSD的M1图表:

然后双击刚才介绍的“period_converter”脚本,会弹出一个参数设置窗口:

我们看到只有1个参数ExtPeriodMultiplier,它的数值是以分钟为单位的,也就是说你想生成什么周期的图表,就填入这里行了,上面我们的目的是生成2分钟的图表,所以这里填“2”,如果我想生成20分钟的图表呢?自然就是填“20”了,如果想生成2小时的图表呢?也很简单:2X60=120,填入“120”就对了。
填入希望转换的周期,确定后,似乎什么都没发生?不然,其实MT4已经在后台为你生成了所需的图表,这时我们通过“文件”菜单,“打开离线历史数据”:

在弹出的窗口里面,我们可以找到我们需要的2分钟周期图表了:

双击“EURUSD,M2”,就会打开以2分钟为周期的图表:

需要注意的是,这是离线的历史数据,也就是说通过这种方式生成的任意周期图表,并不会自动更新。如需其自动更新,就需要用到一些较为复杂的技巧了,有兴趣的朋友可联系我进行更为深入的探讨。
相信从事外汇交易一段时间的朋友,都可能遇到过价格突然刚好打到你预设的止损,即使别的平台都没有到达过这个价位的“怪异”情形,呵呵。那么我们处于弱者方的交易者,怎样去尽量避免这种情况呢?假如你是用MT4平台的话,就可以不给头寸设置止损,转而用EA来判断、执行止损,因为EA是运行在客户端的,平台商无法看到你的EA代码,自然也无从而知你的止损所在了。
初接触MT4的朋友在使用EA时,经常会碰到这样或那样的问题,这里我把这些问题集中一下,希望让大家在遇到问题时能迅速找到答案。
首先,我们从网上下载到的EA会是两种文件格式中的任意一种:一种是后缀名为mq4的文件;另外一种是后缀名为ex4的文件。后缀名为mq4的文件其实就是EA的源码文件,如果你的电脑上安装了MT4软件,只要双击这个mq4文件就可以直接打开并浏览EA的源代码;而ex4文件就是mq4文件编译后的二进制文件。Mq4格式和ex4格式在使用上没分别,只要放入MT4目录下的experts文件夹内,即可使用,区别是mq4可对EA进行修改并重新编译,而ex4则只能使用,不能修改。把EA文件放入experts文件夹后,打开MT4软件,打开你希望EA进行交易的货币对的图表,然后打开MT4的“导航器”栏(如果没有,可按Ctrl+N调出),其中有一项是“智能交易系统”,把这项展开:

我们可以看到刚才放入experts文件夹的EA文件已经在其中了,双击该EA,就会弹出如下窗口:

其中“允许实时自动交易”一项一定要勾选,其它一般保持默认即可。确定后,如操作正确,即会将该EA添加到当前打开的图表上,这是你可看见图表的右上角有个笑脸的图标:
如果不是笑脸,则检查一下工具栏的“智能交易”按钮是否已按下:
至此,EA即可正常工作。需要注意的是,不是所有使用MT4作为客户端的外汇交易商都允许EA进行交易的,所以有时即使看到笑脸图标,EA也可能没有在工作。
很多朋友在浏览我的博客后,经常会问我同样的一些问题:EA是什么?EA能做什么?特别是一些刚从股票转到外汇的朋友,对EA更是觉得陌生,这里我把对EA的一点认识与大家分享一下。
说到EA,不得不提到MT4。MT4的全名是MetaTrader 4,是由一家叫做MetaQuotes的俄罗斯公司推出的外汇交易客户端软件。MetaQuotes公司只开发外汇交易软件技术,本身并不提供外汇交易服务,很多外汇交易公司向MetaQuotes公司购买其提供的外汇交易软件技术,然后向外汇交易者提供交易服务,实际上,现在大部分面对散户的外汇交易商都采用了MT4作为其外汇交易服务的软件客户端。MT4软件内置了一种叫做MQL(Meta Programming Language)的脚本语言,用户可利用MQL语言把自己的交易思路编写成MT4软件可识别的脚本,然后MT4会根据脚本自动进行判断、下单、平仓、移动止损等交易操作,这就把交易者从繁琐的看盘中解脱出来,把一些可明确定义的模式交由计算机去执行,而交易者可有更多时间去做其它事情了。
回到我们的主题上来,EA,全名是Expert Advisor。从字面上理解,是专家建议者,我们一般会叫它作智能交易系统。EA实际上就是用MQL语言编写的脚本,可由MT4自动执行。举个例子,假如我希望在两条移动平均线金叉的时候买入,死叉的时候卖出,如果人工操作,就必须坐在电脑前看着屏幕,直到出现信号,并且手工进行交易操作;但如果把这个交易规则编写为EA的话,则只需把电脑开着,在满足上述条件时,EA就会自动帮你进行交易操作,全过程都是自动的,不需要人工干预。
8月27日,官方网站发布了MT4的更新版本:MetaTrader 4 Client Terminal Build 218。该版本更新如下:
- MQL4: Fixed reinitialization of Expert Advisors at change of accounts.
- Fixed calculation of a signal line for the Relative Vigor Index indicator.
- Added extra checks of price correctness when placing a pending order.
- Fixed setting of proxy parameters from a command line.
- Extended records in a terminal journal at a partial closing of a position.
- Fixed operation in MS Windows 2008.