"RaiseRunTimeError"只能中斷單一個股,無法停止程式繼續交易。
請問有沒有指令或方法可以關閉或不執行自動交易策略的方法?
- 451
- 最後發表 Johnny0495 2022 九月 27
Hello Johnny0495,
只要所有同策略中所有個股都執行到 RaiseRunTimeError,那麼全部的商品就都會中斷。
舉例來說:
if currenttime >= 123000 then RaiseRunTimeError("超過12點半");
這樣的話所有的商品在12點半以後運算的話都會被中斷。
另外,您也可以在自動交易設定排程,這樣就會在時間到後開啟/關閉交易策略。
您這是以時間為條件的中斷,是否有符合condition條件時或損益時,可以中斷程式停止交易?
試過了只會停止該個股交易但並不會停止其他個股交易。
先前回覆"只要所有同策略中所有個股都執行到 RaiseRunTimeError,那麼全部的商品就都會中斷。"===>條件觸發時仍會交易,被中斷的只有該個股。
Hello Johnny0495,
先前回覆"只要所有同策略中所有個股都執行到 RaiseRunTimeError,那麼全部的商品就都會中斷。"===>條件觸發時仍會交易,被中斷的只有該個股。
==>前提是有執行到。
如果您的寫法是 if condition1 then RaiseRunTimeError("條件1符合,中斷執行");
那麼condition1沒有符合的話,RaiseRunTimeError自然不會執行。
另外,A商品符合條件,不代表B商品符合條件。
所以A觸發被 RaiseRunTimeError 中止,但B還會繼續執行。
如果要全部商品都被中止的話,那麼就需要全部的商品都符合條件。
一種就是像上面小幫手舉例,用時間來當作條件。
另外也可以考慮使用 GetSymbolField 來抓取相同商品資料當作條件。(ex. 用大盤價格當作條件)
需注意目前XS腳本運作的邏輯是有洗價腳本才會運算,所以可能會發生因為該商品都沒有交易洗價,腳本沒運算所以導致沒被中止的狀況。
5 評論