---
title: "创建并操控项目 - 项目和 MQL5 存储 - MetaEditor 帮助"
description: "MetaEditor 为处理大型项目提供了便利的功能，允许用户将文件组合到一个单一的结构中，并通过在线 MQL5 存储 管理项目设置，进行团队开发和版本控制。 项目是一个带有 MQPROJ... - 创建并操控项目 - 项目和 MQL5 存储 - MetaEditor 帮助"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/zh/metaeditor/help/mql5storage/projects"
---

[MetaEditor 帮助](https://www.metatrader5.com/zh/metaeditor/help) → [项目和 MQL5 存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage) → 创建并操控项目

# 创建并操控项目

MetaEditor 为处理大型项目提供了便利的功能，允许用户将文件组合到一个单一的结构中，并通过在线 [MQL5 存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage) 管理项目设置，进行团队开发和版本控制。

## 什么是项目？

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

![项目结构和设置](https://www.metatrader5.com/i/help/metaeditor/en/project.png)

## 创建一个项目 [#](#create)

创建新项目与创建正常的 MQL5 程序一样简单。 点击新建项目并在 [MQL5 向导](https://www.metatrader5.com/zh/metaeditor/help/mql5_wizard) 里选择期望的程序类型:

![创建一个新项目](https://www.metatrader5.com/i/help/metaeditor/en/project_new.png)

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

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

## 基于 MQ5 文件创建项目 [#](#create_source)

如果您已经以 MQ5 文件的形式进行了开发，则可以轻松将它们转换为项目。 选择一个文件并点击![从源文件新建项目](https://www.metatrader5.com/i/help/metaeditor/en/project_from_source_icon.png)位于文件关联菜单里的从源文件新建项目:

![基于源文件创建一个新项目](https://www.metatrader5.com/i/help/metaeditor/en/project_from_source.png)

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

## 项目属性 [#](#properties)

主项目设置可以从单独的对话框访问，而不用编辑源代码，因为它通常在单独的 MQ5 文件中完成。 点击打开项目设置![项目属性](https://www.metatrader5.com/i/help/metaeditor/en/project_properties_icon.png)项目关联菜单中的属性。 以下项目设置可用:

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

- 当在虚拟模式下测试时
- 如果指标包含这些函数EventChartCustom、OnChartEvent、OnTimer
- 如果指标是使用低于1916版本号的编译器进行创建

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

## 自项目中添加和删除文件 [#](#add_delete_files)

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

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

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

![自项目中添加和删除文件](https://www.metatrader5.com/i/help/metaeditor/en/project_add_delete_files.png)

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

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

## 编译一个项目 [#](#compile)

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

## 共享项目 [#](#shared)

MetaEditor 允许程序员在团队中远程开发 MQL5 应用程序。 [MQL5 存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage) 在线存储库已集成在编辑器中:

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

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

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

![创建一个共享项目](https://www.metatrader5.com/i/help/metaeditor/en/project_new.png)

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

一个已创建的项目会立即添加到 MQL5 存储中。 项目中使用的 [标准库](https://www.mql5.com/zh/docs/standardlibrary) 文件不会添加到存储中，您可以手动添加它们。

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

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

![为共享项目配置访问权限](https://www.metatrader5.com/i/help/metaeditor/en/project_settings.png)

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

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

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

## 公开项目 [#](#public)

在 MQL5 存储上的每一个 [共享项目](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/projects#shared) 均有公开设置: 项目可以是私人的或对其他用户开放。 您可以加入在单独的 "公开项目" 选项卡中显示的所有项目。

![公开项目](https://www.metatrader5.com/i/help/metaeditor/en/project_public.png)

点击加入以便加入一个项目。 之后，该项目将显示在 "共享项目" 部分。 然后点击![从存储更新](https://www.metatrader5.com/i/help/metaeditor/en/mql5storage_update_icon.png)在项目关联菜单中执行从存储更新以便将其下载到您的计算机。

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

![查看项目属性](https://www.metatrader5.com/i/help/metaeditor/en/project_settings_view.png)

## In this section

- [启用存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/mql5storage_connect)
- 创建并操控项目
- [操控存储](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/mql5storage_working)
- [查看项目历史](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/mql5storage_diff)
- [合并修改](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/mql5storage_merging)
- [外部 Subversion 客户端](https://www.metatrader5.com/zh/metaeditor/help/mql5storage/mql5storage_svn_client)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/zh/metaeditor/help", "name": "MetaEditor 帮助"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/zh/metaeditor/help/mql5storage", "name": "项目和 MQL5 存储"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/zh/metaeditor/help/mql5storage/projects", "name": "创建并操控项目"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: 创建并操控项目", "acceptedAnswer": { "@type": "Answer", "text": "MetaEditor 为处理大型项目提供了便利的功能，允许用户将文件组合到一个单一的结构中，并通过在线 MQL5 存储 管理项目设置，进行团队开发和版本控制。 项目是一个带有 MQPROJ 扩展的独立文件，它保存程序设置，编译参数以及有关项目中使用的所有文件的信息..." } }] }
```
