量化投資_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.1SetFPCompareAccuracy
# 語法:
語法 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/