目录

MT4周期脚本 - MT4智能交易时间过滤用TimeHour函数精确控制交易时段_TimeHour函数的基本用法和参数含义_3

MT4智能交易时间过滤用TimeHour函数精确控制交易时段_TimeHour函数的基本用法和参数含义_3
很多人在编写MT4智能交易系统时,往往只关注入场信号的准确性,却忽略了一个关键因素——时间。说实话,外汇市场是24小时运转的,但不同时段的波动特性差异巨大。比如亚洲盘通常比较平淡,欧美盘波动剧烈,如果你让EA在亚洲盘也按照欧美盘的参数去交易,结果往往不太理想。这时候,时间过滤条件就派上用场了。在MQL4语言里,TimeHour函数就是实现这个功能的核心工具,它能精确控制EA在哪些小时执行交易,避免在不利时段盲目进场。

TimeHour函数的基本用法和参数含义

TimeHour函数是MQL4中专门用来提取时间的小时部分的工具。它的语法其实很简单,你只需要传入一个datetime类型的时间值,它就会返回一个0到23之间的整数,代表该时间点对应的小时。比如说,你传入当前服务器时间,它就会告诉你现在是几点。这个返回值可以直接用在条件判断语句里,让EA只在特定小时范围内运行。

实际使用中,最常见的做法是在EA的OnTick函数里先获取当前时间,然后用TimeHour提取小时数,再判断是否落在预设的交易时段内。举个例子,如果你只想让EA在伦敦开盘后的两小时内交易,就可以设置小时数在8到10之间才允许开仓。这种写法不仅逻辑清晰,而且执行效率很高,不会给EA带来额外的计算负担。

有一点需要特别注意,TimeHour函数默认使用的是服务器时间,而不是你的本地电脑时间。这意味着如果你在跨时区交易,一定要确认服务器时间与你目标市场的对应关系。比如你服务器设的是GMT时间,而你想在纽约开盘时段交易,那就要把纽约时间的9点30分换算成GMT的13点30分。这个换算如果搞错了,整个时间过滤就形同虚设了。

另外,TimeHour函数返回的是整数,所以比较操作非常方便。你可以用大于、小于、等于这些运算符来构建条件。比如判断小时数大于等于8并且小于等于16,就能实现仅在白天时段交易的逻辑。这种基于整数的比较方式,比用字符串或者枚举类型要直观得多,也减少了代码出错的概率。

MT4画线工具的选择与准备

打开MT4平台,找到左侧工具栏里的画线工具。你需要用到的工具包括“趋势线”、“射线”和“文字标签”。趋势线用来连接波浪的高低点,射线用来延伸波浪的未来方向,文字标签则用来标注浪的序号比如1、2、3、4、5、A、B、C。建议你先把这些工具拖到图表上方的快捷栏里,这样用起来方便。

设置画线参数也很重要。右键点击趋势线,选择“属性”,把线条颜色改成亮色比如黄色或蓝色,这样在K线图上更醒目。线条宽度建议用2或3,太细了看不清。
另外,把“射线”模式关掉,因为画波浪时只需要线段,不需要无限延伸。说实话,很多人画波浪画得乱七八糟,就是因为线条太细或者颜色太淡,根本看不清。

还有一个实用技巧:在MT4的“图表”菜单里,把网格线调暗或者关掉。网格线太多会干扰你的视线,让你看不清波浪的高低点。我一般会把网格透明度调到20%以下,这样图表看起来干净很多。另外,建议你用“放大镜”工具把图表缩放到合适的比例,确保你能看到至少几十根K线,这样才能判断波浪的完整结构。

第三步精确调整挂单价格

进入修改页面后,你会看到多个可编辑的字段。其中最重要的就是“价格”输入框,这里显示的是你之前设定的挂单触发价格。点击这个输入框,手机键盘会自动弹出,你可以直接输入新的价格数字。输入时要注意小数点的位置,外汇报价通常精确到小数点后五位,比如欧元兑美元可能是1.10500这样的格式。

除了手动输入数字,MT4手机端还提供了一个非常实用的微调功能。在价格输入框的右侧或者下方,通常有上下箭头的按钮。点击上箭头可以每次增加一个最小报价单位,点击下箭头则减少一个单位。这个功能对于需要微调几个点的场景特别方便,不用反复输入数字,MT4点按箭头就能精细调整。

修改价格时一定要确认订单类型是否匹配。比如你设置的是Buy Limit,那么修改后的价格必须低于当前市场价格;如果是Buy Stop,则价格必须高于当前市价。如果输入的价格不符合订单类型的逻辑,系统会提示错误并且无法保存修改。我遇到过好几次这种情况,后来习惯了先看一眼当前市价再输入。

常见问题与实用技巧

很多朋友在导出时遇到一个问题,就是导出的数据不完整,比如只有最近几天的数据。这通常是因为历史数据中心里的数据没有完全下载到本地。解决办法是,在历史数据中心里选中品种和周期后,点击“下载”按钮,让MT4从服务器拉取完整的历史数据。这个过程可能需要几分钟,取决于你的网速和数据量大小。

还有一个很实用的小技巧,就是你可以同时导出多个品种的数据。虽然MT4不支持批量导出,但你可以一个个导出,然后统一放到一个文件夹里。如果你需要定期更新数据,比如每周导出一次,可以写一个简单的MQL4脚本来自动化这个过程。网上有很多现成的代码,稍微改一下就能用。

最后提醒一下,导出的数据文件最好用英文命名,比如“EURUSD_M1_202501.csv”,避免中文文件名在某些软件里出现乱码。另外,如果你在导出过程中遇到“无法创建文件”的错误,多半是因为MT4没有写入权限,试试以管理员身份运行MT4,或者把导出路径改到桌面这种简单目录下。

文章目录