策略在運行時,條件、事件控件偶爾會出現異常,導致請求失敗,或者獲取數據異常。本文將介紹,策略對於這些異常的處理邏輯,便於您根據不同的場景選擇不同的處理方式。
在此之前,建議您先了解一下正常情況下的運行框架《量化策略的運行框架介紹》。
開始控件會在整個策略啟動時運行一次。如果開始控件中,全局變量賦值失敗(例如:a = 1/0,0 不能做分母)或者訂閱行情失敗,會導致整個策略初始化失敗,無法啟動。
在實盤和回測的參數設置界面,可以自行選擇如下3種異常處理邏輯:
在這個選項下,事件控件和條件控件的處理邏輯略有不同。
事件控件:在運行到 路徑2 的【平倉止盈】事件控件時,若遇到異常,會跳過此控件,從【初始化每層開倉價】控件繼續向後運行。
條件控件:在運行到 路徑2的【是否滿足止盈條件】條件控件時,若遇到異常,由於此條件無法判斷,策略會跳過此控件,並從下一條路徑(路徑3)的第一個控件繼續向後運行。
在運行到 路徑2的【是否滿足止盈條件】控件時,若遇到異常,會跳過此控件,並從下一條路徑(路徑3)的第一個控件繼續向後運行。
在運行到 路徑2的【是否滿足止盈條件】控件時,若遇到異常,會跳過此控件以及本輪未執行到的全部控件。待下一輪觸發信號出現時,策略會從路徑1的第一個控件開始運行。
賦值運算控件
運行到【賦值運算】控件時,若因異常導致賦值失敗,全局變量將保持為本次賦值前的數值,而不是被清空(例如:a = K 線最高價,請求失敗,a 將保持前值)。