編譯通過,執行卻說要檢查腳本內的算式,請問該如何解決?

  •   265 
  • 最後發表   生明  2018 二月 05
生明 發文於   2018/02/01

編譯通過,執行卻說要檢查腳本內的算式

急問!

編譯通過,執行卻說要檢查腳本內的算式,請問該如何解決?

看策略雷達的執行紀錄,猜也猜不出到體是哪裡出錯..

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/02/01

Hi 生明,

這部分要請您檢查一下XS程式碼,猜想可能有分母計算為0的問題,

或者請您提供完整程式碼,以利小編查看問題的原因,謝謝。

生明 發文於   2018/02/01

感謝您的回覆,

我逐步檢查程式發現是策略雷達當天盤中執行時

呼叫  GetField("主力買賣超張數");

就會出現 計算停止,因為計算發生錯誤,請檢查腳本內的算式.

我改用下面的程式碼避掉這個問題,

不過,在當天盤中執行 GetField("主力買賣超張數"); 不是"應該不會有錯誤的情況"發生嗎?

// 原來的程式 
leaderDay=GetField("主力買賣超張數"); //修改後 if(islastbar) then begin leaderDay=GetField("主力買賣超張數")[1]; end else begin leaderDay=GetField("主力買賣超張數"); end;

 

 

XQ小幫手 發文於   2018/02/01

Hi 生明,

待小編明日盤中測試後,再向您說明,謝謝。

XQ小幫手 發文於   2018/02/02

您好,方才小幫手在盤中測試過了,

會出現這個問題是因為主力的資料是要盤後才會公布,所以盤中跑會有誤,故使用下方範例程式碼避免之,謝謝。

if GetFieldDate("主力買賣超張數") = Date then

Value1 = getfield("主力買賣超張數")

else

Value1 = getfield("主力買賣超張數")[1];

ret = 1;

以上說明,謝謝。

生明 發文於   2018/02/02

 感謝您的回覆.

請問策略雷達可以在執行遇到類似這種狀況時能提示更明確的錯誤訊息嗎?

例如在盤中執行 getfield("主力買賣超張數"),可提示"主力的資料是要盤後才會公布,....."

 

而不是目前的 "請檢查腳本內的算式" 這種不能夠一看就知道錯在哪裡的訊息,

這樣子可以大幅縮短除錯的的時間,也可以減少客服的負擔.

XQ小幫手 發文於   2018/02/05

Hi 生明,

謝謝您的建議,我們會繼續努力!

P.S. 函數搜尋說明網頁,與插入欄位對話視窗(Dlg) 皆有說明那些資料欄位,盤後更新時間為何,可以先以此為依據,如下圖,謝謝。

發表回覆
Close