目录

MT4闪退 - MT4优化目标能否自定义选择核心设定讲解

MT4优化目标能否自定义选择核心设定讲解
接触MT4时间久的老交易员,几乎都离不开策略测试器这个功能。答案其实是能的,但这里头有不少细节,不能光看表面。为数不少新手看到这里都会犯嘀咕:这些选项到底能不能自己改。能不能不按它给的那几个条件来,换成我自己定义的目标去优化。每次跑回测的时候,界面里总有一个叫“优化”的选项卡,里面默认有一堆可以勾选的指标,比如Balance、Profit Factor、Expected Payoff之类的。

优化目标到底是怎么一回事

先解释一下优化目标的本质。MT4的策略测试器在跑优化时,需要有一个“评分标准”来决定哪组参数最优秀。

MT4默认提供的优化目标选项很固定,在一定程度上,即那么几个:Balance、Profit Factor、Expected Payoff、Drawdown、Custom,总共五个,外加一个“Minimized”和“Maximized”的方向选项。比如选Balance,系统会在所有参数组合里找最终余额最高的那组;选Profit Factor,则找盈亏比最漂亮的那组。所以这个选项直接影响优化方向,非常关键。这个标准即是你选择的优化目标,它决定了EA的哪项表现会被优先放大。为数不少朋友看到“Custom”这个词就眼前一亮,点进去发现并没有自定义输入框,倒是有个“从DLL加载指标”的按钮,这就让人有点懵了。

说白了,这个Custom并不是让你填一个公式进去,而是要你写一个动态链接库里导出的评分函数,然后让MT4调用它来判定参数好坏。Balance是最终余额,也就是资金曲线最高点。但这并不代表你只能束手无策,下面会讲实际能操作的替代手段。

预设选项的含义和它们各自的坑

先挨个看看这些预设项都代表什么。这对普通交易者来说门槛非常高,不是一般用户玩得来的。Profit Factor是总盈利除以总亏损的比值,值越大说明同样风险下赚得越多。Expected Payoff是平均每笔交易的期望利润,它排除了交易次数的影响。既然系统只想着第三余额最高,根本不管中间经历了多少惊险的下跌。每个指标侧重的角度完全不同。

实际利用中你会发现一个很气人的现象:选Balance优化出来的参数,往往回撤大得吓人。Drawdown是回撤,选它作为目标的话,MT4会尽量削减资金曲线的峰值回撤幅度。换一个角度,比如选Profit Factor,虽然最终资金可能不是最高的,但整个交易过程会平稳不少。这就是选错优化目标的代价,很多时候你看到的漂亮回测结果其实只是特定目标下的产物。所以这里有一个必须养成的习惯:先想清楚你真正关心的是什么是其根本原因。
同一套策略逻辑,参数差别非常大,再决定选哪个目标去跑优化。优化目标诱导它往不同方向走。

不可否认的是,我自己遇到过很典型的情况:同一个EA,用Balance优化,跑出年化300%多的收益曲线;换成Expacted Payoff优化,年化只有120%,但最大回撤从80%缩到了20%。

想自定义目标又不想写代码怎么办

当然有办法。MT4虽然不能像MT5那样直接自定义复杂优化条件,但你可以借助EA内部的逻辑变相实现。这样在优化时,MT4默认去最大化Balance,实际上就等于在最大化你自己定的那个综合评分指标。

坦白说,具体操作其实不复杂,只要熟悉MQL4基础语法,你可以在每次模拟交易结束后,把盈利和亏损数据提取出来,算出一个自定义的绩效分数。比如得分=净盈利/最大回撤,然后把这个分数变成一个假的“余额”函数。一个最常用的入门手段是:在EA的代码里设定一个“总分”变量,把希望考察的多项指标——比如最终余额、回撤、盈亏比、胜率——加权计算成一个综合得分,然后把这个得分赋值到某个固定交易品种的余额相关变量上,再用默认的Balance目标去优化。这个思路已经被很多量化爱好者用烂了,却是完全可行且常用的。

还有一个更加省事的笨办法:分几步跑。

根据交易风格调整优化方向才算真正会用

优化目标的选择没有绝对正确答案,它完全取决于你用来跑优化的是什么策略类型。然后把这组参数放到一个普通回测里,自己根据回测报告里的盈亏、最大回撤、交易次数、夏普比率等指标去人工评断哪组最符合你的需求。说白了,这不算真正的自定义,但能让你的选择空间变得更加大,而且不用碰代码。先用系统自带的几种目标分别优化,把三组最优参数都记录下来。比如剥头皮类EA,单笔利润很小,胜率极高,这时候纯看Balance容易选出一堆高频捡芝麻的参数,一旦真实市场里遇到点滑点就废了。更适合用Expected Payoff,把目标放在每笔平均收益上,会比较接近实际表现。

从理论上来讲,如果你开发的是一个比较稳定的网格或马丁型策略,那回撤必然是头号敌人。这类策略如果选Profit Factor优化,有时会出现非常极端的结果,比如总共只有30笔交易,其中一笔盈利扛了整个回测,这样的参数完全没有统计可信度。这时候利用Balance并配合限制最低交易次数的方式会更靠谱。

需要指出的是,趋势类EA则刚好相反,它是靠少数几笔大盈利覆盖多次小亏损的,胜率通常不会很高。这个时候直接在优化目标里选择Drawdown最小化,再去结合其他指标筛选会非常对症。不过要注意,MT4里Drawdown选项是“minimized”模式的,也就是说它找到的是回撤最小的参数,但可能同时收益也低得可怜,还需要后期人工校正。那些回测开起来非常漂亮、实盘却一塌糊涂的EA,多半就是优化方向没设好导致的。要不要花心思去折腾,完全看你对EA整体素质的要求有多高。很多人直接把默认Balance当成唯一选项用了一辈子,错过了许多更合理参数的可能性。

说到底,优化目标能不能自定义这个问题,真正的答案就是:默认选项不够用,但你可以通过变通手段达到自定义的效果。这时候重新考虑优化目标,下一步跑出来的结果也许就能出乎你的意料。

文章目录