目录

MT4正版下载 - 每天收盘自动平仓这事我在MT4上折腾到凌晨三点_先是搞懂了那个该死的收盘时间判断

每天收盘自动平仓这事我在MT4上折腾到凌晨三点_先是搞懂了那个该死的收盘时间判断
昨天又是在电脑前坐到后半夜,就为了搞那个每天收盘自动平仓的EA函数,其实这事从我第一次做隔夜单被跳空坑了就开始想了,后来断断续续拖了得有大半年,期间换过好几版思路,也看过论坛里那些写了一大堆但就是不说核心代码的人,最后自己一点点试出来的,今天趁着脑子还热乎赶紧把这过程倒给你们,虽然写得乱但每一步都是真跑过的。

先是搞懂了那个该死的收盘时间判断

MT4自带的那个TimeCurrent()拿到的服务器时间其实跟你电脑右下角那个时间经常对不上,你拿本地时间去对服务器开盘价那不就是瞎搞吗,所以得先搞清楚你说的是哪个收盘,是每天23:59的日线收盘还是每周五那根周线收盘,还是你想做的是那种提前三分钟就开始平仓的提前量,这个不搞明白后面全白搭,(1)因为MT4没有直接告诉你“今天还有几秒收盘”现成函数,你要么用iTime(NULL,PERIOD_D1,0)+PeriodSeconds(PERIOD_D1)-TimeCurrent()这么算,要么用TimeUntil()那个新函数(2)然后还得考虑夏令时冬令时切换,那些经纪商有时候就不跟着当地时区走,你的EA在四月份突然早了一小时平仓你根本不知道怎么回事(3)还有最恶心的就是那种周五收盘跟周一开盘之间跨了好几十个小时,你要是按日线来算周五那根收盘价就没事,但你按小时来算那就完了。

那会儿我是从下午五点一直试到晚上十点多,就那么一行一行把服务器时间打印到评论里看,最后发现我这里那个平台每天收盘就在23:59:58那个位置还带几秒延时,所以你要在EA里做的时候就千万别写那种“等于”的判断,要写成“大于等于”,不然你那单子就永远没法精确卡在那个点上,我就因为写了个等号结果整个EA从没触发过,白白浪费了两天在那看盘。

说到这我又想起,其实最保险的办法不是自己算时间,而是每天只定个窗口期去做,比如21:00到23:50这段时间内通过OnTick()里的定时器去循环检查一次当前bar的开盘时间有没有变成新的一天,变了说明旧bar已经收盘了,这时候你在新bar的第一根K线开盘的头一笔里面把所有仓位都平掉就完事了,这比你去卡那一两秒稳得多。

三种主流模型对比与适用场景

MT4提供了三种回测模型,每个模型处理控制点和开盘价的方式都不太一样。第一种是“每个报价”模型,这种模式会尽量模拟每一笔真实报价,理论上最接近实盘,但它的计算量非常大,而且对历史数据的质量要求极高。如果数据本身有缺失或跳空,这种模型反而会放大价差异常,让回测结果变得不稳定。

第二种是“控制点”模型,也就是默认的快速回测方式。它的特点是计算速度快,但处理开盘价时只使用每个时间周期的第一个控制点,这就会导致开盘价和实际成交价之间出现偏差。我在测试一个突破策略时发现,用这种模型回测出来的盈亏比是1:2.3,但拿到模拟盘上跑,实际盈亏比只有1:1.8,差距就是控制点模型对开盘价的简化处理造成的。

第三种是“开盘价”模型,这种模型专门针对开盘价进行优化,它假设所有交易都以每个周期的最初价格成交。这个模型适合那些在开盘瞬间就完成建仓的策略,但它的缺陷是忽略了盘中的价格波动。如果你交易的是日内波段,这种模型就会把控制点和开盘价的价差问题完全掩盖,让你误以为策略很稳定,实际上换到实盘就完全变形了。

刷新频率和挂单变化背后的门道

市场深度窗口的数据刷新速度,其实跟你的网络延迟以及服务器位置有很大关系。我做过一个简单的测试,在同一个网络环境下,连欧洲服务器和连亚洲MT4电脑版卡顿根源排查与提速实用技巧_手动恢复界面布局的实用方法服务器,深度窗口的刷新速度能差出几百毫秒。这可不是小事,因为在流动性充足的时候,挂单变化是以毫秒级发生的。

你会发现,卖盘和买盘的挂单量并不是一成不变的。有时候你看一眼,某个价位上挂着200手,眨个眼就变成150手了,再过一会儿又变成190手。这里头有几种可能:一是真的有人成交了,二是有人撤单了,三是流动性提供商在调整报价。说实话,要完全分清这三种情况,光靠肉眼盯窗口是不够的,但至少你能感受到市场的呼吸节奏。

有个小技巧是,把市场深度窗口和图表上的成交量柱状图放在一起看。如果深度窗口里某个关键价位的挂单量突然大幅减少,而图表上的成交量并没有明显放大,那大概率是撤单,不是成交。这个判断对于识别假突破特别有用,反正我靠这个方法躲过好几次扫损的行情。

另外,别忽略深度窗口里那些远离当前价格的挂单。比如当前价格在1.1000,但1.1050上方挂着一笔巨大的卖单,这往往意味着那个位置有强阻力。
很多有经验的交易者,就是靠着观察这些远端大单来提前布局的。

移动端MT4查看资金记录同样方便

现在很多人习惯在手机上查看MT4账户情况,移动端的操作逻辑和电脑端略有不同。在MT4手机App里,点击下方菜单栏的“历史”选项卡,就能看到所有已平仓订单和资金操作记录。默认显示的是当前这个月的记录,同样可以通过右上角的筛选按钮来调整时间范围。

不过移动端有个小限制,就是无法像电脑端那样直接导出报告。如果你需要把资金记录发送给其他人或者存档,只能通过截图的方式。说实话,这个功能缺失确实不太方便,但考虑到手机屏幕显示空间的限制,也能理解。如果你的资金变动记录比较频繁,建议还是回到电脑端去导出完整的报表。

还有一点要提醒大家,在查看资金记录时,要注意区分“账户余额”和“净值”这两个概念。账户历史中显示的资金变动是累计的余额变化,而净值则是包含当前浮动盈亏的实时值。有些人看到账户历史里显示盈利很多,但实际净值却比余额低,就是因为有未平仓的浮亏。搞清这两个概念的区别,才能正确理解资金记录的真实含义。

顺便说一句,MT4的账户历史记录是保存在本地电脑或手机上的,如果你更换了设备或者重新安装了软件,历史记录可能会丢失。所以养成定期导出保存资金记录的习惯,特别是对于长期交易的账户来说,这是非常重要的财务数据备份。把导出的报告存在网盘或者邮箱里,既安全又方便随时查阅。

文章目录