MetaEditor 帮助 → 项目和 MQL5 Algo Forge → 创建并操控项目

创建和使用项目

MetaEditor 为项目处理提供了许多实用功能。它允许您将文件组织成单一结构,管理项目设置,并通过 MQL5 Algo Forge 与版本控制进行协作。

什么是项目?

项目是一个 MQPROJ 文件,它存储设置、参数以及编译 MQL5 应用程序所需的任何信息。

双击 MQPROJ 文件会打开“项目”选项卡,这是一个独立的工作区,便于在导航器中处理项目。此选项卡上所有项目文件和文件夹均按类别排列。

项目结构和设置    

创建一个项目 #

在顶部菜单中,点击“文件”>“新建项目”或按 Ctrl + Shift + N。选择所需的程序类型,并在 MQL5 向导中继续操作。

创建一个新项目

输入名称和其他详细信息,添加参数,并选择事件处理函数。

该向导还支持创建空项目,以容纳与默认模板不兼容的文件结构。空项目包含一个空白的 MQPROJ 文件,需要您手动创建源代码文件。

基于 MQ5 文件创建项目 #

右键单击 MQ5 文件,然后选择“从源文件创建新项目”。

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

目录中将会出现一个同名的新 MQPROJ 项目文件。源代码中通过 #property 指定的主要程序属性将自动添加到项目中,包括名称、版权、版本、开发者网站链接以及程序描述。所有通过 #include 指令包含在源代码中的文件都将添加到项目的“依赖项”部分。

项目属性 #

您可以从单独的对话框访问项目的设置,而无需编辑 MQ5 文件源代码。只需在“项目”选项卡上双击 MQPROJ 文件即可。

项目结构和设置

以下项目设置可用:

  • 平台 ― 项目所开发的平台版本,即 MetaTrader 4 或 MetaTrader 5。
  • 程序类型 ― EA交易、指标、脚本或库。
  • 版权 ― 类似于源代码中的 “#property copyright ...” 的版权信息。
  • 连接 ― 指向开发者网站的链接,类似于源代码中的 “#property link ...”。
  • 版本 ― 类似于源代码中的 “#property version ...” 的程序版本。
  • 图标 ― 类似于源代码中的 “#property icon ...” 的程序图标。
  • 描述 ― 类似于源代码中的 “#property description ...” 的程序描述。
  • 中央处理器 ― 针对特定处理器指令集优化编译:X64 常规、AVX、AVX2 + FMA3、AVX512 + FMA3。
  • 最大优化 ― 启用此选项的应用程序执行速度会更快。
  • 检查浮点除法器 ― 禁用此选项的应用程序运行速度会稍快一些,因为在代码执行过程中不会检查零除错误。
  • 使用测试器优化缓存 ― 在优化过程中,策略测试器会将所有执行过的遍历结果保存在缓存中。每组输入的结果都会被保存。这允许在对相同参数进行重新优化期间使用现有的结果,而不会浪费时间重新计算。
    但是在一些任务中(例如,在数学计算中),则可能必须进行计算,而无论是否提供之前的结果。在这种情况下,您应该在项目中禁用“使用优化缓存选项”。所有测试结果将仍被保存在缓存中,因此您可以在策略测试报告中查看关于已执行传递的数据。
  • 在测试器中每次报价都计算指标 ― 此选项仅适用于指标项目。在策略测试器中运行时,它会强制启用每次价格变动的指标计算。此选项仅适用于策略测试器中的操作。在该平台中,指标总是在每个传入报价时进行计算。
    当您使用指标测试 EA 交易时,策略测试器仅在访问指标数据时(即请求指标缓冲区值时)计算指标值。如果 EA 交易不需要每个 tick 都获取指标值,这将大大加快测试和优化速度。如果需要在每个 tick 计算指标,请启用此选项。
    此外,在以下情况下,策略测试器中的指标会在每个 tick 进行计算:
  • 在可视模式下进行测试
  • 如果指标包含函数 EventChartCustom,OnChartEvent,OnTimer
  • 如果该指标是使用低于 build 1916 版本的编译器创建的
  • 在运行脚本之前显示确认窗口 ― 防止意外执行脚本。
  • 在运行脚本之前显示属性窗口 ― 允许您在运行脚本之前查看和修改输入参数。

当项目文件中指定的属性与源代码中定义的属性发生冲突时,前者具有优先权。

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

源代码中使用的所有文件都会自动添加到项目导航器中。例如,如果您使用 #include 指令添加了一个新的 MQH 文件,该文件将自动出现在导航器的 “Dependencies” 部分。已使用的头文件被添加到 “Headers” 部分;项目中作为资源(通过 #resource 指令)使用的图像、声音和其他 MQL 程序被添加到 “Resources” 部分。

MQL5 文件及其源代码显示在 “Sources” 部分。其他文件,如用于测试的设置文件和图表模板,可以添加到 “Settings and files” 部分。

您可以使用上下文菜单命令将现有文件添加到项目中或从中删除文件。删除文件时要小心,因为你可能会从项目中移除文件(解除绑定)或将其从磁盘中彻底删除。

自项目中添加和删除文件

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

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

编译项目 #

要获取项目的 EX5 可执行文件,请打开项目或程序的主 MQ5 文件,然后运行编译命令(F7)。该文件将在包含 MQPROJ 项目文件的目录中创建。

当您编译组项目时,可执行文件会根据程序类型自动复制到本地的 Experts、Indicators 或 Scripts 目录。这样您就可以在 MetaTrader 中立即运行该程序,而无需手动将其复制到所需目录。

共享项目 #

“共享项目”是专门用于协作项目的部分。您在此部分创建的任何项目都将自动推送到在线存储。

要创建新的共享项目,请右键单击 “Shared Projects”,然后选择“新项目”。

创建一个共享项目

然后,在 MQL5 向导中完成标准步骤:设置所需程序的类型、名称和属性。对于协作项目,你应该使用清晰易懂的名称,这样其他参与者就能轻松找到它们。项目名称中只可以使用没有空格的拉丁字符和数字。

创建共享项目完成后,它将以您的名义作为私有存储库出现在 MQL5 Algo Forge 网站上。

改变共享项目的可见性 #

您可以选择将存储库设为公开,或授予特定用户访问权限。右键单击项目文件夹,然后选择“共享项目设置”。

将“共享”从“个人项目”更改为一个新选项:

  • 个人项目:只有作者才能访问该项目。
  • 自由加入项目:任何人都可以加入这个项目。
  • 请求加入项目:用户可以申请加入项目,作者可以批准或拒绝每个申请。

为共享项目配置访问权限

您可以授予特定用户访问权限。点击“添加新用户”,然后输入用户的 MQL5.community 登录名。点击“权限”下拉菜单,即可查看您可以授予用户的可用权限:

  • 阅读:用户可以查看和下载项目文件。
  • 读和写:用户可以查看、下载和修改项目文件。
  • 管理员:用户可以执行读取、写入以及控制参与者列表等所有操作。

公共项目 #

公共项目是指可见性设置为公开的存储库。任何 MQL5 用户都可以下载公开项目的文件,将其分叉 以创建自己的副本,与项目所有者或维护者合作,并 提出 代码更改建议。

MetaEditor 中的“公共项目”选项卡正在开发中。作为替代,您可以 浏览 MQL5 Algo Forge 网站上可用的公共项目,该网站就像是算法交易社区的 GitHub。

公共项目网站

在您 分叉 一个公共项目后,您的分叉副本将以您的名字出现在网站上,作为一个公共存储库。在 MetaEditor 中克隆分支副本后,它将出现在 “ Shared Projects” 下。

更改项目可见性

如果你希望将现有项目设置为公开项目,请将其可见性设置为公开。在 MetaEditor 中执行 此操作 ,或按照以下说明在 MQL5 Algo Forge 网站上执行此操作:

打开您的存储库页面,然后点击右上角的“设置”。

存储库设置网页

取消选中“将存储库设为私有”选项,然后单击“保存设置”。

更改存储库设置