MetaEditor 帮助项目和 MQL5 存储创建并操控项目

创建并操控项目

MetaEditor 为处理大型项目提供了便利的功能,允许用户将文件组合到一个单一的结构中,并通过在线 MQL5 存储 管理项目设置,进行团队开发和版本控制。

什么是项目?

项目是一个带有 MQPROJ 扩展的独立文件,它保存程序设置,编译参数以及有关项目中使用的所有文件的信息。 导航中提供的单独标签,使项目中的工作更加方便。全部文件,例如包含文件,资源文件,标题文件和其他文件都被安排到这个标签类别中。

项目结构和设置

创建一个项目 #

创建新项目与创建正常的 MQL5 程序一样简单。 点击新建项目并在 MQL5 向导 里选择期望的程序类型:

创建一个新项目

然后完成标准的 MQL5 向导步骤: 设置所需程序的类型,名称和属性,以及选择适当的事件处理器。

向导要可以创建空项目。对于具有默认模板不适合的特定文件结构的非标准开发项目,这是一个有用的功能。在这种情况下,将创建一个空设置文件"mqproj"。应手动创建源代码文件。

基于 MQ5 文件创建项目 #

如果您已经以 MQ5 文件的形式进行了开发,则可以轻松将它们转换为项目。 选择一个文件并点击从源文件新建项目位于文件关联菜单里的从源文件新建项目:

基于源文件创建一个新项目

在已选文件所在的目录中,将会创建一个具有相同名称和mqproj为扩展名的新项目文件。通过#property在源代码中指定的主要程序属性将被自动添加到项目,包括名称,版权,版本,链接到开发者网站和程序描述。通过 #include 指令包含在源代码中的所有文件都将被添加到项目的依赖部分。

项目属性 #

主项目设置可以从单独的对话框访问,而不用编辑源代码,因为它通常在单独的 MQ5 文件中完成。 点击打开项目设置项目属性项目关联菜单中的属性。 以下项目设置可用:

  • 平台是项目开发的平台版本,即 MetaTrader 4 或 MetaTrader 5。
  • 程序类型: 智能交易系统,指标,脚本或函数库。
  • 版权信息显示版权信息,类似于源代码中的 "#property copyright..."。
  • 链接显示开发人员网站的链接,类似于源代码中的 "#property link ..."。
  • 版本: 指定程序的版本,类似于源代码中的 "#property version ..."。
  • 图标: 程序的图标,类似于源代码中的 "#property icon ..."。
  • 说明: 程序说明,类似于源代码中的 "#property description ..."。
  • 启用额外优化:禁用优化的应用程序编译速度更快,但执行速度较慢。
  • 检查浮点分隔:检查禁用的应用程序速度稍快,因为在执行代码过程中,不检查除数为零的错误。
  • 使用优化缓存: 优化期间,策略测试器会将所有执行的传递结果保存在缓存中。为每一组输入保存结果。这允许在对相同参数进行重新优化期间使用现有的结果,而不会浪费时间重新计算。
    但是在一些任务中(例如,在数学计算中),则可能必须进行计算,而无论是否提供之前的结果。在这种情况下,您应该在项目中禁用“使用优化缓存选项”。所有测试结果将仍被保存在缓存中,因此您可以在策略测试报告中查看关于已执行传递的数据。
  • 计算测试器中每个报价上的指标 ― 该选项只适用于指标项目。在策略测试器中运行时,强制在每个报价启用指标计算。该选项只适用于策略测试器中的操作。在平台中,通常在每次接入报价时计算指标。
    当您使用指标测试EA时,只有访问指标数据时策略测试器才会计算指标值,即当请求指标缓冲区的值时。如果EA交易不需要每个报价的指标值,则将显著加快测试和优化期间的速度。如果指标需要在每个报价进行计算,则启用该选项。
    此外,在以下情况下,策略测试器中的指标在每次报价时计算:
  • 当在虚拟模式下测试时
  • 如果指标包含这些函数EventChartCustom、OnChartEvent、OnTimer
  • 如果指标是使用低于1916版本号的编译器进行创建

项目文件中程序属性会被设置高于程序代码中指定属性的优先级。如果项目和源文件中都指定了属性,那么项目属性将被使用。

自项目中添加和删除文件 #

源代码中使用的所有文件都会自动添加到项目导航器中。 例如,如果使用 #include 指令包含新的 MQH 文件,它将自动出现在导航器的 "依赖" 部分。 使用的头文件被添加到 Headers 部分; 图像,声音和项目中使用的其它 MQL 程序(通过 #resource指令)被添加到资源部分。

带有源代码的MQ5文件显示在资源版块。其它文件,诸如测试的设置文件和图表模板,可以添加到 "设置和文件" 部分。

使用快捷菜单命令向项目添加现有文件或从项目中删除文件。删除文件时请注意,因为您不但可以从项目中移除文件(解除绑定)还可以从硬盘中彻底删除文件:

自项目中添加和删除文件

“添加现有文件夹”命令可以将所有支持的文件从所选目录批量添加到项目中。

手工添加到项目中的文件不包含在程序代码中,也不会复制到项目目录中。 该文件仅链接到要在导航器中显示的项目。

编译一个项目 #

若要编译可执行的 EX5 文件,请打开项目或程序的主体 MQ5 文件,然后运行编译器命令(F7)。 生成的可执行文件将在项目文件 MQPROJ 所在的同一目录中创建。

共享项目 #

MetaEditor 允许程序员在团队中远程开发 MQL5 应用程序。 MQL5 存储 在线存储库已集成在编辑器中:

  • 版本支持令您可以查看针对项目所做的所有更改,并在需要时恢复它们。
  • 在线访问该项目可确保从任何计算机、任何项目成员随时访问,使用 MQL5 社区 帐户在 MetaEditor 中激活它。
  • 项目更新通知 ― 随时了解项目文件或设置中的所有更改。若要在您的手机上接收通知,请在您MQL5.community 个人资料的“设置\安全”部分指定您的 MetaQuote ID 。要进行团队交流,请使用 群聊功能。
  • 您可以授予项目参与者单独的权限,令其查看或编辑项目。
  • 您还可以创建 公开项目, 其对所有用户都是可见的。 公开项目显示在 MetaEditor 的单独标签中,任何人都可以申请参与。

共享项目是由一个单独的共享项目版块来管理。如果您尚未激活存储,请从所需文件夹的关联菜单中执行激活 MQL5 存储命令。 MetaEditor 将检查您的存储是否包含任何已保存的数据,以及是否有您可用的共享项目。 所有可用的数据将从存储中提取到您的计算机。 可用的组项目出现在共享项目版块。若要提取项目,请在关联菜单中执行从存储中检出。

若要创建新的组项目,请选择 Shared Projects 文件夹,然后单击新建项目:

创建一个共享项目

然后完成标准的MQL5步骤:设置所需程序的类型,名称和属性。对于组项目,您应该使用清晰易懂的名称,以便其他参与者能够轻松地找到它们。项目名称中只能使用拉丁字母和不含空格的数字。

一个已创建的项目会立即添加到 MQL5 存储中。 项目中使用的 标准库 文件不会添加到存储中,您可以手动添加它们。

若要允许其他参与者使用该项目,请打开项目属性。 您可以授予选定用户权限并为团队工作设置常规参数:

  • 私人项目仅供作者使用
  • 一个自由参与的项目允许任何人加入
  • 在向作者发送请求后,即可访问所参与的项目

为共享项目配置访问权限

若要向选定用户授予权限,请点击 "添加新用户",并指定该用户的 MQL5 社区登录名。 然后选择权限:

  • 只读: 用户可以看到项目数据,并可以下载到他或她的 MetaEditor。
  • 读写: 用户可以看到项目数据,并将他或她自己的更改上传到存储,但无法更改参与者列表。

当您编译一个组项目时,根据程序类型,可执行文件EX5会自动复制到本地专家,指标或脚本目录。它允许您立即在平台上运行程序,而无需手工将其复制到正确的目录。

公开项目 #

在 MQL5 存储上的每一个 共享项目 均有公开设置: 项目可以是私人的或对其他用户开放。 您可以加入在单独的 "公开项目" 选项卡中显示的所有项目。

公开项目

点击加入以便加入一个项目。 之后,该项目将显示在 "共享项目" 部分。 然后点击从存储更新在项目关联菜单中执行从存储更新以便将其下载到您的计算机。

每个加入的用户都获得只读权限。 联系项目作者能够提交您的更改。 若要了解他或她的 MQL5 社区登录信息,请通过关联菜单打开项目属性:

查看项目属性