目录

Mac运行MT4 - MT4自定义函数库编写从零到实战_准备工作:找到Include文件夹并了解基础结构_2

MT4自定义函数库编写从零到实战_准备工作:找到Include文件夹并了解基础结构_2
对于很多使用MetaTrader 4进行交易的朋友来说,MQL4语言就像是打开新世界大门的钥匙。虽然平台自带了不少内置函数,但真正想实现个性化交易逻辑,编写自定义函数库是绕不开的一步。说实话,刚开始接触Include文件夹的时候,我也觉得有点摸不着头脑,但搞明白之后会发现,这其实就是个把常用代码整理成工具箱的过程。今天咱们就一步步拆解,看看怎么在MT4的Include文件夹里创建属于自己的库文件。

准备工作:找到Include文件夹并了解基础结构

首先你得知道Include文件夹藏在哪里。打开MT4安装目录,通常在C盘Program Files或Program Files (x86)下的MetaTrader 4文件夹里,你会看到一个名为Include的子文件夹。如果你用的是便携版或者自定义安装路径,那就去你安装MT4的地方找找看。这个文件夹就是咱们存放自定义库文件的地方,MQL4会自动识别里面的内容。

在开始写代码之前,建议你先打开Include文件夹看看里面有什么。你会发现里面已经有一些系统自带的库文件,比如stdlib.mqh、stderror.mqh这些。这些文件其实就包含了大量现成的函数和错误代码定义。说白了,你可以参考它们的结构来写自己的库。我当初就是打开stdlib.mqh看了半天,发现原来库文件的格式这么清晰,瞬间就有了信心。

库文件的后缀名是.mqh,这个很重要。你新建一个记事本文件,把后缀改成.mqh就行了。不过说实话,我建议你直接用MT4自带的MetaEditor编辑器来写,因为MetaEditor有语法高亮和自动补全,能省不少事。打开MetaEditor后,选择文件→新建,在弹出的对话框里选择Include文件,这样会自动生成一个标准的.mqh模板。

模板里会有一些默认内容,比如文件头注释、版权信息之类的。你可以先忽略这些,直接开始写你的函数。不过有一点要注意:库文件里不能包含像OnInit()、OnTick()这样的入口函数,因为这些是给EA和指标用的。库文件只包含函数定义、变量声明和类定义,说白了就是个纯工具集合。

构建多品种监控的EA框架

先说说EA的整体结构。一个典型的多品种监控EA,需要包含初始化部分、主循环部分和数据处理部分。初始化部分主要用来设置要监控的品种列表,主循环部分负责定时检查每个品种的报价,数据处理部分则根据策略逻辑做出交易决策。这个框架其实和单品种EA差不多,只是多了个品种循环。

在初始化函数OnInit里,我通常会定义一个字符串数组来存放品种名称。比如string symbols[] = {"EURUSD", "GBPUSD", "USDJPY", "AUDUSD"}。如果你要监控的品种很多,也可以从外部输入参数中读取,这样不用每次修改代码。另一个常见的做法是从市场报价窗口中读取所有可见品种,用SymbolsTotal函数获取品种总数,然后用SymbolName函数逐个获取名称。

主循环部分通常放在OnTick函数里。因为OnTick每次价格变动都会触发,如果你监控的品种很多,频繁调用可能会影响性能。我的做法是设置一个计时器,比如每5秒钟检查一次所有品种的报价。这可以通过在OnTick里判断时间差来实现,或者用EventSetTimer函数创建定时器。这样做的好处是避免不必要的计算,同时也能保证数据更新的及时性。

报表里其他相关指标怎么看

除了最大回撤,报表里还有几个指标和风险控制息息相关。比如“相对回撤”这个数据,它能告诉你亏损占账户余额的比例。假设你的账户余额是1万美元,最大回撤是1500美元,那么相对回撤就是15%。这个比例比绝对金额更重要,因为它能反映你资金管理的水平。

报表里还有一个叫“盈利因子”的指标,它是总盈利除以总亏损。盈利因子大于1说明你整体在赚钱,小于1就是亏钱。但说实话,盈利因子高不代表风险低,因为一个高盈利因子的系统可能伴随着巨大的最大回撤。比如有的策略盈利因子能达到3,但最大回撤却高达40%,这种策略一般人根本扛不住。

我建议你在看最大回撤的同时,也留意一下“交易次数”和“胜率”。如果胜率很高但最大回撤也大,说明你的止损设置可能有问题。反过来,如果胜率低但最大回撤小,那可能是盈亏比在起作用。这些数据放在一起看,才能全面判断一个交易策略的真实表现。

另外,报表底部还有一个“权益曲线图”,这个图能直观显示账户净值的变化过程。最大回撤其实就是这条曲线从高点跌到低点的幅度。如果你看到曲线有几次大幅下挫,那就说明你的策略在那些时间段里承受了巨大压力。说实话,MT4下载这个图比任何数字都能让你感受到风险的真实性。

优化提醒设置避免频繁打扰

短信提醒虽然方便,但如果不加控制,很容易变成骚扰。我刚开始用的时候,设了十几个价格提醒,结果行情一波动,手机就响个不停,连睡觉都被吵醒。后来我学乖了,只在关键支撑位和阻力位设置提醒,而且尽量只设一个方向。比如你只做多单,那就只在关键支撑位下方设一个提醒,用来提醒你加仓或者止损,而不是上下都设。

还有一个技巧是使用“条件提醒”代替“价格提醒”。MT4里可以设置“当价格高于X”或者“当价格低于X”,但更高级的做法是结合时间条件。比如你可以在晚上设置一个提醒,只在非交易时段触发,避免白天频繁被干扰。另外,对于已经触发的提醒,记得及时删除或者重置,否则第二次触发时你还会收到重复短信,这很烦人。

如果你用的是邮件转短信服务,还要注意运营商的短信发送频率限制。有些运营商规定,同一个号码每小时最多只能收到一定数量的短信,比如中国移动好像是50条。如果你设置太多提醒,超过这个限制,后面的短信就会被系统自动丢弃。所以我建议,重要提醒用短信,次要提醒用邮件或者App通知,这样既能保证关键信息不遗漏,又不会让手机变成轰炸机。

最后,别忘了定期检查你的提醒设置是否还有效。有时候MT4升级或者邮箱密码变更,会导致邮件发送失败。我每隔一个月就会手动测试一下,确保所有提醒都能正常触发。毕竟,如果关键时刻收不到短信,那一切设置都白费了。说实话,这个功能就像一把双刃剑,用好了能帮你抓住机会,用不好反而会徒增烦恼。

文章目录