量化投资_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/
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。