量化投资_EasyLanguage/PowerLanguage教学课程__【第一篇基础】__【第十五章断言语句和执行控制】

第十五章:断言语句和执行控制

第一节:介绍

   对于执行脚本的执行,若控制它在某种条件下中断对图表数据计算,可以使用断言语句。EL提供两种断言语句。另外,EL的浮点运算一般是含有除法的数学计算,初始一定要指定非零值,再做运算:

if a <> 0 then c = b/a;

  如果分母为零的话,会产生浮点运算的报错。最后EL提供浮点运算的容差值。

第二节:断言语句

  所谓断言语句就是在公式中产生错误,会进行净高作用。

2.1 Abort

# 语法

语法 Abort;

# 示例

Abort;
中断执行脚本,会弹出警示视窗:

# 说明

  产生运算错误并中断公式的执行。不会显示任何信息,表示为:Unknown error

2.2 RaiseRunTimeError

# 语法

语法 RaiseRunTimeError(“Message”)
参数 Message——字符串表达式,用来指定错误信息。

# 示例

产生运算错误,弹出警示讯息”Strategy Stopped”:
RaiseRunTimeError(“Strategy Stopped”);

# 说明

  产生运算错误并显示指定的错误讯息警示。Run-time-error 会中断公式的执行。

第三节:容差值的设定

 3.1 SetFPCompareAccuracy

# 语法

语法 SetFPCompareAccuracy(精确度)

参数
精确度——代表精确度的常数,代表意义如下:

# 示例

设定浮点精确度为高:
SetFPCompareAccuracy(fpcHighAccuracy);
或
SetFPCompareAccuracy(3);

# 说明

  设定浮点运算的精确度。 两个浮点数在(absvalue(Value1-value2)<=容差值)时,可 视为相等。 预设定浮点容差值为 2.2204460492503131e-012。

  fpcExactAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 0.00,fpcExactAccuracy 可以用数值 5 代替。

  fpcHighAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 2.2204460492503131e-14,fpcHighAccuracy 可以用数值 3 代替。

  fpcLowAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 2.2204460492503131e-10,fpcLowAccuracy 可以 用数值 1 代替。

  fpcMedAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 2.2204460492503131e-12,fpcMedAccuracy 可以 用数值 2 代替。

  fpcVeryHighAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 2.2204460492503131e-16,fpcVeryHighAccuracy 可以用数值 4 代替。

  fpcVeryLowAccuracy

    常数,和 SetFPCompareAccuracy 联合使用,指定浮点运算 容差值为 2.2204460492503131e-8,fpcVeryLowAccuracy 可 以用数值 0 代替。

  值得注意的是:如果设定的容差值过高,是不会造成电脑的开销。 

第四节:重启计算函数

4.1 RecalcLastBarAfter

# 语法

语法 RecalcLastBarAfter(时间)
参数 时间——秒数

# 示例

RecalcLastBarAfter(60) 自上次计算后如果超时 1 分钟的话,则启动新的脚本计算。

# 说明

  超过指定时间,则初始化计算。指定时间为秒。

=================================================

之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!

https://www.cnblogs.com/noah0532/

原文地址:https://www.cnblogs.com/noah0532/p/13697486.html