使用模擬帳號做自動交易測試.
一開始用setposition指令下多單25張,
setposition(25, GetField("AskPrice", "Tick"));
中途用setposition(Filled)抽單, 想把未成交的委託單刪除.
但在刪除委託時會出現 錯誤代碼8200,錯誤訊息: <67>[-4036]庫存不足(-8000)
請問這是什麼原因呢?看起來網路上有不少使用程式交易的也遇到此問題(錯誤代碼8200), 但XQ好像都沒有回應, 或是沒有提供解法.
使用模擬帳號做自動交易測試.
一開始用setposition指令下多單25張,
setposition(25, GetField("AskPrice", "Tick"));
中途用setposition(Filled)抽單, 想把未成交的委託單刪除.
但在刪除委託時會出現 錯誤代碼8200,錯誤訊息: <67>[-4036]庫存不足(-8000)
請問這是什麼原因呢?看起來網路上有不少使用程式交易的也遇到此問題(錯誤代碼8200), 但XQ好像都沒有回應, 或是沒有提供解法.
Hello Y.-C.,
此問題昨日已請工程師協助查詢。
待有進一步消息時會再告知。
感謝。
送出多單委託 Position = 1
如果成交了 Filled = 1
中途抽單 是不是應該用 SetPosition(0) 就好了嗎?
SetPosition(Filled)的目的是想要把"尚未成交"的單刪掉, 如果是SetPosition(0)應該是連同已成交的部位也平倉
對喔,您說的有理。
我看交易的刪單範例裡面寫的是用SetPosition(0) 取消買進的委託,但是已買進的多單 也是用SetPosition(0) 平倉
實在是看不懂刪單的機制,只好等小幫手釋疑了
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且附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
5 評論