: | : | :期货量化学习 | :期货量化 |
返回列表 发帖

EL 保留字和函数 > 保留字

EL 保留字和函数 > 保留字

关于保留字

和其他语言一样,在 EasyLanguage 中,字具有含义并能按照某些类型的语法结构组合成语句。标点符号用于表示每个语句的结尾和分隔每个语句中的短语。EasyLanguage 的基本词汇由一系列保留字组成,每个保留字都有一个特定的目的,如比较和求表达式的值,指定显示或交易动作,以及引用值。

价格数据

评估价格数据的功能是 EasyLanguage 最重要的元素之一。因此,EasyLanguage 中存在大量保留字,用来引用每个图条中可用的价格数据。字通常与相同值的常见交易术语匹配,如 Open、High、Low、Close 或 Volume。下表列出了一些最常用的价格数据值:

数据字

缩写

描述

开盘价

O

图条的第一个可用价格

High

H

图条内的最高价格

Low

L

图条内的最低价格

收盘价

C

图条的最后可用价格

日期

D

图条内最后一次交易的日期

时间

T

图条内最后一次交易的时间(24 小时格式)

Volume

V

图条内交易的总量

未平仓合约

I

(Open Interest) 未平仓合约总数


例如,保留字 Close 指的是 EasyLanguage 程序当前正在评估的图条的收盘价格。记住:EasyLanguage 程序应用于图表中从左到右的每一个图条,“当前图条”始终是正在运行用户程序的图条。如果用户程序在日线图的第 7 个图条上运行,保留字 High 包含所绘代码第 7 天交易的最高价格。

因为很少会只根据一个图条的价格信息做出交易决策,在适当的保留字后简单地添加短语“of N bars ago”,EasyLanguage 使获取当前图条之前任意图条的价格数据变得容易。

例如,EasyLanguage 表达式“Low of 1 bar ago”指的是前一个图条(相对于 EasyLanguage 当前正在评估的图条)的最低价格。在类似的例子中,如果 EasyLanguage 程序正在用户图表的第 12 个图条上运行,那么表达式“Volume of 3 bars ago”指绘图代码第 9 个图条或当前图条倒数第 3 个图条的交易量。引用以前图条的数据的另一个方法是在保留字后使用方括号“[N]” – 比如,Open[2] 指的是 2 个图条之前的开盘价格。

为了保持分析包含成百上千个图条的图表时的效率,EasyLanguage 包含一个叫做 MaxBarsBack 的设置,用于确定 EasyLanguage 程序可以引用多少个图条以前的价格数据。

例如,如果用户编写一个使用了 14 个图条移动平均的 EasyLanguage 程序,那么用户程序需要至少 14 个图条的数据来执行计算。将 MaxBarsBack 设为 14,在这种情况下,用户程序会等待直到通过 14 个图条(从左至右)以确保具有足够的数据用于计算当前图条的 14 个图条移动平均。EasyLanguage 会对图表中其他图条执行同样的操作。

规则是 MaxBarsBack 必须大于或等于执行分析所需的最大值。例如,如果用户计算基于 60 天价格数据的指数,那么需要将 MaxBarsBack 设置为 60 或更大。

为了使开发人员和最终用户的工作更容易,大多数 EasyLanguage 分析技术自动计算 MaxBarsBack 值。这可以通过选择“设置[分析技术]”对话框“常规”选项卡中的“分析将参考的最大图条数”标题下的“自动检测”选项来完成。在自动检测模式下,EasyLanguage 评估用户程序中的所有数据引用并自动将最优值设为 MaxBarsBack。更多信息,请在TradeStation 帮助中搜索“最大图条数”短语。

语句

执行比较、执行相关动作以及控制其他程序操作的 EasyLanguage 保留字称作语句。

其中包括 PlotIf-Then 结构和变量声明语句等。和英语里一句话表示一个完整的意思一样,一个 EasyLanguage 语句表示一个完整的指令,会产生某些程序操作。

例如,下列语句用于声明一个变量以及有条件地执行两个额外语句,计算并绘制 10 图条收盘价 (Close) 的平均值:

Var: MovAvg(0);
if (CurrentBar > 10) then begin

MovAvg = Average(Close,10);

Plot1(MovAvg);

end;

下面是常用 EasyLanguage 语句的列表。

语句

Action

plot1-99

在图表或网格上绘制一条线、一个标记或文本。

if-then

if 条件为真时,执行一个或多个语句

else

在前一个条件非真时,执行 else 后的一个或多个语句

begin

指定有条件执行语句块的开始

end

指定语句块的结束

for-then

在循环中使用计数器变量执行一个或多个语句

while

当一个条件为真时在循环中执行一个或多个语句

variable

为一个或多个用户定义变量声明一个初始值

input

声明特定类型的一个或多个输入值以及使用默认值

array

声明一个或多个数组变量以包含指定数量的具有默认值的单元

print

发送输出至打印日志

commentary

发送输出至注释窗口

breakpoint

暂停 EasyLanguage 的执行并显示调试器


非执行语句

为了使 EasyLanguage 更接近英语,需要使用另一组叫做非执行语句的保留字。这些可选字,比如 the、at、on 和 from,可以在语句或表达式中使用。

例如,下文:

if Close > High[1] then Buy next bar at market;

也可以用省略子编写以使其更加易读:

if the Close > the High of 1 bar ago then

Buy on the next bar at the market;

请注意:非执行语句使 EasyLanguage 指令易读的同时,在实际程序中不执行任何操作。也就是说,运行程序时会忽略非执行语句。是否使用非执行语句只是个人偏好问题。下面是一个非执行语句列表:

a

by

of

the

an

does

on

was

at

from

place


based

is

than



论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表