如何檢查 GetSymbolField 商品不存在?

  •   182 
  • 最後發表   JoJo Boy  2022 十月 12
JoJo Boy 發文於   2022/10/11

Hi 小幫手你好,

在使用 GetSymbolField("5522.tw", "close"); 

若輸入一個不存在的股票,程式會因為「商品不存在」的錯誤而導致中斷執行。

想請問一下,有沒有辦法在回測時檢查某個商品是否存在?因為腳本中想要用 GetSymbolField 去抓很多不同的商品來一起分析,但是回測的過程中,可能某股票那時候還未上市,就會出現這種問題,請問該如何解決呢?謝謝

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/10/12

 Hello JoJo Boy,

 

就小幫手所知,目前沒有函數可以檢查資料是否存在。

不果您可以在選股裡面使用 GetFieldStartOffset 來判斷欄位資料有多長。

並以此做參考來撰寫在策略上。

JoJo Boy 發文於   2022/10/12

謝謝小幫手的回答,

看起來 GetFieldStartOffset 並不支援跨商品的功能,所以無法滿足我的需求。

想請小幫手幫忙建議一下工程師,能否讓 GetSymbolField 在找不到商品時,能回傳 -1 或是 false 的值,這樣子就能讓我們的腳本程式回測時,不會因為出現「商品不存在」的錯誤而導致中斷執行。

我們就可以在腳本裡利用 -1 或是 false 來判斷是不是商品不存在了,讓回測可以正常跑完,謝謝。

XQ小幫手 發文於   2022/10/12

Hello JoJo Boy,

 

和 getfield 相同,也有 GetSymbolFieldStartOffset 可以使用。

但如同小幫手所說,此函數只能用在選股腳本上,而選股基本上就會執行在全部商品上。 (預設是普通股全部)

所以用 GetFieldStartOffset 一次執行在全部商品上看有多長的歷史資料會比腳本中一個個寫快。

您可以在 XSHelp 上查詢函數與欄位相關的功能和說明。

 

小幫手會將您的意見轉告相關人員作參考。

發表回覆
Close