MT4正版下载 - MT4图表分析成果本地保存与导出实用方法_订单到期功能藏在哪儿

订单到期功能藏在哪儿
打开MT4平台之后,先别急着点那个黄色的"新订单"按钮,你往上方菜单栏看,找到"工具"这个菜单,点开之后下拉列表里有一项叫"选项",点击进去会弹出一个设置窗口。这个窗口里有好几个标签页,什么"图表"、"交易"、"EA"之类的,你需要点击"交易"这个标签页。
在"交易"标签页的中间偏下位置,你会看到一个叫"请求超时"或者"订单到期"的选项区域。不同版本的MT4可能翻译略有差异,但核心意思是一样的。这里默认的数值通常是0,代表订单永远不会过期,你需要把它改成你想要的分钟数。
这里有个细节要注意,这个设置是针对所有手动挂单的全局默认值,也就是说你在这里设定了30分钟,之后每次挂单系统都会自动带上30分钟的到期时间。如果你某次挂单想让它长期有效,记得在下单窗口里把到期时间改成"无"。
EA中平仓事件检测的代码实现思路
EA要检测平仓事件,最直接的办法是在OnTick()函数里对比当前持仓数量和上一次的持仓数量。如果这次检查时发现持仓数比上次少了,那就说明有仓位被平掉了。但这里有个坑,OnTick()只在价格变动时触发,如果市场很平静,可能几秒钟甚至几分钟都不触发一次,平仓通知就会延迟。为了更精准,可以用OnTradeTransaction()函数,这个函数在交易事务发生时会立即被调用,包括开仓、平仓、修改止损止盈等操作。
OnTradeTransaction()的写法也不算复杂,它有两个参数,一个是交易事务的结构体,另一个是请求的结构体。在这个函数里,可以判断交易事务的类型是否为DEAL_ENTRY_OUT,也就是平仓操作。判断到平仓之后,还需要从交易历史里把刚平掉的订单信息提取出来,比如品种、手数、开仓价、平仓价、盈利金额等等。这些数据可以通过HistoryDealGetDouble()、HistoryDealGetInteger()这些函数来获取,前提是先用HistoryDealSelect()选中对应的交易记录。
说实话,用OnTradeTransaction()的代码量比OnTick()多不少,但响应速度是实时的,邮件几乎在平仓的瞬间就发出去了。如果你对MQL4的语法不太熟悉,可以先从简单的OnTick()版本开始写,等跑通了再升级到OnTradeTransaction()版本。
不过我个人建议直接学后者,因为交易中分秒必争,通知延迟几秒钟可能就错过了重要的市场变化。
如何快速找到自己的成交编号
在MT4电脑客户端上,操作其实很简单。打开“终端”窗口,默认在“交易”标签页下,你会看到所有未平仓的订单。右键点击任意一个订单,选择“订单详情”,里面就会显示成交编号。如果是已经平仓的订单,切换到“历史”标签页,双击任意一笔历史订单,同样能看到成交编号。
手机版MT4稍微有点区别。打开App后,点击下方的“历史”选项卡,选择一笔交易记录,点进去就能看到成交编号。如果你用的是iPad或者其他安卓设备,大同小异。我建议大家在每次下单成交后,养成截图保存的习惯,把订单详情页面截图存下来,这样万一出了问题,随手就能找到编号,不用临时手忙脚乱地翻。
还有个小技巧,MT4的账户历史记录可以导出为HTML或者Excel文件。你可以定期把历史记录导出备份,这样即使你换了电脑或者重装了系统,这些记录也不会丢。我自己就是每周导出一次,放在网盘里存着,虽然大部分时候用不上,但真遇到问题的时候,这些备份能省下很多沟通时间。
另外,如果你用的是某些跟MT4对接的跟单软件或者EA,这些工具生成的订单也一样会有成交编号。有些跟单软件还会在日志里记录每笔跟单的成交编号,如果跟单出了问题,你把这些编号提供给软件开发者,他们排查起来会轻松很多。我自己用过几个跟单软件,每次出问题都是直接把成交编号甩给开发,对方一般很快就能定位到原因。
彻底解决数据缺失的实际操作
如果确认不是服务器端的永久缺失,那通过几个步骤基本能把数据补回来。第一步,打开MT4后,在图表上右键,选择“历史数据中心”,或者按快捷键F2,这个窗口会列出所有可用的数据范围。如果里面显示的数据比你图表上的多,那就说明本地文件没问题,只是图表加载不全。
这时候你可以把图表切换到日线级别,然后按Home键跳到最早的数据位置,再按一次Home键,软件会尝试重新加载这个时间点的数据。重复按几次,强制它刷新。或者更直接的办法,把图表周期切换到周线或者月线,那些大周期数据通常加载更顺利,然后再切回你需要的周期。
如果历史数据中心里显示的数据也少,那就得手动下载了。在图表上右键选“刷新”不行的话,就打开“工具”菜单下的“选项”,找到“图表”标签页,把“最大柱数”和“最大历史数据”都调到最大值,默认是50000和100000,你可以改成最大限制。改完之后重启MT4,让设置生效,然后再去打开图表,系统就会尝试拉取更多数据了。
本地缓存损坏的情况,需要删除History文件夹里的对应文件才行。先退出MT4,打开安装目录,找到history文件夹,按服务器名称找到对应的子文件夹,把里面的文件全部删除或者剪切到别处备份MT4图表比例失调根源与精准修复方法。重新启动MT4后,软件会重新从服务器下载数据,这个过程可能比较慢,耐心等它加载完就好。
说实话,这个方法虽然有效但有点麻烦,如果你的数据缺失范围很大,下载过程可能持续好几分钟。
我建议在凌晨或者网络空闲的时候操作,成功率会高很多。另外,如果你经常需要翻看历史数据做分析,最好每隔一段时间就手动备份一下history文件夹,万一出问题还能直接恢复,不用重新下载。
还有一个偏方,就是换一个数据服务器。如果你用的是多个交易商提供的MT4,可以对比一下哪个服务器的数据更全,把那个服务器的history文件直接复制到当前平台的对应文件夹里。不过这个方法要小心,不同平台的数据格式可能不完全兼容,复制前最好备份原文件。
从实际使用角度来说,我建议大家把MT4升级到最新版本,虽然老版本用着顺手,但新版本在数据加载机制上确实有优化。另外,固态硬盘和稳定的网络环境对数据完整性也有帮助,别小看这些硬件因素,有时候数据加载到一半卡住,跟你硬盘读写速度慢有直接关系。
最后提醒一句,如果以上方法都试过了还是缺数据,那可能真就是平台服务器那边没有存储,这种情况下你再怎么折腾也没用,要么接受现实,要么换一个数据更全的平台。