目录

MT4移动止损 - MQL4函数库我自己折腾Include文件夹那些坑_先说说Include文件夹这事

MQL4函数库我自己折腾Include文件夹那些坑_先说说Include文件夹这事
昨晚加班到十一点多,盯着MT4那个MetaEditor编辑器发呆,就为了写一个计算仓位的自定义函数,折腾了三个小时,最后发现是Include文件夹路径没放对,你说气不气人,其实这事我早就该写下来,毕竟从第一次碰MQL4到现在也快两年了,中间踩过的坑比吃过的盐还多,今天闲着没事,把这段经历倒出来,能帮一个是一个,不能帮权当我自己发泄。

先说说Include文件夹这事

我当时以为随便建个文件夹把mqh文件扔进去就行,结果MT4根本不认,后来才知道必须放在数据文件夹里的MQL4\Include这个目录下,而且不是安装目录那个,是你打开MT4后点文件、打开数据文件夹那个才是真正的路径,很多老手都不一定注意这个,我就栽在这上面了,找了半天找不到自己写的函数,那感觉跟钱包丢了大街上似的,烦得很。

要说这个Include文件夹,它就是个放自定义库的地方,你建的.mqh后缀的文件就丢那里,然后主程序里用#include一句就能调用,但我第一次写的时候连#include和import都分不清,以为是同一个东西,结果编译报错报得铺天盖地的,后来才明白#include是把它当代码插进来,import是从exe或dll里引外部函数,根本不是一回事,这段弯路走得我脑袋都大了。

还有一次更搞笑,我把文件放对了位置,但文件名用了中文,结果MetaEditor编译的时候死活报错,说找不到文件,我改了英文名就好了,你说这MT4老平台就这点脾气,啥都得用英文,连注释里写中文有时候都能出乱码,真的是老古董,不过习惯也就习惯了,现在我所有mqh文件统一用英文加下划线命名,再没出过这毛病。

对了,还要说一下那个Include文件夹里其实自带了一些现成的库文件,比如stdlib.mqh这些,你打开看看就能参考人家怎么写的,我一开始还傻乎乎地自己从头写,后来才发现可以直接借用里面的函数,或者模仿格式,省了好多事,真的。

核心指标逐个拆解

打开报告后,最让人头晕的就是那一大串英文缩写和数字。别慌,我们挑重点看。第一个必须关注的是“总净盈利”(Total Net Profit),这个数字直接告诉你整个测试周期内策略赚了多少钱。但光看这个绝对数字是不够的,你得结合“盈利因子”(Profit Factor)一起看。盈利因子是总盈利除以总亏损,这个数值大于1.5才算基本合格,低于1.2的话,这策略基本就是白忙活了。

接下来是“最大回撤”(Max Drawdown),这个指标可以说是整个报告里最重要的风险指标。它表示在测试期间,你的资金从最高点跌到最低点的最大幅度。
举个例子,如果你的初始资金是1万美元,回测中资金涨到了1.5万,后来又跌到1.2万,那最大回撤就是20%。这个数字直接决定了你在真实交易中能不能扛得住心理压力。我个人经验是,回撤超过30%的策略,实盘基本很难执行下去,因为连续亏损个十来笔就会让你怀疑人生。

再往下看,“交易次数”(Total Trades)和“胜率”(Percent Profitable)这两个数据要放在一起解读。很多人只看胜率,觉得胜率越高越好,其实这是个误区。我见过一个胜率只有35%的策略,但因为盈亏比高达1:3,整体收益反而非常可观。反过来,胜率90%的策略也可能因为单笔亏损过大而亏钱。所以看胜率的时候,一定要同时看看“平均盈利”和“平均亏损”这两个数值,算一下盈亏比是否合理。

最后别忘了看“夏普比率”(Sharpe Ratio),这个指标衡量的是每承担一单位风险能获得多少超额回报。MT4的测试报告里这个数值一般不会太高,0.5以上就算不错,超过1就很优秀了。但要注意,夏普比率是基于历史数据计算的,市场环境一变,这个数值的参考价值就会大打折扣。

缓冲区数量对指标设计的影响

当你设计的指标需要超过8个数据序列时,就不得不动点脑筋了。最常用的办法是把不需要显示的计算结果合并到一个缓冲区里,然后用颜色或者线型来区分不同含义。比如布林带指标,上下轨可以存两个缓冲区,中轨存一个,但如果你还想存带宽、%B之类的衍生指标,那就得另想办法了。

另一个技巧是利用全局变量或者在OnCalculate里声明静态数组来存储额外的数据,这样就不占用指标缓冲区的名额了。但这种方法有个明显的弊端,就是这些数据无法在数据窗口中查看,也不能被EA直接读取。说实话,如果你只是做内部计算,这办法还挺好使的,但要是想调试或者让用户能直观看到这些数据,那就得牺牲掉一些缓冲区了。

从实际使用经验来看,绝大多数成熟的交易指标,比如RSI、KDJ、CCI这些,缓冲区数量都不会超过5个。8个缓冲区的上限已经预留了很大的冗余空间。不过,如果你是那种喜欢在一个指标里集成多种功能的"缝合怪"型开发者,那可能真得好好规划一下缓冲区的分配,不然很容易就撞到天花板了。

登录成功后的界面确认和后续操作

当登录成功的瞬间,MT4的左上角会显示账户的余额和净值数据,市场报价窗口里的所有品种价格也会开始实时跳动。这时候别急着下单,先打开“终端”窗口(快捷键Ctrl+T),切换到“交易”标签页,确认账户类型、杠杆比例和保证金模式都显示正确。如果有任何异常,比如杠杆不对或者账户被冻结,趁早联系经纪商处理。

登录后还有一件重要的事:检查图表右下角的连接状态。正常连接时,那里会显示一个绿色的小圆点,旁边有数字跳动;如果是黄色或红色圆点,说明连接不稳定,行情数据可能延迟。这时候可以把鼠标悬停在圆点上,查看具体的连接质量指标,如果延迟超过200毫秒,建议换用离自己最近的服务器节点。

最后提醒一句:MT4支持同时登录多个账户,但每个账户的服务器设置是独立的。如果你手里有多个不同的交易账户,切换时一定要确认当前激活的是哪个服务器配置。我就曾因为切换账户时没注意服务器,把模拟账户的订单下到了真实账户里,幸好发现及时才没有造成损失。养成每次登录后都核对右上角账户ID的习惯,能避免很多不必要的麻烦。

文章目录