龙听期货论坛's Archiver

C
+
+


 微信: QQ:

龙听 发表于 2020-3-23 10:40

MQL4变量

[color=#323e32][font=&quot][size=14px][color=#FF0000][size=20px]一、内建变量:[/size][/color][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Ask - 当前交易品种的最新卖价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Bid - 当前交易品种的最新买价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Bars - 当前主图中价格柱的总数;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Point - 报价小数部分的值;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Digits - 报价小数部分的位数。[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][color=#FF0000][size=20px]二、内建时序数组变量:[/size][/color][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Time - 当前主图中每个价格柱的开盘时间;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Open - 当前主图中每个价格柱的开盘价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Close - 当前主图中每个价格柱的收盘价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]High - 当前主图中每个价格柱的最高价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Low - 当前主图中每个价格柱的最低价;[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][size=20px]Volume - 当前主图中每个价格柱对应的成交量。[/size][/size][/font][/color]
[color=#323e32][font=&quot][size=14px][color=#FF0000][size=20px]三、内建变量的特点:[/size][/color]
[size=20px]1.内建变量的名字,不能再用于普通变量,不能给内建变量赋值。[/size]
[size=20px]2.内建变量的值,由MT4系统自动更新的,更新发生在特别函数开始执行时。[/size]
[size=20px]3.MT4分别为每个启动的程序创建一组内建变量的副本,由该程序使用。[/size]
[size=20px]4.内建变量在特别函数运行期间被保存,并由函数RefreshRates()更新。[/size]
[size=20px]5.[/size][size=20px]内建函数RefreshRates()强制更新市场信息。[/size]
[size=20px]  a.若有新报价到来,RefreshRates()返回TRUE,内建变量被更新。[/size]
[size=20px]  b.若无新报价到来,RefreshRates()返回FALSE,内建变量不更新。[/size]
[size=20px]  c.RefreshRates()仅影响正在运行的程序,而非系统中的全部程序。[/size]
[color=#FF0000][size=20px]四、变量类型:[/size][/color]
[size=20px]1.局部变量是在函数内说明的,作用域是该函数体。[/size]
[size=20px]2.局部变量可以被与其相对应类型的常量或者表达式初始化。[/size]
[size=20px]3.全局变量是在全部函数体外说明的,作用域是整个程序。[/size]
[size=20px]4.全局变量只能被与其相对应类型的常量初始化。[/size]
[size=20px]5.[/size][size=20px]全局变量初始化[/size][size=20px]只能在程序头部,在特别函数运行之前。[/size]
[color=#FF0000][size=20px]五、静态变量:[/size][/color]
[size=20px]1.静态变量是在函数内说明的,作用域是该函数体。[/size]
[size=20px]2.[/size][size=20px]静态变量[/size][size=20px]可以被与其相对应的常量初始化,并且是一次性的。[/size]
[size=20px]3.静态变量如果没有明确初始化,则初始值默认为零。[/size]
[size=20px]4.离开函数后,静态变量的值保持不变。[/size]
[size=20px]5.数组都是静态类型的,不必声明。[/size]
[color=#FF0000][size=20px]六、外部变量:[/size][/color]
[size=20px]1.外部变量的值,可从程序属性窗口读取。[/size]
[size=20px]2.外部变量是全局变量,在程序头部、各函数体外说明,作用域是整个程序。[/size]
[color=#FF0000][size=20px]七、终端变量:[/size][/color][size=20px]    [/size]
[size=20px]1.全局变量的作用域是其所在的程序,终端变量的作用域则是终端中所有启动的程序。[/size]
[size=20px]2.终端变量可在任一程序中创建或删除。[/size]
[size=20px]3.终端变量在终端关闭后,保存在硬盘。终端变量被调用后,可在终端生存4个星期。在此期间若不被调用,终端便将其删除。[/size]
[size=20px]4.终端变量只能为双精度double类型。[/size]
[size=20px]   [u]a. datetime GlobalVariableSet( string name, double value)[/u]  [/size]
[size=20px]  若变量不存在,创建一个新的。成功后,返回创建时间;否则,返回0。若要了解出错信息,调用函数GetLastError() 。[/size]
[size=20px]   [u]b. double GlobalVariableGet( string name)[/u]  [/size]
[size=20px]   返回终端变量的值;若出错,返回0。若要了解出错信息,调用函数 GetLastError() 。[/size]
[size=20px]   [u]c. bool GlobalVariableDel( string name)[/u]  [/size]
[size=20px]   删除变量。成功后,返回TRUE;否则,返回FALSE。若要了解出错信息,调用函数 GetLastError() 。[/size]
[color=#FF0000][size=20px]八、数组:[/size][/color][size=20px]  [/size]
[size=20px]1.首个成员的位置为0,末尾成员的位置为“数组长度 - 1 ”。[/size]
[size=20px]2.数组声明为全局数组或者局部数组,但是不可以声明为终端数组。[/size]
[size=20px][img]https://c.mql4.com/book/2008/04/arr_3.png[/img][/size]
[size=20px]3.数组初始化可以初始化一个数组只有一个相应类型的常量。 一维的一维序列和多维数组初始化常数之间用逗号分隔。 包含在花括号序列:[/size]
int Mas_i[3][4] = { 0, 1, 2, 3,     10, 11, 12, 13,     20, 21, 22, 23 };
double Mas_d[2][3] = { 0.1, 0.2, -0.3,      -10.2, 1.5, 7.0 };
bool Mas_b[5] = { false, true, false, true, true }
[size=20px]初始化序列中一个或多个常量可以省略。 在这种情况下相应的数字数组元素类型由零初始化[/size][size=20px],[/size][size=20px]相应的的[/size][size=20px]字符串[/size][size=20px]数组元素[/size][size=20px]类型由“”([/size][size=20px]无空格[/size][size=20px])[/size][size=20px]初始化。[/size]
[size=20px]4.[/size][size=20px]数组元素索引是一个或多个整数的值表示的形式一个常数,变量或表达式在方括号枚举逗号分隔。 数组元素索引独特定义数组中的一个元素的地方。[/size]
[img]https://c.mql4.com/book/2008/04/arr_1.png[/img]
[size=20px]每个索引时指定索引的方式在方括号也是可以接受的:[/size]
[img]https://c.mql4.com/book/2008/04/arr_2.png[/img]

[size=20px]5.时序数组有预设的名称:Open, Close, High, Low,Volume,Time 等。它们的值,表示K线图中价格柱的数据信息。[/size]
[size=20px]6.时序数组都是一维结构,包含价格柱特征的历史数据。[/size][size=20px]每个价格柱的特征包括:开盘价Open[],收盘价Close[],最高价High[],最低价Low[],成交量Volume[],和开盘时间Time[]。[/size]
[size=20px]7.零柱是K线图中最右边的柱。对于价格柱及相应的时序数组索引进行运算,起点是零柱,索引为[0]。[/size]
[size=20px]8.零柱的值Close[0], High[0], Low[0], Volume[0]等随时间进程而改变,其他价格柱的值不变。[/size]


[/size][/font][/color]

页: [1]