默认的指标程序(指标编程教程第三篇:MQL5 文件结构)

提示

这是 2011 年写的一个系列教程。

新建自定义指标后,会看到如下代码,约 40 行。

第一行的双斜线 //,就是 MQL5 里用来标识注释用的,其后一整行的内容都不会被编译,不会影响程序,可写一些说明和必要信息。像 +--------------+ 就是为了画出方格好看,无实际意义。单行注释用 //,多行注释以 /* 开始,以 */ 结束。比如:

要注意的是多行注释不能嵌套,下面的注释是合法的:

下面的注释是不合法的:

第二种里的注释会到“释 2”后面的 */ 结束注释。多行注释中只能嵌入双斜线的单行注释。

前面方框中一些简单信息后开始声明特殊参数,用 #property 标识,包含一些程序属性:copyright(版权)、link(链接)、version(版本),最后一个 indicator_chart_window 表示指标是显示在 K 线图上的,如果指标是独立窗口的话,这里会变成 indicator_separate_window

再往下就是:

int OnInit() 是初始化函数,程序一上来就运行它后面大括号之内的部分,int 表示这个函数的返回值是整数值型的,每个函数执行完都要返回一个值,可以是数值(如 3)、字符串(如 "abc")、布尔值(如 true)等等。这个函数目前不执行什么,只返回一个 0,在最后一句:return(0);

函数名前面声明函数类型,后面一个小括号,放参数,一个大括号,放执行语句。参数如同函数一样,也需要声明类型。

看后一个函数,int OnCalculate(... 表示这个函数是数值型的,括号里的 const 先不用管,它表示后面给的这些参数你是不可以改变其值的,程序自动赋值。

后面的:

再往后大括号里只有一句 return(rates_total); 会执行,也就是返回 K 线总数。

回顾一下程序的主要结构,最上面是一块注释,写一些基本信息,往下是声明一些特殊参数,目前是根据选项自动生成的,然后是函数,一个初始化函数 OnInit(),一个自定义的迭代函数 OnCalculate()OnInit() 是程序一开始运行执行一次的,OnCalculate() 可以理解为每一次价格变化就执行的,如果我们需要把某一功能或流程写成一个函数方便重复调用,只要是写在特殊参数后面就可以。

  • 898
回复内容较长可以拖右下角↑
回到
顶部