MT4正版下载 - MT4订单列表刷新操作详解与实用技巧_优化参数与防止过度拟合的实用技巧

说实话这东西水分挺大的
经常有人问我MT4模板到底有个啥用,我说你去看看你面前那个默认界面你能不能盯一个小时不涨火,那白底黑线粗看确实还行,但你要是像我一样盯单子能盯一整天你就知道苦头了,尤其是那个报价窗口的字又小又细,我要是最近视力一般又熬夜的话基本上得整个人凑到屏幕上去看,而且你换个品种一看,咦?怎么MACD要去重新加?均线还得从0开始调?……(我那时候就是这么傻呼呼地反复弄,我也是挺佩服当年那个耐心的我)
其实所谓的模板,那句话说的难听点,就是你把你眼睛爱看的颜色、常用指标的参数、K线的胖瘦啊、全局网格的显示方式呀全存成一个文件而已,就是软件让懒人能有另一条偷懒路径的东西,但奇怪的是好多人愣是不乐意花十分钟学习这个,非要在每张新图上面从新戳一回,我跟我一个赌场刚认识的友说这事他都乐了,说你存下它干啥呀多点几下又不亏,不过这话说的也是屁话,等你手上多了好几十个图表,每来一个新品种给你从头配置一遍看着是真受罪,这种重复弄让你感觉脑子就是被糊了猪油。
当然这个功能也有个毛病我后面才发现着,就是你这模板导成后别以为万事大吉了,首先得知道它被放到哪几个文件夹的位置有讲究的,程序有大概率自己又临时新建一个别的路径然后愣是瞅不到你存的东西,具体咋回事我还真形容不太明白,反正有一次我自己存的模板消逝了半个小时我又在里面怒找,当时的表情相当像一只发现没埋好罐子的松鼠。
说几个改单时候必须面对的小鬼
你要是想改止损价格,必然得用那个OrderModify函数,但在你调用之前你得先把订单选中了,我新手那会儿压根不知道要先把那订单Select一下,然后就一直得不到那个当前的止损价,改来改去却只会把那个止损当成零来处理,结果一运行下单就报错说你价格不对,其实吧你对那个旧止损的读取都得依靠OrderSelect的返回值,只有这个成功了下一步才有意义,而且它每次报价的时候你还得重新Select一次,因为那个订单状态可能都变了,就算你没平仓,MT4警报提示音自定义替换成喜爱音频_警报声音文件到底藏在哪那个单子的数据也可能在服务器那端有了微调,你明明在前一根K线的时候设得好好的,现在再想挪一下就得再次选择那个单号才拿得到最新的东西。
(1)你得先清楚自己开的是市场的哪一边,是多单还是空单,因为你的止损追踪方向完全是反着的,多单要往高处追,空单要往低处追,你要是把方向搞反了那系统一秒钟都不用就会帮你关掉,还怪你逻辑不对,(2)然后你得设定一个追踪的距离,这个距离你可以用点来表示,也可以用你账户的货币来计算,比如固定一百个点的距离,每次报价的时候拿现价减去一百个点跟当前的止损价比一下,哪个高就选哪个来用,要是现价减去某个距离反而比旧止损低了,那就不动,免得把止损往回拉,(3)你那个起始的止损值肯定是设得越贴近入场价越好,不然启动点太高了还没等行情颤两下就给你打掉一大段利润,(4)我试过还有用抛物线的算法的,但那个算法在震荡行情里让人气得头痛,止损被反复打掉好几轮,(5)还有的人喜欢用移动平均线或者布林带的下轨来跟,那种方式你根本没办法简单写成一个加减法,得处理一堆数组那个延迟的问题也够你喝上一壶的。
反正说了这么多乱七八糟的总归绕不回来那句话,你的每次OnTick进来都得先想想这一秒的价格有没有让原来那个止损变得不够近,不够近就给它挪上去,挪的时候又得算清楚点差还有手续费会不会让你的止损变得像是在做梦一样飘忽不定,我以前也犯过那种把追价距离设成了零的傻事,零距离就是说你的止损等同于市价,那恭喜你了你下一瞬间就会被扫出来,白亏一笔手续费,所以别设置小于等于零的止损价,设置一个比零稍微大一点的距离都要靠你手动测试,没那么省心的。
声音提醒与MT4界面设置的配合使用
光在EA代码里写了PlaySound还不够,MT4本身的设置也得检查一下。打开MT4的菜单栏,找到工具选项里的设置,在“事件”标签页下有一个“启用警报”的选项,这个必须勾选上。如果这里没打开,即使EA代码里写了PlaySound函数,声音也照样不会响。另外还要注意系统音量,别把电脑调成了静音模式,那可就尴尬了。
除了EA触发声音,MT4自带的警报功能也能实现类似的效果。在图表上右键选择“交易警报”,可以设置当价格达到某个水平时播放声音。但说实话,这个内置功能比较死板,只能设置价格条件,没法结合指标判断。相比之下,用EA代码的PlaySound函数就灵活多了,你可以任意组合各种技术指标条件,想怎么触发就怎么触发。
还有一个实用的小技巧,就是给不同的信号设置不同的声音。比如做多信号播放一个清脆的提示音,做空信号播放一个低沉的声音,这样即使不盯着屏幕,光听声音就能知道市场方向。这个实现起来很简单,在代码里根据多空条件分别调用不同的WAV文件就行。
优化参数与防止过度拟合的实用技巧
很多人在测试出初步结果后,就开始调整参数来追求更高的收益,这种优化行为一不小心就会陷入过度拟合的陷阱。所谓过度拟合,就是策略参数被调整得刚好匹配历史数据,但换到未来行情就完全失效了。
我在刚接触MT4策略测试那会儿就吃过这个亏,把一个双均线策略的参数反复调整,测试结果越来越好看,结果实盘一跑直接亏了三个月。
防止过度拟合的第一个方法是做样本外测试。把历史数据分成两段,比如前70%用来调整参数,后30%用来验证最终确定的参数。如果参数在样本外数据上表现依然稳定,那说明策略有泛化能力。MT4的测试器虽然不能自动做样本外测试,但你可以手动设置不同的起始日期和结束日期来分别跑,实际操作起来并不复杂。
第二个方法是减少参数数量。一个策略涉及的参数越少,越不容易过度拟合。比如你用一个简单的高低点突破策略,只需要设置突破周期这一个参数,那它就比需要同时调整三四个参数的复杂策略稳定得多。我在优化时坚持一个原则,能用两个参数解决的问题绝不用三个参数去解决,简单的东西往往更耐用。
第三个方法是观察参数的变化趋势。
把某个参数从最小值到最大值逐步测试,观察净利润的变化曲线。如果曲线是平滑的,说明策略对参数不敏感,比较稳健;如果曲线变化剧烈,稍微调一点参数结果就天翻地覆,那这个策略就有过度拟合的风险。我通常会在测试时多跑几组参数组合,看看结果是不是呈梯度变化的,如果出现突然的尖峰,那这个尖峰基本上就是拟合出来的假象。