GetSymbolField("OTC.TW","開盤價","D") 1401資料不足的bug

  •   249 
  • 最後發表   GaryChiang  2022 二月 11
GaryChiang 發文於   2022/02/07

在交易程式中, 用到 GetSymbolField("OTC.TW","開盤價","D") 的資料, 在分K逐筆洗價時, 發現.....

若第一個T在9:00:05之前, 因為 OTC 的開盤價還沒出來, 會出現 1401 的錯誤!

若第一個T在9:00:05之後, 就可以正常執行! 

這真是個坑啊~~~~

我目前只好先加個 currenttime>90005 來避免這個問題!

貴公司是否可以幫解決這個問題....

 

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

Hello GaryChiang,

 

小幫手會找時間測試這問題,不過看走勢圖上 OTC.TW 09:00:00 時是有資料的。(參考附圖)

小幫手能想到的解決辦法是用 GetSymbolFieldDate 來判斷當日的資料是否已更新。

舉例來說:

if GetSymbolFieldDate("OTC.TW","開盤價","D") <> date then value1 = GetSymbolField("OTC.TW","Close","D")[1] 

    else value1 =  GetSymbolField("OTC.TW","開盤價","D");

這樣就會在當日開盤價還未更新的時候使用前一日收盤價。

附加文件

GaryChiang 發文於   2022/02/09

謝謝小幫手的回答! 

前天我把時間往後延了5秒, 但竟然大部份的產品都出現了1401的問題!

昨天往後延了10秒, 今天就完全沒遇到了! 

說實在, 我也不懂為什麼?

在程式裏今天的資料我只用到

OpenD(0),

close, 

GetSymbolInfo("買賣現沖"), 

getfield("開盤價", "D"), 

getfield("參考價", "D")

這幾個!

在第一個T時, 應該資料也出來了吧? 除了 OTC 的那資料外, 還有其它的可能嗎?

XQ小幫手 發文於   2022/02/11

Hello GaryChiang,

 

小幫手之前簡單測試了 GetSymbolField("OTC.TW","開盤價","D") 欄位在股票和期貨上不會有問題。(參考附圖)

您上面提到欄位在當天第一次執行時應該都已經有資訊了,小幫手之後會再測試看看。

如果可以的話,麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本 以及 XQ Log 來檢驗問題原因。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且務必附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

發表回覆
Close