在交易程式中, 用到 GetSymbolField("OTC.TW","開盤價","D") 的資料, 在分K逐筆洗價時, 發現.....
若第一個T在9:00:05之前, 因為 OTC 的開盤價還沒出來, 會出現 1401 的錯誤!
若第一個T在9:00:05之後, 就可以正常執行!
這真是個坑啊~~~~
我目前只好先加個 currenttime>90005 來避免這個問題!
貴公司是否可以幫解決這個問題....
在交易程式中, 用到 GetSymbolField("OTC.TW","開盤價","D") 的資料, 在分K逐筆洗價時, 發現.....
若第一個T在9:00:05之前, 因為 OTC 的開盤價還沒出來, 會出現 1401 的錯誤!
若第一個T在9:00:05之後, 就可以正常執行!
這真是個坑啊~~~~
我目前只好先加個 currenttime>90005 來避免這個問題!
貴公司是否可以幫解決這個問題....
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");
這樣就會在當日開盤價還未更新的時候使用前一日收盤價。
謝謝小幫手的回答!
前天我把時間往後延了5秒, 但竟然大部份的產品都出現了1401的問題!
昨天往後延了10秒, 今天就完全沒遇到了!
說實在, 我也不懂為什麼?
在程式裏今天的資料我只用到
OpenD(0),
close,
GetSymbolInfo("買賣現沖"),
getfield("開盤價", "D"),
getfield("參考價", "D")
這幾個!
在第一個T時, 應該資料也出來了吧? 除了 OTC 的那資料外, 還有其它的可能嗎?
Hello GaryChiang,
小幫手之前簡單測試了 GetSymbolField("OTC.TW","開盤價","D") 欄位在股票和期貨上不會有問題。(參考附圖)
您上面提到欄位在當天第一次執行時應該都已經有資訊了,小幫手之後會再測試看看。
如果可以的話,麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本 以及 XQ Log 來檢驗問題原因。
Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。
您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
3 評論