自動交易將當沖放空"回補"當作做多而不執行

  •   372 
  • 最後發表   小李飛刀  2021 十二月 10
小李飛刀 發文於   2021/09/29

我使用自己寫的自動交易策略(當沖放空)

在9/28日時, 有執行放空, 且在程式碼的指定時間13:00進行回補

但在9/29執行時, 執行紀錄在13:00時, 出現" 原因:多空限制 : 只能做空 (目標庫存 0, 欲買進 1) 以下指令不予執行(實際部位:-1 目標部位:0 價格:20.XX (執行行數:52))

文字上意思應該是我在腳本設定上, 只勾選"只作空", 導致他在執行回補時, 以為是要作多, 而執行錯誤

但在9/28日執行時, 卻沒發生這樣的情形

程式碼與9/28, 9/29 執行紀錄CSV檔 如附檔與圖

再請幫忙澄清是否程式碼有問題? 或是自動交易的bug?

謝謝

附加文件

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

Hello 小李飛刀,

 

小幫手看您的圖片,應該是因為 3294 當時的庫存和部位不同造成安控失敗。

部位判斷是回補,但庫存卻是買1口,確實可能有問題。

需要麻煩您提供 交易中心匯出檔勾選(包含)交易腳本 以及 XQ Log 來檢驗問題原因。

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

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

感謝。

 

另外想詢問,您在input裡寫 "僅適用5分鐘線" ,但腳本中卻是 if barfreq<> "Min" or barinterval <> 1 then return; (不是1分鐘頻率即中斷)。

所以您是希望使用什麼頻率?

你好 發文於   2021/11/26

我也有遇到此問題,出現 "原因:多空限制 : 只能做空 (目標庫存 0, 欲賣出xx) 以下指令不予執行(實際部位: ....................)"。

請問這個主題有下文嗎? 我覺得蠻嚴重的,會導致無法交易,已經造成我的損失了。以前同樣的策略都沒問題,今天第一次發生。請小幫手,慎重檢查。

XQ小幫手 發文於   2021/11/30

Hello 你好,

 

需要麻煩您提供 交易中心匯出檔勾選(包含)交易腳本、錯誤相關圖片 以及 XQ Log 來檢驗。

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

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

感謝。

 

小李飛刀 發文於   2021/11/30

因為我是只做空, 所以後來在安控那邊改選多空都做就解決了

你好 發文於   2021/12/01

Dear 小李飛刀,

 

你是指這邊改成"無限制"嗎?

 

你好 發文於   2021/12/01

Dear 小李飛刀,

 

我的理解是,如果是買就要選"只做多",如果是賣就要選"只做空",如果買賣都要就選"無限制"?

可是矛盾的是,我之前都是賣,只選"只做多",指令都是可以正常執行的,只是這次不知道為什麼,無法執行。

XQ小幫手 發文於   2021/12/03

Hello 你好,

 

您可以參考自動交易策略參數總覽裡面的說明。

 

選擇:只可做多/只可做空/不限制

這一個選項是用來確保策略執行實單交易時帳號的實際庫存數量符合多空的設定。

假設策略選擇只可做多的話,那麼當策略執行時要送出賣出委託時,策略會檢視當時帳號的實際庫存數量,如果實際庫存數量小於欲賣出的數量時,則這一個交易指令不會送出(使用者可以從執行紀錄內看到錯誤的紀錄)。

同理,如果策略選擇只可做空的話,那麼當策略執行時要送出買進委託時,策略會檢視當時帳號的實際庫存數量,如果實際庫存的做空數量小於欲買進的數量時,則這一個交易指令不會送出。

 

這邊的庫存指的是實際的庫存,而不是策略庫存(Filled)。

所以有可能發生因為您實際庫存不等於策略庫存,所以策略庫存是多方平倉,但實際庫存卻是0倉位要放空的狀況。

小幫手這邊實際測試的結果也是如此。(參考附圖)

推測 小李飛刀 遇到的也是類似的情況。

附加文件

你好 發文於   2021/12/03

其實你給的連結我看過了,只是有看沒有懂。對我來說我是做多,跌了我就賣了,實際卷商也有庫存,只是不明白為啥無法執行指令,還是說,我只要選"不限制"就可解決這個問題?

 

另外,"實際庫存不等於策略庫存",記得策略啟動時,就會去同步卷商的庫存嗎?按照邏輯來看,那應該會一樣才是阿?

 

XQ小幫手 發文於   2021/12/06

Hello 你好,

 

針對您郵件裡面的附圖,您遇到的狀況是,策略判斷1457有持有4張部位,要將其賣出。

但實際上您的帳戶裡的庫存是0,如果將部位向下調整4張的話就會變成放空4張,所以被安控給限制住。

您選擇不限制的話是可以解決這問題沒錯,但需注意策略裡的部位庫存和實際庫存是有差別的。

 

策略啟動時,會依照您在策略部位的設定去決定運算開始的部位與庫存。

如果您選擇依庫存的話,會在啟動時去讀取帳戶裡的庫存來當作策略開始的部位和庫存。

需注意的是,在您的策略啟動後,策略的庫存部位將會獨立運作。

所以如果您有手動操作,或是其他的策略進出場,會導致您原本這隻策略的部位與庫存和實際庫存有差別。

你好 發文於   2021/12/06

Dear 小幫手,

 

如你所說的"如果您選擇依庫存的話,會在啟動時去讀取帳戶裡的庫存來當作策略開始的部位和庫存",我是選"依庫存",也沒有手動,但是就是不明白,為什麼帳戶裡的庫存是0?

 

這個能解釋為什麼嗎?

不然找不到原因,用起來很危險。

 

Thanks.

Show More Posts 發表回覆
Close