Hi 小幫手你好,
在使用 GetSymbolField("5522.tw", "close");
若輸入一個不存在的股票,程式會因為「商品不存在」的錯誤而導致中斷執行。
想請問一下,有沒有辦法在回測時檢查某個商品是否存在?因為腳本中想要用 GetSymbolField 去抓很多不同的商品來一起分析,但是回測的過程中,可能某股票那時候還未上市,就會出現這種問題,請問該如何解決呢?謝謝
Hi 小幫手你好,
在使用 GetSymbolField("5522.tw", "close");
若輸入一個不存在的股票,程式會因為「商品不存在」的錯誤而導致中斷執行。
想請問一下,有沒有辦法在回測時檢查某個商品是否存在?因為腳本中想要用 GetSymbolField 去抓很多不同的商品來一起分析,但是回測的過程中,可能某股票那時候還未上市,就會出現這種問題,請問該如何解決呢?謝謝
Hello JoJo Boy,
就小幫手所知,目前沒有函數可以檢查資料是否存在。
不果您可以在選股裡面使用 GetFieldStartOffset 來判斷欄位資料有多長。
並以此做參考來撰寫在策略上。
謝謝小幫手的回答,
看起來 GetFieldStartOffset 並不支援跨商品的功能,所以無法滿足我的需求。
想請小幫手幫忙建議一下工程師,能否讓 GetSymbolField 在找不到商品時,能回傳 -1 或是 false 的值,這樣子就能讓我們的腳本程式回測時,不會因為出現「商品不存在」的錯誤而導致中斷執行。
我們就可以在腳本裡利用 -1 或是 false 來判斷是不是商品不存在了,讓回測可以正常跑完,謝謝。
Hello JoJo Boy,
和 getfield 相同,也有 GetSymbolFieldStartOffset 可以使用。
但如同小幫手所說,此函數只能用在選股腳本上,而選股基本上就會執行在全部商品上。 (預設是普通股全部)
所以用 GetFieldStartOffset 一次執行在全部商品上看有多長的歷史資料會比腳本中一個個寫快。
您可以在 XSHelp 上查詢函數與欄位相關的功能和說明。
小幫手會將您的意見轉告相關人員作參考。
3 評論