3.2.2 变量
变量是指程序执行过程中其值可以变化的量。系统为程序中的每个变量分配一个存储单元。变量名实质上就是对计算机内存单元的命名。因此,借助变量名就可以访问内存中的数据了。每个变量都有一个名字,通过名字就可以引用变量。
(1)命名规则
变量是一个名称,支持以汉字、字母、数字、下画线命名,长度控制在31个字符内。
需要注意的是,变量名不能和已存在的公式名称重复,变量名之间不能相互重复,也不能与参数名重复,更不能与函数名重复。
(2)定义变量操作符
定义变量操作符共有4个,分别是:“:”“:=”“^^”“..”。
赋值语句和中间语句会用到“:”和“:=”两个定义变量操作符。
另外两个定义变量操作符“^^”和“..”分别表示以主图附加坐标方式显示指标线和以独立坐标方式显示指标线,如表3.1所示。
表3.1 定义变量操作符
下面通过具体实例进行讲解。
打开赢智程序化交易软件,单击导航栏左侧的“模型”选项卡,然后在空白处右击,在弹出的快捷菜单中选择“新建公式”选项,弹出“My Language(麦语言)趋势跟踪模型编写平台—新建趋势跟踪模型”窗口,然后编写如下代码:
//定义均线并显示 MA5:MA(CLOSE,5); //定义5日均线并显示 MA10:MA(CLOSE,10); //定义10日均线并显示
第一句代码是5日均线的定义,即先定义变量MA5,然后利用“:”为变量赋值,赋值时引用了MA()函数,即均线函数。均线函数的语法及注意事项如下。
MA(Ⅹ,N),求Ⅹ在N个周期内的简单移动平均。
算法:MA(Ⅹ,5)=(Ⅹ1+Ⅹ2+Ⅹ3+Ⅹ4+Ⅹ5)÷5
注意:
(1)N包含当前K线。
(2)简单移动平均线沿用最简单的统计学方式,对过去某特定时间内的价格取其平均值。
(3)当N为有效值,但当前的K线数不足N根时,函数返回空值。
(4)N为零或空值的情况下,函数返回空值。
(5)N可以为变量。
第二句代码的用法与第一句代码的用法几乎一样,是对10日均线进行定义。
代码编写完毕后,单击菜单栏中的“检测”→“语法检测”命令,就可以看到“恭喜您,测试成功”,如图3.1所示。
图3.1 语法检测成功
单击菜单栏中的“文件”→“保存”命令,保存文件为“MYMA1”。
下面加载程序模型文件。首先打开沪铜指数的日K线图,如图3.2所示。
图3.2 沪铜指数的日K线图
选择沪铜指数日K线图中的均线,然后右击,在弹出的快捷菜单中选择“删除指标”命令,就可以删除均线,如图3.3所示。
图3.3 删除均线
下面利用刚才编写的程序模型文件加载5日和10日均线。在导航栏窗口中双击“MYMA1”文件,就会在沪铜指数日K线图中显示5日和10日均线,如图3.4所示。
图3.4 利用程序模型文件显示5日和10日均线
下面修改代码,只显示5日均线。将10日均线变量定义为中间变量且不显示,具体代码如下:
MA5:MA(CLOSE,5); //定义5日均线并显示 MA10:=MA(CLOSE,10); //定义10日均线不显示
修改代码后,按键盘上的“Ctrl+S”组合键保存文件,然后双击“MYMA1”文件,就会在沪铜指数日K线图中只显示5日均线,不再显示10日均线,如图3.5所示。
图3.5 在沪铜指数日K线图中只显示5日均线