錯誤代碼8200

  •   429 
  • 最後發表   Y.-C.  2021 十月 08
Y.-C. 發文於   2021/09/24

使用模擬帳號做自動交易測試.

一開始用setposition指令下多單25張,

setposition(25, GetField("AskPrice", "Tick"));

中途用setposition(Filled)抽單, 想把未成交的委託單刪除.

但在刪除委託時會出現  錯誤代碼8200,錯誤訊息: <67>[-4036]庫存不足(-8000)

請問這是什麼原因呢?看起來網路上有不少使用程式交易的也遇到此問題(錯誤代碼8200), 但XQ好像都沒有回應, 或是沒有提供解法.

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

Hello Y.-C.,

 

此問題昨日已請工程師協助查詢。

待有進一步消息時會再告知。

感謝。

Skywalker 發文於   2021/09/28

送出多單委託 Position = 1

如果成交了 Filled = 1

中途抽單 是不是應該用 SetPosition(0) 就好了嗎?

Y.-C. 發文於   2021/10/04

SetPosition(Filled)的目的是想要把"尚未成交"的單刪掉, 如果是SetPosition(0)應該是連同已成交的部位也平倉

Skywalker 發文於   2021/10/04

對喔,您說的有理。

我看交易的刪單範例裡面寫的是用SetPosition(0)  取消買進的委託,但是已買進的多單 也是用SetPosition(0) 平倉

實在是看不懂刪單的機制,只好等小幫手釋疑了

 

XQ小幫手 發文於   2021/10/08

Hello Skywalker and Y.-C.,

 

SetPosition 這個函數是把部位調整成指定的數量,所以舉例來說假設您當下的position是3,然後下 setposition(2) 的指令的話,系統會幫您賣一口。

相反的,若您的position是1,下setposition(2) 的指令的話會變成買一口。

setposition(filled) 會把您的position調整成跟庫存相同,也就是說若您有委託單未成交的話(position與filled不相同),這個方法可以將委託單取消。

setposition(0) 會把部位歸0,所以若您的庫存也是0但部位不為0的話會有取消委託單的效果。

細節可以參考 setposition 的函數說明。

 

另外關於庫存不足的問題,工程師檢查過後刪單的部分是有成功的,發生錯誤的部分是在清庫存的時候下賣出8張但庫存不足。

想詢問您後來還有再發生相同的問題嗎?如果有的話希望能夠麻煩您將Log的資訊再度提供給工程師研究。

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

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

感謝。

  • 按讚來自於
  • skywalker0123
發表回覆
Close