MT4挂单类型 - MT4电脑版交易历史查询入口与筛选技巧_多EA运行时的其他隐性干扰因素

找到账户历史窗口的三种途径
第一种方法最简单,看软件最下方那一排标签页。在MT4的底部通常有“交易”“账户历史”“警报”这几个选项卡,直接点击“账户历史”就能切换过去。如果你发现底部没有这个标签,不用慌,可以用快捷键Ctrl+F7,或者右键点击底部任意位置,在弹出菜单里勾选“账户历史”让它显示出来。
第二种方式是通过顶部菜单栏。点击“视图”菜单,在下拉列表里找到“终端”选项,点击之后屏幕下方会出现终端窗口,然后在终端窗口的底部标签里选择“账户历史”。这种方式适合那些不小心把终端窗口整个关掉的人,重新调出来就行。
第三种方式稍微隐蔽一点,在“工具箱”窗口里也能找到。如果你之前打开过工具箱,里面同样有账户历史标签。说实话,我平时最常用的就是第一种,直接点底部标签,又快又直观,毕竟天天盯着图表看,谁还愿意去翻菜单栏呢。
再说说那个两下就能唤出来的账户详情报告
如果你不光想看到当前单子的汇总,还想把账户上的各种状态比如净值、已用预付款、可用预付款比较直观地打包看一眼,那你就应该用MT4里菜单栏“视图”那里点开“导航器”窗口,还有在导航器下方的“账户”部分双击你当前那个真实或模拟账户号,会立刻弹出一个名为“账户报告”的独立窗口来,这个窗口里面包含的东西就详细多了,但这里头又有个容易看花的点,就是那里面有个“持仓量”的表述,我记得显示的是有多少个订单数量而不是总手数,它中间还有一堆计算数据比如“今结存”“信用”还有“已用预付款”这些专业字眼,分块排得非常整齐清晰,你只看“空头持仓手数”跟“多头持仓手数”这两个项目才对,因为他们明确的把你所有的手数按做空和做多分开了,两个一加总就是你当前账户的真实总持仓手数了。
说到头来这个功能说到底其实还是那些数字,每次都要打开一次窗口才能看一眼,有时候总觉得静态的一样,不像终端那条“总计”行它永远挂在那里自动刷新,比来比去其实我个人用大概率还是总盯终端底部的“交易”那一页,因为不用再额外调出窗口来,但假如你要做某些统计或者就是想确认一下自己到底手里拿了几手多单几手空单,账户详情报屏所见即所得,一个长方形表格直接给你整得明明白白的,你想我当时第一次用它时觉得这长得跟公司财务给客户发的那种审计账单似的,数字密密麻麻看得人眼皮子直打架,结果最后光找“持仓量”这个词就找了好几分钟。
但是话说回来,这里面有个非常让人无语的地方就是那个“交易”选项卡列表更新的时间有时候会有那么一丁点儿延迟,尤其是你刚平了一个单子之后,那个“总计”行的数字还能残留几秒不会马上变过手数来,这个延迟给人一种虚假的安全或者虚假的危险感,所以你自己心里得有数,不要一看到刚平完仓之后总手数还没掉下去就慌,刷新一下或者点一下其他列表再切回来它就对了,这问题其实也不算是软件坏了,就是MT4在某些时候对于显示层的刷新优化不太激进,耐心一下就行,我那次不知道还差点给客服发了工单,等了半个小时人家还没回我消息结果发现我第二天再打开那数字已经自己变了。
属性设置里的独立控制
很多人不知道的是,每一个EA其实还有自己独立的权限设置。当你把一个EA拖到图表上,或者在图表上右键选择“智能交易系统”然后点击“属性”,就会弹出一个EA属性设置窗口。这个窗口里有几个选项卡,其中“常用”这个选项卡下面有一个“允许实时自动交易”的复选框。
这个复选框非常关键,因为即使你打开了全局总开关,也打开了工具栏上的快捷按钮,但如果这个EA自身的属性设置里没有勾选“允许实时自动交易”,那么它依然不会执行任何交易操作。这种情况经常出现在别人分享的EA文件上,作者可能出于安全考虑默认关闭了这个选项。
在属性窗口里,你还会看到“允许更改挂单和止损”以及“允许更改账户”之类的选项,这些是控制EA操作权限的。
虽然跟自动交易权限本身关系不大,但我建议你把它们也一并勾上,不然EA在运行过程中可能会因为权限不足而报错,导致策略中断。
设置好之后点击确定,系统会提示你是否重新初始化EA,选择“是”就行。这样一来,这个EA就获得了完整的自动交易权限。说实话这一步很多人容易漏掉,因为大家习惯性地以为全局打开了就万事大吉,其实每个EA都需要单独授权才行。
多EA运行时的其他隐性干扰因素
全局变量是最主要的冲突点,但并不是唯一的。还有一个容易被忽略的干扰源,就是交易操作的互斥性。MT4虽然允许每个EA独立下单,但账户的资金是共享的。如果一个EA在开仓时没有设置好magic number(魔术数字),那么你在平仓或者修改止损时,就很容易误操作到其他EA的单子。比如你手动平掉了EA-A的单子,结果发现EA-B还在傻傻地监控着那个已经消失的单子,然后不断尝试修改止损,导致一堆错误报警。
另一个隐性干扰是订单注释(comment)和持仓判断逻辑。有些EA在判断“当前是否有持仓”时,不是用magic number来过滤,而是直接查询账户所有持仓。这种情况下,如果EA-A看到EA-B开的单子,它就会误以为是自己开的单子,从而跳过开仓逻辑,或者错误地执行平仓操作。这个问题在那些编写粗糙的免费EA里特别常见。解决的办法也很简单,所有EA开仓时必须强制使用独立的magic number,并且在所有持仓判断和订单操作代码中,严格用magic number进行过滤,这个习惯必须养成。
最后要说的是电脑性能的消耗。虽然这不属于逻辑冲突,但多个EA同时运行,每个EA的每一个tick都要执行一遍主函数代码。如果你挂了三四个EA,每个EA的代码又写得比较臃肿,包含大量循环计算或者复杂指标调用,那CPU占用率会飙升。我实测过,在单核虚拟机里挂3个复杂EA,行情剧烈波动时,平台会出现明显的卡顿,甚至报价延迟。这虽然不会直接导致逻辑冲突,但延迟的报价和迟滞的响应,间接也会影响EA的决策质量,容易引发一些意想不到的滑点和重复下单问题。所以,多EA运行前,一定要检查代码效率,把不必要的计算移到新tick出现时才执行,或者减少指标计算的频率。
说白了,多个EA同时运行这事儿,就像是在同一个厨房里让几个厨师同时做菜。厨房(MT4)本身提供了独立的灶台(图表)和炊具(局部变量),但公共的调料架(全局变量)和冰箱(账户资金)是共用的。只要每个厨师都拿好自己的专属调料瓶(前缀命名),用颜色区分好自己用的食材(magic number),并且炒菜时注意别占用别人的锅(订单操作逻辑),那这顿饭还是能顺顺利利做出来的。怕就怕那种不管不顾,随手乱放调料,还喜欢拿别人锅里菜当自己食材的EA,那这厨房迟早得炸锅。