1. 程式人生 > 實用技巧 >量化投資_EasyLanguage/PowerLanguage教學課程__【第一篇基礎】__【第十五章斷言語句和執行控制】

量化投資_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/