EL 保留字和函数 > 保留字
关于保留字[p=30, 2, left]和其他语言一样,在 EasyLanguage 中,字具有含义并能按照某些类型的语法结构组合成语句。标点符号用于表示每个语句的结尾和分隔每个语句中的短语。EasyLanguage 的基本词汇由一系列保留字组成,每个保留字都有一个特定的目的,如比较和求表达式的值,指定显示或交易动作,以及引用值。[/p]价格数据[p=30, 2, left]评估价格数据的功能是 EasyLanguage 最重要的元素之一。因此,EasyLanguage 中存在大量保留字,用来引用每个图条中可用的价格数据。字通常与相同值的常见交易术语匹配,如 Open、High、Low、Close 或 Volume。下表列出了一些最常用的价格数据值:[/p][table][tr][td][p=30, 2, left]数据字[/p][/td][td][p=30, 2, left]缩写[/p][/td][td][p=30, 2, left]描述[/p][/td][/tr]
[tr][td][p=30, 2, left]开盘价[/p][/td][td][p=30, 2, left]O[/p][/td][td][p=30, 2, left]图条的第一个可用价格[/p][/td][/tr]
[tr][td][p=30, 2, left]High[/p][/td][td][p=30, 2, left]H[/p][/td][td][p=30, 2, left]图条内的最高价格[/p][/td][/tr]
[tr][td][p=30, 2, left]Low[/p][/td][td][p=30, 2, left]L[/p][/td][td][p=30, 2, left]图条内的最低价格[/p][/td][/tr]
[tr][td][p=30, 2, left]收盘价[/p][/td][td][p=30, 2, left]C[/p][/td][td][p=30, 2, left]图条的最后可用价格[/p][/td][/tr]
[tr][td][p=30, 2, left]日期[/p][/td][td][p=30, 2, left]D[/p][/td][td][p=30, 2, left]图条内最后一次交易的日期[/p][/td][/tr]
[tr][td][p=30, 2, left]时间[/p][/td][td][p=30, 2, left]T[/p][/td][td][p=30, 2, left]图条内最后一次交易的时间(24 小时格式)[/p][/td][/tr]
[tr][td][p=30, 2, left]Volume[/p][/td][td][p=30, 2, left]V[/p][/td][td][p=30, 2, left]图条内交易的总量[/p][/td][/tr]
[tr][td][p=30, 2, left]未平仓合约[/p][/td][td][p=30, 2, left]I[/p][/td][td][p=30, 2, left](Open Interest) 未平仓合约总数[/p][/td][/tr]
[/table]
[p=30, 2, left]例如,保留字 Close 指的是 EasyLanguage 程序当前正在评估的图条的收盘价格。记住:EasyLanguage 程序应用于图表中从左到右的每一个图条,“当前图条”始终是正在运行用户程序的图条。如果用户程序在日线图的第 7 个图条上运行,保留字 High 包含所绘代码第 7 天交易的最高价格。[/p][p=30, 2, left]因为很少会只根据一个图条的价格信息做出交易决策,在适当的保留字后简单地添加短语“of N bars ago”,EasyLanguage 使获取当前图条之前任意图条的价格数据变得容易。[/p][p=30, 2, left]例如,EasyLanguage 表达式“Low of 1 bar ago”指的是前一个图条(相对于 EasyLanguage 当前正在评估的图条)的最低价格。在类似的例子中,如果 EasyLanguage 程序正在用户图表的第 12 个图条上运行,那么表达式“Volume of 3 bars ago”指绘图代码第 9 个图条或当前图条倒数第 3 个图条的交易量。引用以前图条的数据的另一个方法是在保留字后使用方括号“[N]” – 比如,Open[2] 指的是 2 个图条之前的开盘价格。[/p][p=30, 2, left]为了保持分析包含成百上千个图条的图表时的效率,EasyLanguage 包含一个叫做 MaxBarsBack 的设置,用于确定 EasyLanguage 程序可以引用多少个图条以前的价格数据。[/p][p=30, 2, left]例如,如果用户编写一个使用了 14 个图条移动平均的 EasyLanguage 程序,那么用户程序需要至少 14 个图条的数据来执行计算。将 MaxBarsBack 设为 14,在这种情况下,用户程序会等待直到通过 14 个图条(从左至右)以确保具有足够的数据用于计算当前图条的 14 个图条移动平均。EasyLanguage 会对图表中其他图条执行同样的操作。[/p][p=30, 2, left]规则是 MaxBarsBack 必须大于或等于执行分析所需的最大值。例如,如果用户计算基于 60 天价格数据的指数,那么需要将 MaxBarsBack 设置为 60 或更大。[/p][p=30, 2, left]为了使开发人员和最终用户的工作更容易,大多数 EasyLanguage 分析技术自动计算 MaxBarsBack 值。这可以通过选择“设置[分析技术]”对话框“常规”选项卡中的“分析将参考的最大图条数”标题下的“自动检测”选项来完成。在自动检测模式下,EasyLanguage 评估用户程序中的所有数据引用并自动将最优值设为 MaxBarsBack。更多信息,请在TradeStation 帮助中搜索“最大图条数”短语。[/p]语句[p=30, 2, left]执行比较、执行相关动作以及控制其他程序操作的 EasyLanguage 保留字称作语句。[/p][p=30, 2, left]其中包括 [i]Plot[/i]、[i]If-Then[/i] 结构和变量声明语句等。和英语里一句话表示一个完整的意思一样,一个 EasyLanguage 语句表示一个完整的指令,会产生某些程序操作。[/p][p=30, 2, left]例如,下列语句用于声明一个变量以及有条件地执行两个额外语句,计算并绘制 10 图条收盘价 (Close) 的平均值:[/p][p=30, 2, left]Var: MovAvg(0);
if (CurrentBar > 10) then begin[/p][p=30, 2, left]MovAvg = Average(Close,10);[/p][p=30, 2, left]Plot1(MovAvg);[/p][p=30, 2, left]end;[/p][p=30, 2, left]下面是常用 EasyLanguage 语句的列表。
[/p][table]
[tr][td][p=30, 2, left]语句[/p][/td][td][p=30, 2, left]Action[/p][/td][/tr]
[tr][td][p=30, 2, left]plot1-99[/p][/td][td][p=30, 2, left]在图表或网格上绘制一条线、一个标记或文本。[/p][/td][/tr]
[tr][td][p=30, 2, left]if-then[/p][/td][td][p=30, 2, left]在 [i]if[/i] 条件为真时,执行一个或多个语句[/p][/td][/tr]
[tr][td][p=30, 2, left]else[/p][/td][td][p=30, 2, left]在前一个条件非真时,执行 [i]else[/i] 后的一个或多个语句[/p][/td][/tr]
[tr][td][p=30, 2, left]begin[/p][/td][td][p=30, 2, left]指定有条件执行语句块的开始[/p][/td][/tr]
[tr][td][p=30, 2, left]end[/p][/td][td][p=30, 2, left]指定语句块的结束[/p][/td][/tr]
[tr][td][p=30, 2, left]for-then[/p][/td][td][p=30, 2, left]在循环中使用计数器变量执行一个或多个语句[/p][/td][/tr]
[tr][td][p=30, 2, left]while[/p][/td][td][p=30, 2, left]当一个条件为真时在循环中执行一个或多个语句[/p][/td][/tr]
[tr][td][p=30, 2, left]variable[/p][/td][td][p=30, 2, left]为一个或多个用户定义变量声明一个初始值[/p][/td][/tr]
[tr][td][p=30, 2, left]input[/p][/td][td][p=30, 2, left]声明特定类型的一个或多个输入值以及使用默认值[/p][/td][/tr]
[tr][td][p=30, 2, left]array[/p][/td][td][p=30, 2, left]声明一个或多个数组变量以包含指定数量的具有默认值的单元[/p][/td][/tr]
[tr][td][p=30, 2, left]print[/p][/td][td][p=30, 2, left]发送输出至打印日志[/p][/td][/tr]
[tr][td][p=30, 2, left]commentary[/p][/td][td][p=30, 2, left]发送输出至注释窗口[/p][/td][/tr]
[tr][td][p=30, 2, left]breakpoint[/p][/td][td][p=30, 2, left]暂停 EasyLanguage 的执行并显示调试器[/p][/td][/tr]
[/table]
非执行语句[p=30, 2, left]为了使 EasyLanguage 更接近英语,需要使用另一组叫做非执行语句的保留字。这些可选字,比如 the、at、on 和 from,可以在语句或表达式中使用。[/p][p=30, 2, left]例如,下文:[/p][p=30, 2, left]if Close > High[1] then Buy next bar at market;[/p][p=30, 2, left]也可以用省略子编写以使其更加易读:[/p][p=30, 2, left]if the Close > the High of 1 bar ago then[/p][p=30, 2, left]Buy on the next bar at the market;[/p][p=30, 2, left]请注意:非执行语句使 EasyLanguage 指令易读的同时,在实际程序中不执行任何操作。也就是说,运行程序时会忽略非执行语句。是否使用非执行语句只是个人偏好问题。下面是一个非执行语句列表:
[/p][table]
[tr][td][p=30, 2, left]a[/p][/td][td][p=30, 2, left]by[/p][/td][td][p=30, 2, left]of[/p][/td][td][p=30, 2, left]the[/p][/td][/tr]
[tr][td][p=30, 2, left]an[/p][/td][td][p=30, 2, left]does[/p][/td][td][p=30, 2, left]on[/p][/td][td][p=30, 2, left]was[/p][/td][/tr]
[tr][td][p=30, 2, left]at[/p][/td][td][p=30, 2, left]from[/p][/td][td][p=30, 2, left]place[/p][/td][td]
[/td][/tr]
[tr][td][p=30, 2, left]based[/p][/td][td][p=30, 2, left]is[/p][/td][td][p=30, 2, left]than[/p][/td][td]
[/td][/tr]
[/table]
页:
[1]