策略雷達 啟動後只觸發一次

  •   365 
  • 最後發表   bowen  2025 一月 23
bowen 發文於   2025/01/21

想請問觸發完後是否就停止計算? 如果沒有,是否有方法能達成?

if  .....  then being

      ret = 1;

      raiseRunTimeError("已觸發");

end;

試過無法達成,在觸發前標的就已經錯誤。

-------------------------------------------------------------------------------

if date <> date[1] then condition1 = false;

if condition1 = true then return;

if  .....  then being

      ret = 1;

      condition1 = true;

end;

如果觸發完後還是在計算,好像只能一直讓他return來減少計算?

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/01/21

試試看這樣是否可以:

var: intrabarpersist finishsession(false);

if date <> date[1] then  finishSession = false;

if finishsession = true then raiseruntimeerror("結束交易");

if  .....  then begin

      ret = 1;

      finishsession = true;

end;

  • 按讚來自於
  • Bowen16
bowen 發文於   2025/01/21

感謝教授,可行,所以觸發完後,已觸發的標的其實還在做計算?

虎科大許教授 發文於   2025/01/21

已觸發的商品不會再被監控。

  • 按讚來自於
  • Bowen16
bowen 發文於   2025/01/21

如果沒有raiseruntimeerror("結束交易");  已觸發的標的其實還在做計算?

虎科大許教授 發文於   2025/01/21

是的。

  • 按讚來自於
  • Bowen16
XS小編 發文於   2025/01/23

Hello bowen,

 

小編補充,在資料讀取筆數運算時發生條件符合的話,那麼 if ... 裡面的程式就會被執行到 (然後中斷)。

建議可以使用 GetInfo("IsRealTime") 來判斷是否進到即時洗價,在即時洗價的狀態下條件符合才觸發跟讓腳本中斷。

  • 按讚來自於
  • Bowen16
發表回覆
Close