目录

MT4多开 - MT4自选品种列表导出分享折腾了大半天总算摸到点门道_先说MT4这老脾气的显示机制

MT4自选品种列表导出分享折腾了大半天总算摸到点门道_先说MT4这老脾气的显示机制
不少人肯定跟我一样,在MT4里辛辛苦苦攒了一堆自选品种,各种货币对黄金原油指数,按自己习惯排好了,结果换个电脑或者想分享给朋友的时候,傻眼了,这东西怎么弄出来啊,我当时折腾了一晚上,翻遍了各种设置菜单,还去网上搜了半天,最后发现网上的说法也是乱七八糟的,有的说得特别复杂,什么改文件路径,什么用第三方软件,看得我头都大了,其实根本没那么多讲究。 说回正题,要分享MT4那个自选品种列表,不是像你想的那样在软件里直接点个复制或者导出按钮就行,它没这个功能,真的没有,我当时也以为是不是自己版本太老没找到,还专门去官网下了最新的,结果还是一样,这软件就是这么个性,很多东西都是隐性的,你得自己挖,而且挖出来了还会觉得,就这?这么简单的东西搞得这么神秘。 我当时用的是比较笨的办法,但也是我觉得最靠谱的办法,就是去MT4的安装目录里找那个文件,就在你的数据文件夹里,你在MT4顶部菜单点“文件”,然后选“打开数据文件夹”,它会弹出一个资源管理器的窗口,这个窗口里就是MT4所有的配置文件、历史数据、图表模板什么的,乱得很,但你得忍住,别乱删,也别乱碰别的东西,吃过大亏的都知道。 你要找的是一个后缀名为“.sym”的文件,名字可能有点乱码,想起来了,好像叫什么“symbols.sym”,这个文件,怎么说呢,它特别讨厌,因为你先得把MT4软件关掉,完全退出,不是最小化那种,是托盘图标也退出,不然你即使找到了这个文件,你改了或者复制了它,下次启动MT4的时候它又用内存里的覆盖回去了,白忙活一阵你说气不气人,我当时就是没退出,改了半天然后一刷新又变回原来的了,我还以为是不是文件加密了改不了呢,蠢死了。 关掉MT4之后,去那个数据文件夹,里面有个“config”子文件夹,你点进去就能看到这个symbols.sym文件了,就是个小文件,几KB大小,但是你别小看它,你所有的自选品种排列顺序都在里面,你把这个文件复制一份发给朋友,让朋友也覆盖到他自己的同路径这个文件夹里,就能把列表分享过去了,大概就是这么个流程,操作不复杂但找到它绕了很大一圈。 说到这我又想起另一茬事,就这个文件名,在不同版本的MT4上还不一样,有的版本叫“symbols.sym”,有的版本叫“symbols_extended.sym”或者是别的什么鬼名字,反正大同小异,你找那个后缀带.sym的要特别注意它是二进制配置文件,不是文本文件,别用记事本打开去编辑,我试过一次,打开全是一堆乱码符号,完全看不懂,你硬改的话不光是列表乱了,可能整个软件都给你整崩了,那就得重装,赔了夫人又折兵,切记,复制分享就好,别贪动手编辑。 还有种情况是朋友那边不想要你的文件去覆盖,他可能自己也有其他设置,如果他直接替换掉自己的symbols文件,那他自己存的那些自选品种就全没了,直接被你覆盖了,这个要注意。 那你可能问了,有没有办法只复制某几个品种而不是全套?反正我没研究出来,这玩意儿就是一锅端,要么全部打包过去,要么就别弄,想只传两个品种过去还想保持它们在列表的特定位置,那是做梦,没那么精细的功能。 好,再补充几个这操作里的坑,我一条条想到了就说,不分先后顺序啊,(1)你得保证两边MT4版本差不太多,4位小数和5位小数报价的服务器配置不一样,品种代码有可能对不上,特别是有些稀有品种,老版本根本没收录,传过去那边显示未知,(2)数据文件夹路径不能有中文或者其他特殊字符,有的朋友喜欢把安装路径自定义成乱七八糟的文件夹名,会导致文件读取异常,你会发现放进去根本没反应,(3)操作完一定要重新启动MT4,而且第一次正常关闭它,让它自动重新读取配置文件,不要强杀进程,不然也可能会丢配置,(4)如果你加了自定义品种,比如自己搞的什么贵金属点差表,那个参数也在那个文件夹附近的其他配置文件里,光传symbols文件不够,你还得把那个后缀是.xml的文件也一起传,不过一般自选品种分享就用不到这个了,反正我遇到的普通情况就是只传那一个文件就行了,(5)尽量用U盘或者聊天软件的原文件发送功能,不要用复制粘贴文本去发,因为那个是二进制文件,直接聊天框发文本根本没效果。 反正我把这个文件发给一个哥们之后,他那边导入成功,我也没问他最后到底成功没有,他也没回话,反正可能他自己鼓捣的时候又出岔子了,这东西就是自己用了才知道,开始觉得麻烦,用顺了就觉得,根本不是事儿,也不知道最后咋样了。

先说MT4这老脾气的显示机制

其实你要问的是不是想让画好的线在切图表周期的时候自动跟着变,好像一键联动一样省得每个图都去重画,我告诉你没戏,MT4里每根趋势线都是挂在具体的时间周期底下的,你在一小时图上画的线切到四小时它就不见了,你切回一小时它又出现了,这跟你放在哪个图表窗口也有关系,你要是开了好几个窗口分别挂着不同周期,那就得每个窗口分别画一遍,折腾死人,就跟你在一个本子上写笔记然后换了另一个本子一样,前面那本子上的字不会自己跑到新本子上去,道理就是这么个道理,但很多人一开始都跟我一样以为有个全局选项能统一管理。

说到这个我就想起来有个朋友以前问我,说他画了条趋势线然后在五分钟图里看着好好的,怎么一放到十五分钟图就只剩一半了,我当时也是这么跟他解释的,说每条线都是独立的个体,挂着的时间锚点和价格锚点只有在你画条线的那个周期里才算数,其他周期压根不知道这条线的存在,你切过去当然就干净得跟新装的一样,不过你要真想在一个周期显示多个周期的线也有个笨办法,就是开多窗口然后每个窗口放不同周期再分别画,但那样得画好几遍线而且在每个窗口里线的位置可能会有点不一样,因为你手动画的点在不同周期里价格间距和K线形态都有差异,画出来的角度也不可能完全一样,说到底还是得手动去对。

还有一茬事就是那些指标均线MACD之类的是能跨周期显示的因为人家是写在代码里计算每个周期的数据然后显示出来的,但趋势线是图形对象,它归图表管不归周期管,所以只有当前周期会看到它,这事儿要是放别的软件比如TradingView人家就有全局对象的设置,但话说回来MT4这老古董从04年出来到现在界面逻辑就没怎么变过,它就是这么个死板劲儿,你恼也没用,实在不行就只能在每个周期的图里都画一遍,用习惯了也还行就是费点工夫。

构建多品种监控EA的基本框架

写一个多品种监控EA,首先要搭好数据存储的结构。我习惯用一个自定义结构体来保存每个品种的行情快照,包括品种名称、买价、卖价、点差、最新收盘价、移动平均线值等字段。然后声明一个结构体数组,大小就设为要监控的品种数量。这样每次报价更新后,把数据填进数组对应位置,后续的策略判断直接从这个数组里取值,逻辑会清晰很多。

初始化部分需要做的事情也不少。首先要确保所有要监控的品种在Market Watch窗口里是可见的,否则MarketInfo()可能返回无效值。可以在init()里用SymbolSelect()函数把品种添加到市场报价列表里。这个函数在MQL4的新版本里是存在的,老版本可能没有,不过现在绝大多数MT4平台都支持。然后就是把品种名称数组填好,计算好数组大小,给结构体数组分配内存。

主循环逻辑放在OnTick()里是最自然的做法。每来一个tick,就遍历所有品种,刷新每个品种的行情数据。这里有个小技巧,可以先用RefreshRates()函数刷新当前图表品种的报价,然后再对其他品种调用MarketInfo()。虽然RefreshRates()只对当前图表有效,但能确保至少有一个品种的数据是最新的。其他品种的数据实时性稍微差一点也没关系,只要不是做超短线剥头皮策略,这种延迟完全可接受。

监控条件判断这块,根据你的策略需求来写。比如可以设置当某个品种的RSI超过70时发出警告,或者当多个品种同时满足某种条件时触发联动交易。我见过有人用它做套利监控,同时盯着黄金和白银的价格差,当价差超过一定阈值就开仓。这种多品种联动逻辑在单品种EA里根本实现不了,只有用多品种监控架构才能做出来。

配合持仓线做技术分析的好处

把开仓价线显示出来,可不只是为了看个热闹。做技术分析的时候,这条线能给你提供很多额外的参考信息。比如你发现价格多次在开仓价附近受到支撑或者阻力,那说明这个位置有较强的心理关口作用,后续的操作策略就可以围绕这个位置来调整。

再比如说,你做了一笔多单,开仓价在1.1050,然后价格一路下跌到1.1000,这时候图表上那条开仓价线就在上方悬着。你看着这条线,心里就会清楚,只要价格反弹到1.1050附近,就面临解套的压力,很多人会在这个位置选择平仓离场,所以这个位置可能形成短期的抛压。

反过来,如果你做的是空单,开仓价线在下方,价格反弹到那条线附近的时候,你就要警惕是不是该减仓了。这种心理层面的分析,光靠看数字是没有感觉的,必须把价位直观地画在图表上,你的盘感才能被激发出来。这也是为什么很多老交易员都喜欢用MT4的这个功能,而不是单纯依赖手机APP看持仓。

另外,开仓价线还能帮你计算盈亏比。你看着图表上的开仓线,再看看自己设置的止盈线,两者之间的距离就是你的潜在盈利空间。对着图表来评估盈亏比,比你在心里默算要直观得多,也更容易让你做出理性的持仓决定。

账户状态与交易权限存在限制

最后一个容易忽略的因素是账户本身的交易状态。如果你的MT4账户处于“仅平仓”模式,也就是只能平掉已有仓位而不能开新仓,那么所有挂单都不会被接受或者不会触发。这种状态通常发生在账户资金不足、杠杆调整或者经纪商风控触发时,很多交易者根本没注意到账户状态已经悄然发生了变化。

另外,某些挂单类型需要特定的账户类型支持。比如对冲账户和净头寸账户对挂单的处理方式就有所不同,有些账户类型甚至不允许在特定品种上设置挂单,尤其是某些指数或加密货币产品。如果挂单设置成功后一直没有触发,检查一下该品种的交易规则是否有特殊限制。

还有一种情况是,你的MT4终端可能处于“离线”状态,虽然界面看起来正常,但实际上已经断开了与服务器的连接。这种情况下挂单不会被执行,因为系统根本没有收到实时价格流。检查MT4右下角的连接状态图标,如果显示为红色叉号或黄色感叹号,说明连接异常,需要重新连接。

排除以上所有因素后,如果挂单依然不成交,建议直接联系经纪商的客服确认该笔挂单的具体状态,因为有些平台在极端行情下会采取“重新报价”或“滑点保护”机制,导致挂单无法按预设价格执行。搞清楚这些原理后,以后再遇到挂单不成交的情况,就能快速定位问题了。

文章目录