Appearance
语句、代码块和函数
在向导生成的脚本中,OnStart
函数结构如下:
c++
void OnStart()
{
}
这是我们在MQL5编程中接触的第一个核心概念。这里涉及几个需要解释的新概念和符号序列。
程序运行阶段
一个典型程序运行时通常包含以下阶段:
- 定义变量 - 在内存中创建命名存储单元
- 组织数据输入
- 数据处理 - 应用算法
- 组织结果输出
不过这些阶段并非语法强制的。例如计算2*2
的程序可能不需要输入数据和变量,但这类程序缺乏实际功能。
函数的作用
程序语句可以通过函数进行组织管理。函数具有以下特点:
- 是包含语句的命名代码块
- 可通过名称调用执行
- 支持代码复用和模块化设计
OnStart函数的特殊性
OnStart
函数在脚本中有特殊地位:
- 是脚本的入口函数(类似C语言的main函数)
- 当用户通过右键菜单或拖放方式启动脚本时,终端会自动调用
- 必须存在于所有脚本中,否则编译会报错
函数语法解析
以当前空函数为例:
c++
void OnStart()
{
}
关键组成部分
返回类型
void
- 表示不返回任何值
- 其他类型如
int
,double
需要对应返回值
函数名
OnStart
- 系统保留名称
- 区分大小写
参数列表
()
- 当前为空表示不需要参数
- 参数用于接收外部输入值
函数体
{}
- 包含实际执行语句
- 当前空大括号表示空实现
编译与执行
编译结果
- 生成
Hello.ex5
文件于Scripts/MQL5Book/p1
目录 - 可在终端导航器中查看
- 生成
运行表现
- 终端日志显示:
Scripts script Hello (EURUSD,H1) loaded successfully Scripts script Hello (EURUSD,H1) removed
- 加载后立即退出,因没有实际功能
扩展说明
概念 | 说明 |
---|---|
代码块 | 用{} 包裹的语句集合 |
保留字 | void 等编译器专用关键词 |
函数参数 | 后续章节详细介绍参数传递机制 |
EX5文件 | MQL5编译后的可执行格式 |
注意:虽然空函数可以编译通过,但实际开发中需要在大括号
{}
内添加功能代码来实现具体交易逻辑。后续章节将逐步介绍如何添加有效语句。