自動交易失敗訊息解讀

  •   441 
  • 最後發表   不太方便  2022 八月 17
不太方便 發文於   2022/05/25

編董您好

最近執行自動交易策略發現以下錯誤訊息

且該標的似乎就啟動失敗無法執行策略

請問什麼狀況下會產生以下訊息?

-執行時發生錯誤[(1404)商品XXXX Tick 頻率K線資料為空]

-執行時發生錯誤[(1401)Tick頻率資料不足]

想了解一下原因及避免方法

3Q

附加文件

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

Hello 不太方便,

 

Tick 頻率K線資料為空 應該是發生在當您該商品資料預讀筆數的範圍內都沒有Tick的時候,取用Tick資料就會發生此錯誤。

Tick頻率資料不足 則是運算時發生需取用某筆tick資料但取不到的時候 (ex. 腳本在預讀筆數剛開始運算時)。

 

如果還是有問題的話,麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本、執行商品和發生日期時間 以及 XQ Log 來檢驗。

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

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

感謝。

 

不太方便 發文於   2022/07/06

編董您好,已經寄信過去了

再麻煩幫忙

Thanks

XQ小幫手 發文於   2022/07/07

Hello 不太方便,

 

您發生的錯誤有兩種(1401、1405),主要是沒有Tick,或是Tick數量不足所導致。

1401可以在腳本開頭加上 if getinfo("isrealtime")=0 then return; 來解決。

 

1405的話可以嘗試開頭加上 setbackbar(3, "Tick"); 看是否能運作。

如果不行的話,改成 if getfield("seqno","tick")<3 then return; 這樣若腳本當日的Tick數量少於3的話會直接return,直到有3筆以上。

不太方便 發文於   2022/07/19

Hi 編董

我在腳本加上

if getinfo("isrealtime")=0 then return; 

if getfield("seqno","tick")<2 then return; 

腳本執行時皆不會發生錯誤

但某些商品在執行洗價後

仍然出現1401 Tick頻率資料不足

再麻煩幫忙看一下有什麼問題

Thanks

附加文件

KENj1985 發文於   2022/07/25

我在執行權證交易時也遇到同樣情形,洗價後會出現異常  大多是1401代碼

KENj1985 發文於   2022/08/02

小編管理員請幫幫忙

XQ小幫手 發文於   2022/08/09

Hello 不太方便,

 

您在寄來的腳本中有使用到 前兩根tick,也就是 [2] 的資訊。

包含運算當下的那一根 [0],所以最少要有3根Tick的資料才能運算。

您改成 if getfield("seqno","tick")<2 then return;  自然就沒有效果。

 

if getfield("seqno","tick") < 3 then return; 

這行腳本的意思是,當天最少要有3根Tick,腳本才會繼續運算。

小幫手這邊也會用您提供的腳本測試看會不會發生相同的情況。

 

 

Hello KENj1985,

 

如果您也是類似的問題,那麼如同上面所說,視您使用的多少前期資料,就需要用條件來限制。

若還是無法解決,麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本、問題發生的日期時間和截圖 以及 XQ Log 來檢驗。

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

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

感謝。

 

 

另外小幫手補充,小幫手回覆時都是由討論區的後面往前面回覆。(優先回覆較早發問的用戶)

所以如果您在同一篇文章推文的話會造成您的文章被往前推,反而讓小幫手看到問題的時間變晚。

由於近來問題量不少,麻煩您發問後多等待一陣子。

不太方便 發文於   2022/08/13

編董

謝謝您的回覆

目前我限制使用這兩行

if getinfo("isrealtime")=0 then return; 

if getfield("seqno","tick")<2 then return;

程式碼的部分只用到2個tick [0]和[1] 如下

 

getfield("當日序號", "Tick")>=2

and

getfield("volume","tick")=250

and

getfield("volume","tick")[1]=250

and

getfield("內外盤", "Tick")=-1

and

 

getfield("內外盤", "Tick")[1]=1

理論上應該符合您所提到的情境把2個tick以下的都return

return了還會出現1401嗎?

XQ小幫手 發文於   2022/08/17

Hello 不太方便,

 

就您的描敘來看,這樣應該是不會發生tick頻率資料不足的狀況。

但這次的腳本和之前寄來的不同,要確認問題的話需要麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本、執行商品和發生日期時間 以及 XQ Log 來檢驗,看是否有辦法解決。

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

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

感謝。

發表回覆
Close