自動交易 依庫存+融資劵 下單 嚴重平倉下單錯誤問題

  •   995 
  • 最後發表   shinetony  2022 九月 14
shinetony 發文於   2022/01/06

Hi, 小幫手

      這幾天開始使用自動交易下單, 發現目前自動交易有一些基本交易的嚴重問題在目前的設計限制下根本無法安心讓程式自動交易, 需要時時盯盤手動下單去校正錯誤, 希望你們可以重視並盡速改進

每天安控金額會 reset 不會根據累積成交金額自己計算加減, 以至於我每天需要停止自動交易,修改安控金額以免爆倉

   但是只要停止策略再重新開始, 就會出現下面問題

1. 如果 策略部位 是依腳本計算 , 常常出現策略庫存和實際交易庫存股票張數和成本不一致的情況, 也無法手動修正,或是程式自己讀取庫存修正, 就會出現下錯單或不停損停利的狀況

2. 如果 策略部位 是依庫存計算 或自訂數值, 則成交日期都變為當日, 以至於之前融資買進的股票被用融劵賣出的方式停損停利, 而不是用正確融資賣出的方式,導致我每天都要手忙腳亂地趕快去手動兩邊平倉, 常常賺到的反而變賠掉, 如果哪天不小心沒有發現可能就會被嘎爆, 這是非常嚴重的問題

 

提出幾點建議希望你們可以趕快修正, 不要讓客戶對你們連最基本的庫存管理及正確下單方式都感到無法信任, 那廣告的再好聽, 回測得再好看, 也不敢使用

1. 安控金額可以讓客戶自行選擇是要每天 reset , 還是根據目前庫存或策略成交金額自動計算, 最好是能跟劵商合作直接讀取銀行現有金額,目前幾乎所有劵商都有這個功能, 串接上應該不是問題

2. 策略依腳本計算在不停止策略的狀況下可以直接定時讀取庫存更新或是手動讓用戶更新或新增, 最好也包括成交日期也可以修改

3. 策略依庫存的方式希望也能參考庫存的成交日期而不是都視為當日成交, 最好也能定時重新讀取庫存而不是只有在策略開始的時候

我覺得你們想要擴大更多人使用一定要讓人可以信任最基本的庫存管理及下單正確性, 讓用戶只要專注在策略上就好, 而不是每天擔心受怕, 畢竟這是真金白銀在交易不是模擬遊戲玩一玩就好了

 

  • 按讚來自於
  • sb04870487
  • PNTCWZ
  • YYFrankLi0813
排序方式: 標準 | 最新
XQ小幫手 發文於   2022/01/11

Hello shinetony,

 

關於您提出的問題:

1. 策略部位設定為依腳本,然後您希望策略庫存可以和實際交易庫存相同的話,可以設定 策略部位計算起點

這樣策略在啟動時就會從設定的起點開始模擬運算到啟動當下應該有的庫存。

 

2. 策略部位選擇依庫存的話,雖然日期會被設定為啟動當天,但這只是幫系統補上庫存日期時間的空位。

小幫手跟工程師確認過,系統會知道這筆庫存為前日資買或是今日資買,應該是不會有發生前日資買被融券賣出的狀況。

如果可以的話,麻煩您提供 XQ Log 和問題發生的日期讓工程師這邊作檢驗。

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

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

感謝。

 

 

關於您的建議:

1. 小幫手不太理解您提到安控金額根據成交自己計算加減。

就小幫手所知,安控金額只會增加不會減少。

且目前安控金額的計算方法就和券商是相同的。

小幫手猜測您應該是想要限制持有部位的金額上限,而不是進場金額的上限。

如果是單一商品的話,這可以在腳本中做限制。

多商品的話則是因為目前沒有跨商品的共用變數,所以暫時無法做到。

 

2. 目前相關人士已經有安排開發在自動交易執行時可以修改新增部位。

 

3. 啟動時交易中心填上的日期只是補上日期時間的空位,大多數狀況下並不會對您的交易有影響。

 

小幫手會將您的建議轉告相關人士,做為未來開發的參考。

感謝。

 

shinetony 發文於   2022/01/11

1. 策略部位設定為依腳本,然後您希望策略庫存可以和實際交易庫存相同的話,可以設定 策略部位計算起點。

這樣策略在啟動時就會從設定的起點開始模擬運算到啟動當下應該有的庫存。

=> 當有庫存賣出但實際沒有成交的時候, 如果每日重啟策略就會發現該股票不在策略庫存裡面也不會執行停損停利, 必須手動下單

2. 策略部位選擇依庫存的話,雖然日期會被設定為啟動當天,但這只是幫系統補上庫存日期時間的空位。

小幫手跟工程師確認過,系統會知道這筆庫存為前日資買或是今日資買,應該是不會有發生前日資買被融券賣出的狀況。

=> 這個狀況已經多日都有發生了, 我都得手動兩邊平倉, 原本有賺的變成賠的還要多付出融卷手續費和交易稅, 我沒有保存前幾天的 log , 你們可以用模擬交易+個人版本自己測試,我不知道你們的企業版本會不會不一樣, 但是我是實際遇到這種問題, 之前也有印出成交日期, 發現策略重啟使用庫存的時候, 成交日期都變為當日

1. 小幫手不太理解您提到安控金額根據成交自己計算加減。

=> 例如原先設定同一個策略整體安控金額 100萬 , 當日成交金額 40萬的話, 隔日的安控金額應該就要扣除40萬只能再買60萬,  但是現在XQ是只有當日不能超過100萬, 隔日就 reset 可以再買100萬, 如果忘記每日自行調整的, 就有可能爆倉, 超過一百萬沒錢補或忘記補的的話就會違約交割,這樣就少了自動交易控制成交金額風險的功能了

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

Hello shinetony,

 

1.因為是用模擬的,所以並不能保證實際庫存會等同於策略庫存。確實有可能會發生系統判斷模擬時會成交,但實際上沒有成交的狀況。

 

2.小幫手這邊用個人版和企業版測試,都沒有發生您說的狀況,細節可以參考附圖。

在 2022/01/14 資買進場, 2022/01/17 自動交易出場時是用資賣出場沒錯。

如果您那邊是用券賣出場的話,麻煩您依照上面所說的提供 XQ Log 和問題發生的日期讓工程師這邊作檢驗。

另外 XQ Log 是自動記錄的,並不是要您把自動交易中心的 log 匯出,而是要請您提供位於 預設路徑:C:\SysJust\XQLite\LOG 的整個 Log 檔案。

而策略重啟使用庫存的時候,成交日期都變為當日這點就如同小幫手上面所說,只是要補上日期時間的空位而已,大多數狀況下並不會對您的交易有影響。

 

3.小幫手了解您的意思,但這跟XQ中對每日進場金額上限的定義不同,也和一般券商的計算方式有差別。

小幫手會將您的建議轉告相關人士作參考。

感謝。

附加文件

shinetony 發文於   2022/02/09

Hi, 小幫手

     因為用依庫存方式都會遇到資買劵賣的錯誤下單結果, 後來我都改用依腳本方式, 但是今天又出現昨天資買今天劵賣的錯誤

     我已經把 LOG 寄到 客服信箱 XQservice@XQ.com.tw

     請幫忙檢查 奇鋐(3017 ) 2/8 融資買兩張 , 2/9 卻是用融劵賣兩張來平倉而不是用融資賣 

    謝謝

XQ小幫手 發文於   2022/02/11

 Hello shinetony,

 

已經將您提供的Log轉交給工程師研究。

若有進一步消息會再告知。

感謝。

shinetony 發文於   2022/02/14

Hi, 小幫手      

     今天交易又發生三個嚴重的錯誤, 請趕快幫忙檢查並修正程式的問題, 要不然真的是每天都要提心吊膽

     1. 重複下單賣出 : 今天台企銀(2834) 原有庫存 18張融資要平倉,  log 顯示一次 "交易指令","實際部位:18 目標部位:0 價格:10.05 是正確的, 但是群益證卷卻收到3筆同時融資賣出18張的單子, 第一筆成交, 後兩筆因為庫存不足失敗      

      2. 重複下單買進 : 今天華通(2313) 要建立 4張融資庫存,  log 顯示一次 "交易指令","實際部位:0 目標部位:4 價格:48.95 是正確的, 但是群益證卷卻收到3筆同時融資買進4張的單子, 導致3筆共12張都成交了      

       3. 停止的股票還會送出交易單 : 兆豐金(2886) , 前幾天已賣出, 但是依策略卻認為還有庫存, 因此手動在商品監控停止兆豐金的監控, 可是程式還是送出融劵賣出的交易單, 還好因為沒有融劵而交易失敗, 檢查 log 卻沒發現兆豐金的交易指令      

      我將 log 和劵商委託單的截圖 及 LOG 檔案 都已寄到客服信箱, 希望快點解決這些問題  

XQ小幫手 發文於   2022/02/16

Hello shinetony,

 

小幫手已經將您第二次寄來的轉交給工程師檢驗。

目前有找出可能的問題,工程師已經安排修復。

為了在修復前避免相同的錯誤發生,建議您可以每日重啟XQ讓庫存正確更新。

shinetony 發文於   2022/03/12

Hi, 請問是否已經修復這些問題, 什麼時候可以更新呢, 最近還是遇到很多次 之前融資買入,被用融卷賣出情況而造成虧損, 希望能趕快修正相關錯誤

這幾天測新的策略有發現一個問題

當自動交易使用依策略方式, 只要有計算超過25日的均線, 或是指定天數小於40天時,計算過去時間策略庫存時就不會依一分鐘逐筆洗價,而是一天只有13:29那一筆成交價, 但是改成25日以下均線或是指定天數大於40天時就可以正確逐筆洗價, 導致完全無法建立正確策略庫存, 你可以試一下底下程式碼, 資料讀取筆數100,指定天數設為10天時, 最近10天內不會逐筆洗價

var: ma_60(0);

var: str_time("");

 

if getinfo("IsRealTime") = 1 then str_time = NumToStr(CurrentTime, 0) else str_time = NumToStr(GetField("Time","1"), 0);

Print("Date",NumToStr(Date, 0),"Time",str_time,"close:",NumToStr(close, 2),"vol:",NumToStr(volume, 2));

 

ma_60 = average(close,60);

XQ小幫手 發文於   2022/03/16

Hello shinetony,

 

小幫手測試後確實會發生您所說的狀況。

會請工程師確認原因,待有進一步消息時再告知。

感謝。

XQ小幫手 發文於   2022/03/16

Hello shinetony,

 

經詢問工程師後得知此問題是因為當資料讀取筆數(100筆)中運算時,會取用最大引用筆數裡面設定的歷史資料來計算 (average(close, 60))。

但由於最大引用筆數長度不足(預設20筆),此時會優先壓縮指定天數的設定10天,導致這10天不會逐筆洗價。

最簡單的解決方式是將最大引用筆數設足,您的案例就是 setbackbar(60)。

關於資料讀取筆數和最大引用筆數的關係可以參考此篇文章

顯示更多回應 發表回覆
Close