目录

MT4多开 - MT4订单拒绝代码全解交易失败原因排查_逐列调整显示内容与排列顺序

MT4订单拒绝代码全解交易失败原因排查_逐列调整显示内容与排列顺序
做算法交易的朋友应该都有过这种经历,精心编写的EA策略在回测时跑得完美无缺,一放到实盘上却频繁出现订单被拒绝的情况。看着MT4日志里那一串串看不懂的代码,心里别提多着急了。其实订单被拒绝在算法交易中是非常常见的现象,关键是要能快速读懂日志里的信息,找到问题根源并加以解决。MT4的日志系统设计得相当完善,每一种拒绝情况都有对应的代码和解释,只要掌握了这些代码的含义,排查问题就能事半功倍。

MT4平台的数据机制与DOM的天然隔阂

要弄明白这个问题,首先得搞清楚MT4本身是怎么工作的。MT4本质上是一个面向零售外汇经纪商的交易平台,它接收的数据流,是经纪商提供的报价,而不是某个中央交易所直接推送的原始订单簿。
咱们平时看到的买价、卖价,还有那一个个跳动的小数字,其实都是经纪商汇总了流动性提供商(比如银行、做市商)的报价后,再转手发给咱们的。

这就意味着,MT4软件从设计之初,就没打算给你展示那个“深度”。它的图表、报价窗口,天生就是为处理合成报价和即时成交设计的。你看到的五档报价,很多情况下是经纪商自己“画”出来的,或者说,是经纪商愿意让你看到的那部分流动性。真正的交易所深度数据,那得是交易所撮合引擎里,所有未成交买单和卖单的完整列表,这两者根本不是一个层面的东西。

所以说,单靠MT4软件本身,你是找不到一个叫“DOM”或者“市场深度”的按钮的。它的内核和数据结构,压根就没预留这个接口。哪怕你把MT4翻个底朝天,在设置里、在工具栏里,你看到的顶多是“市场报价”窗口,里面列着各个货币对的买价卖价和点差,这已经是MT4能给的极限了。

说实话,这就好比你想用一台老式诺基亚手机去跑最新的高德地图导航,硬件和系统都不支持,根本跑不起来。MT4和真正的DOM之间,就是这种先天性的隔阂,平台架构决定了它干不了这个活儿。

逐列调整显示内容与排列顺序

点击交易窗口右键菜单里的“选择列”后,会弹出一个对话框,里面列出了所有可用的列名称。这里我建议你花几分钟时间,把每一列都看看,搞清楚它代表什么意思。比如“掉期”列显示的是隔夜利息,“佣金”列显示的是每笔交易的手续费,这些数据对于计算真实盈亏非常重要,但默认情况下它们可能被排在很后面的位置,甚至被隐藏掉。

调整列顺序的方法其实很简单:在“选择列”对话框里,选中某个列名后,可以用右侧的“上移”和“下移”按钮来改变它的排列位置。我把“价格”和“利润”两列移到最前面后,每次打开交易窗口,第一眼就能看到最关心的数据,再也不用在一堆数字里费力寻找了。不过要注意,有些列是系统强制显示的,比如“时间”和“订单号”,它们无法被完全隐藏,但可以挪到靠后的位置。

除了列的选择和排序,每列的宽度也可以手动调整。把鼠标移动到列标题的分隔线上,按住左键左右拖动就能改变列宽。我习惯把“品种”列拉宽一些,因为有些货币对名称比较长,默认宽度下总是显示不全,后面跟的省略号看着特别难受。调整列宽后,MT4会记住你的设置,下次重启软件后仍然保留,这点做得挺人性化。

这里有个小技巧想分享给各位:如果你临时想看某个被隐藏的列,不用每次去“选择列”里重新勾选,直接在列标题上右键,弹出的快捷菜单里就能快速勾选或取消勾选常见列。这个操作比进对话框快得多,适合在交易过程中频繁切换查看不同数据时使用。我自己就经常用这个方法,在“持仓”和“账户历史”之间切换查看不同的信息组合。

功能按键虽然多但记几个就够用了

其实你要说怎么高效查历史数据的话,真正值得用键盘快捷键也就那么几个,我来给你掰扯掰扯,首先就是键盘上的左右方向键,选中图表以后按左右键就能精确地前后移动一根K线,这在你停下来复盘某一根关键K线的时候特别方便,(1)按住Ctrl加方向键就是快进快退连续移动,(2)Home键直接跳到当前最新K线位置,(3)End键也不一定是所有版本都有响应,有些版本它是没用的,反正我电脑上的这一版按了就没反应,(4)PageUp和PageDown这俩键是切换图表的,不管历史数据的事但有时候你开多个图表以后切来切去用这个更快,(5)Ctrl+Y这个组合键能快速进入显示所有历史数据的模式,相当于一个临时开关,松开就不显示了所以别问怎么关掉,你再多按一次就恢复了,(6)还有那个放大镜图标,点它就能在图表上截取一段区域放大看,这也是一种快速看历史区间的方式但我觉得用滚轮缩放开差不多,(7)最后就是空格键按住以后拖动鼠标,整个图表会移动得特别平滑,比用鼠标拖滚动条舒服多了,这几个键位我好多年了也没全记住,每次都是按两下试试手感出来的。

另外还有一个需要看你平台商慷慨度的东西叫做历史数据中心或者说服务器里的报价存档,有些平台它们自己那个报价数据中心是支持你直接输入起始日期和终点日期,然后选一个周期,软件就自动帮你把那段历史K线补全了,这个功能在MT4里的位置好像叫工具还是服务来着,我也记不太清具体的路径了,因为不同版本的翻译都不太一样,甚至有的平台直接把这一下拉菜单精简掉了不给你用,就很坑爹,你要是发现你自己平台的菜单里没有这些历史数据导入的功能,那就只能用一种叫F2的按钮打开数据中心,说真的,按F2打开以后你可以看到本地已经存了的所有货币对的报价文件,密密麻麻的文件夹,你要是哪天发现自己图上看历史数据断断续续缺了一段,十有八九就是本地报价文件没下载全,这时候你需要找个办法让MT4把缺的那块数据补下载下来,最简单的办法就是切到分钟周期然后缩小显示范围慢慢刷,或者换个周期再切回来逼它重新拉取。

讲到这我突然意识到自己扯得有点远了,本来是说怎么查看历史价格走势的,结果把数据加载机制都扯进来了,不过反正都是跟历史数据有关的琐碎话,也就无所谓了,你要记的最核心的一件事其实就是图表往左拖、周期随便切、数据不够了就盯沙漏等加载,这三条按顺序用下来就能覆盖九成以上的使用场景了,至于那些更高级的数据分析方法比如怎么把历史价格导到别的软件里建模啊,怎么用导出工具批量整理报价啊,MT4老版本对历史数据导出的限制还挺多的它默认只能导一定范围内的数据量,多了还得去编写脚本才能做,这些我觉得对于纯粹想看看历史走势定个位置的人来说没什么必要去折腾,咱这是图个省心不是图搞开发对吧,反正我是这么干的,你看着办吧,也不知道你最后搞明白了没有,卡住了就再来问我,不过我也未必上论坛看帖了你得另外开帖艾特我才有用。

关闭信号提醒和智能交易系统通知

很多MT4手机用户订阅了交易信号服务,当信号提供者开仓或平仓时,手机端会同步收到通知。如果你不再需要这些信号提醒,或者觉得推送太频繁,可以进入设置中的“信号”或“订阅”选项,取消订阅相关信号服务,或者关闭信号通知开关。

智能交易系统也就是EA的通知也是容易忽略的一个点。如果你的MT4上挂了自动交易程序,EA运行过程中可能会通过手机推送各种状态消息,比如订单成交、止损触发、资金变动等。关闭这类通知需要在MT4设置里找到“EA交易”或“智能交易”选项,将“允许推送通知”的复选框取消勾选。

实际操作中我发现,有时候关掉MT4应用内的所有通知开关后,手机系统层面仍然会收到推送,这是因为MT4在手机系统通知栏还有一个独立的权限开关。这时候需要进入手机的系统设置,找到应用管理,点击MT4应用,在通知权限里把允许通知的开关关闭,这样就能从系统层面彻底屏蔽MT4的所有弹窗提醒了。

最后提醒一下,关闭所有提醒通知后,如果你使用挂单交易或者设置了止损止盈,成交时手机就不会再弹出提示了。建议重要交易还是时不时打开MT4看一眼持仓情况,避免错过关键变动。

文章目录