mql4-lib 开源项目使用教程
1. 项目的目录结构及介绍
mql4-lib
是一个为 MQL4/5 开发者提供的基金会库,旨在使 MQL 编程更加愉快,采用更面向对象的方法和类似于 Java 的编码风格。以下是项目的目录结构及其介绍:
mql4-lib/
├── Lang/
│ ├── Script.mqh
│ ├── ExpertAdvisor.mqh
│ ├── Indicator.mqh
│ └── ...
├── Collection/
│ ├── Array.mqh
│ ├── List.mqh
│ └── ...
├── Format/
│ ├── Json.mqh
│ ├── Xml.mqh
│ └── ...
├── Charts/
│ ├── Chart.mqh
│ ├── ChartTools.mqh
│ └── ...
├── Trade/
│ ├── Order.mqh
│ ├── TradeManager.mqh
│ └── ...
├── History/
│ ├── HistoryData.mqh
│ ├── TimeSeriesData.mqh
│ └── ...
├── Utils/
│ ├── FileUtils.mqh
│ ├── MathUtils.mqh
│ └── ...
├── UI/
│ ├── ChartObjects.mqh
│ ├── UIControls.mqh
│ └── ...
├── OpenCL/
│ ├── OpenCL.mqh
│ ├── OpenCLKernel.mqh
│ └── ...
├── gitignore
├── LICENSE
└── README.md
目录介绍
- Lang: 包含增强 MQL 语言的模块,如脚本、专家顾问和指标的基础类。
- Collection: 包含有用的集合类型,如数组和列表。
- Format: 包含序列化格式的实现,如 JSON 和 XML。
- Charts: 包含多种图表类型和常用图表工具。
- Trade: 包含交易相关的抽象类,如订单和交易管理器。
- History: 包含历史数据相关的抽象类,如时间序列数据。
- Utils: 包含各种实用工具,如文件操作和数学工具。
- UI: 包含图表对象和 UI 控件(正在进行中)。
- OpenCL: 将 OpenCL 支持引入 MT4(正在进行中)。
2. 项目的启动文件介绍
mql4-lib
项目的启动文件通常是 Script.mqh
、ExpertAdvisor.mqh
和 Indicator.mqh
,这些文件位于 Lang
目录下。这些文件定义了脚本、专家顾问和指标的基础类,开发者可以继承这些类来创建自己的程序。
示例:启动文件 Script.mqh
#include <Mql/Lang/Script.mqh>
class MyScript: public Script {
public:
// OnStart 现在是 main
void main() {
Print("Hello");
}
};
// 声明它:注意第二个参数表示脚本没有输入
DECLARE_SCRIPT(MyScript, false)
3. 项目的配置文件介绍
mql4-lib
项目没有传统的配置文件,但可以通过继承 AppParam
类来定义程序的参数。这些参数可以在程序启动时进行配置。
示例:配置文件 MyEaParam.mqh
#include <Mql/Lang/ExpertAdvisor.mqh>
class MyEaParam: public AppParam {
ObjectAttr(string, eaName, EaName)
ObjectAttr(double, baseLot, BaseLot)
public:
// 可选地覆盖 `check` 方法来验证参数
bool check(void) {
return true;
}
};
通过这种方式,开发者可以在程序中定义和使用自定义参数,从而实现配置的功能。