目录

MT4正版下载 - MT4里那些红红绿绿的数字到底说啥咱今天好好唠唠_在EA里写入时间判断的核心代码

MT4里那些红红绿绿的数字到底说啥咱今天好好唠唠_在EA里写入时间判断的核心代码
我自己刚用MT4那会儿,盯盘盯得眼珠子都快掉出来了,满屏的数字跟股市大盘似的红红绿绿的,心里头其实也明白那大概就是赚了亏了的意思,但你要真让我说清楚那个“浮动盈亏”到底咋个算法,为啥有时候边儿上还有个小括号带个负号,那我还真得琢磨半天,后来用久了才慢慢摸出点门道来,这玩意其实说白了挺简单,就是颜色不一样代表的意思天差地别,今天我就把这点事儿给你掰扯掰扯,省得你看着那一堆数字跟看天书似的,心里头跟十五个吊桶打水似的七上八下的。

登录窗口里的保存选项要这样勾选

打开MT4软件后,你会看到登录窗口,在输入账号和密码的下方,有一个写着“保存账户信息”或者“记住密码”的小方框,不同版本显示的文字可能略有区别。很多人在这个环节容易忽略,直接输入完账号密码就点登录了,压根没注意这个选项框的存在。

正确做法是先把账号密码填好,然后用鼠标点击那个小方框,确保里面出现对勾的标记。这里要注意一点,如果你用的是别人的电脑或者公共电脑,建议不要勾选这个选项,毕竟资金安全比方便重要得多。但如果是自己的常用电脑,勾上之后下次打开MT4,账号密码就会自动填好,甚至直接帮你登录。

有些朋友可能会问,为什么我勾选了还是记不住?这其实和MT4的版本有关系,有些旧版本或者某些经纪商定制的版本,这个功能可能被隐藏了或者有bug。遇到这种情况别着急,下面还有备选方案可以解决。

在EA里写入时间判断的核心代码

时间控制的核心逻辑其实很简单,就是让EA在指定的时间段内跳过开仓和平仓的所有操作。我用的是MQL4的Hour()和Minute()函数,这两个函数返回的是当前服务器时间的小时和分钟。先定义两个时间点,一个是暂停开始时间,一个是暂停结束时间,然后写一个判断函数,只要当前时间落在这个区间内,就返回一个“禁止交易”的信号。

具体的代码结构大概是这样的:先设定暂停开始时间为15:25,暂停结束时间为15:35,也就是说非农公布前后各5分钟暂停交易。然后写一个bool类型的函数,比如叫IsTradingPaused(),里面判断当前小时和分钟是否在设定范围内。如果当前时间大于等于开始时间且小于等于结束时间,就返回true,否则返回false。这个函数要放在EA的每个交易操作之前,比如开仓条件判断里、挂单修改里、止损移动里,凡是涉及交易动作的地方都要加上这个判断。

这里有个细节需要注意,如果你用的是Hour()和Minute()组合判断,跨小时的情况要特别小心。比如暂停时间从15:55到16:05,这跨越了两个小时,如果只判断小时在15到16之间,就会出错。更好的办法是把当前时间转换成从零点开始的分钟数,比如当前小时乘以60加上当前分钟,然后对暂停开始和结束时间也做同样的转换,这样比较起来就万无一失。

我还见过有人用TimeCurrent()函数直接取当前时间戳,然后和预设的时间戳比较,这种方法也可以,但需要自己换算每天的日期,稍微麻烦一点。相比之下,用分钟数比较的方法更简洁,而且代码可读性高,以后想调整暂停窗口的时间范围,只需要改两个数字就行。

按对象名称筛选批量删除

对象列表还有一个隐藏的筛选功能,很多人从来没注意到。在对象列表窗口的底部有一个输入框,看起来不起眼,但它的作用非常大。你可以在里面输入关键词,列表就会自动过滤出名称中包含这个关键词的对象。比如你添加文字标签时用的默认名称是“Text”加上一串数字,输入“Text”就能把所有文字标签全部筛出来。

筛选出来之后,直接全选再删除,比点击“类型”列排序还要快。这个方法特别适合那些图表上既有文字标签又有箭头还有线条的复杂情况。我认识一个做外汇的朋友,他的图表上每天都要标注几十个分析点位,全是文字标签,之前清理一次要花小半天,后来学会用筛选功能,三十秒就能清干净。

需要注意的一点是,筛选框支持模糊匹配,你输入“Text”会匹配所有包含“Text”字样的对象名称。如果你改过标签名称,比如把某个标签命名为“支撑位”,那输入“支撑”也能筛出来。这个功能其实就是个简化版的搜索过滤,本质上跟Excel里的筛选逻辑一模一样。

实际操作的推荐流程与验证技巧

基于上面这些原理,我建议你在MT4里按这个流程操作:首先,在EA属性窗口改好参数后,先看一眼图表右上角的EA名称旁边有没有出现一个黄色警告图标。如果有,说明EA运行异常,可能是参数值不合法导致程序报错。没有警告的话,参数就已经生效了。

为了验证参数是否真正被EA读取,最直接的办法是在EA代码里加一个打印语句,比如Print("当前参数值=", 参数名),然后修改参数后观察MT4的"专家"标签页输出。不过这个需要改代码,如果你不想重新编译,可以用另一个技巧:修改参数后,手动触发一次EA的某个操作,比如点一下图表上的按钮(如果EA有),或者等下一次开仓信号出现,看看实际开仓手数、止损距离是否和你的新参数一致。

还有个笨但有效的方法:把参数改成一个极端值,比如把手数改成0.
01改成10手,然后观察EA的下一次交易行为。如果交易手数变成了10,说明参数生效了,如果还是0.01,那就说明EA可能把参数缓存了,这时候把EA从图表删除再重新加载,就能强制刷新。
这个方法虽然粗暴,但胜在直观,我早期测试EA时经常这么干。

最后提醒一点:修改参数后,MT4会自动保存当前图表的模板文件。如果你切换了图表周期或者重启MT4,再切回来,参数会从模板文件里恢复。所以如果你在某个图表上改了参数,后来又手动调整了模板,可能会导致参数被覆盖。养成好习惯:重要参数改完后,在文件菜单里保存一份模板,或者干脆把参数截图存档,避免手滑丢失。

文章目录