(已解決) SetPosition(0, Market) "目標部位與目前部位相同且價格不變 以下指令不予執行。"

  •   313 
  • 最後發表   Sadless  2021 五月 26
Sadless 發文於   2021/05/25

這是實際上在模擬帳戶執行一個放空策略時,發現的問題。

上圖示在放空策略裡的執行平倉動作 SetPosition(0, Market) 時,所發生的問題。

 

該策略在前面已經執行了 SetPosition(-1, Market) 進行放空。

到了該平倉的時候,執行了SetPosition(0, Market)。

同樣的條件,宏益(1452) 成功平倉,可是年興(1451)卻發生錯誤。

 

顯示的錯誤原因是:"目標部位與目前部位相同且價格不變 以下指令不予執行"。

我有注意到,當時網路有發生1秒的瞬斷

 

我猜測是因為網路的瞬斷,導致這個 SetPosition(0, Market) 執行之後,沒有成功送出去。

而程式內部認為這個SetPosition(0, Market) 已經被執行了,所以程式認為 "目標部位與目前部位相同且價格不變 以下指令不予執行"。

如果是這樣,我們有方法可以清除記憶體裡面已經執行的SetPosition(0, Market),然後再重新執行一次 SetPosition(0, Market) 嗎?或是有其他的方法可以解決這個網路瞬斷造成的問題?

 

 

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

Hello Sadless,

 

關於網路斷線的部分您可以參考此連結

這問題看起來有可能是因為下單後10秒內沒有收到下單回報而導致。但實際原因還是需要麻煩您提供自動交易中心匯出檔、交易腳本以及 XQ Log 來檢視才能得知。

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

您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且附上討論文章連結網址。

感謝。

 

另外建議您可以增加 position 為檢查條件,例如:

if Position = 0 and Filled = 0 then SetPosition(1);

這樣的話就不會發生一直送交易指令的狀況。

Sadless 發文於   2021/05/26

了解,我先把網路斷線的選項設定為"繼續執行策略",然後如果再次發生的話,我把Log傳給你們。

謝謝。

發表回覆
Close