(自動交易) 先買現沖的疑問

  •   581 
  • 最後發表   帥哥元  2025 四月 08
帥哥元 發文於   2025/03/18

先買現沖的股票,只要當日用現股先買後賣,不考慮融資融券,應該是可以當沖的吧

排序方式: 標準 | 最新
XS小編 發文於   2025/03/20

Hello 帥哥元,

 

小編認為可能遇到的狀況是其他策略或手動交易已經把該張庫存出掉,故策略執行到收盤平倉指令時底層是下出現股賣出的委託。

可以先確認看是否有其他地方已將該商品賣出。

若還是有問題的話麻煩您提供 XQ Log 讓相關人員確認原因。

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

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

感謝。

毛毛豬 發文於   2025/03/20

遇過只做多情況下,買入後送出了比成本高的單然後就失憶了,導致股價回落時電腦自動停損失效

帥哥元 發文於   2025/03/24

今天又發生相同的情況,經確認,庫存仍在

已經將LOG資料夾mail到客服信箱了

XS小編 發文於   2025/03/26

Hello 帥哥元,

 

您在 09:43:36 時有透過閃電下單下出賣出的委託,但沒有成交。

因此自動交易策略在 13:24:04 時送出的委託會以現先賣的方式送出 (現股賣出的委託已經存在)。

帥哥元 發文於   2025/03/26

小編您好,我還是不太理解您說的意思

1. 依照3/24當天,信立(4303)是先買現沖

2. 我所貼的3/24的圖,大約也是在9:16分買進的,已經符合了先買的條件,同時也代表Position=1、Filled=1

3. 縱使9:43曾透過閃電下單下出賣出的委託(未成交),但是收盤時也是使用SetPosition(0)

4. 在Position=1、Filled=1的情況下,要變成Position=0、Filled=0,怎麼會用  先賣  的方式下出委託呢?

5. 我在尾盤平倉前,有用指令列出當下的Position和Filled,分別都是1,也就代表Position和Filled的函數,其實不會因為手單而有異動,他們是獨立的,這樣SetPosition(0)為何會用先賣來下出委託?

6. 如果手單的委託會影響到SetPosition(0),那Position和Filled是否也應該記錄手單的變化呢?

毛毛豬 發文於   2025/03/27

哥!一屋不能二賣阿!

帥哥元 發文於   2025/03/28

我今天找了一檔來頡(6799),他是買賣現沖

手動125.5買進一張後,又手動掛了一張130賣出的有效委託

這時,我故意又手動再掛一張124賣出,的確,不允許我再掛單賣

但是,尾盤13:24時,我觀察130賣出的那張委託單,我並未取消

可是自動交易卻可以幫我平倉掉,而且平倉後,我那張手動130的賣出委託單依然還在

==================================================================

我的疑問是

1. 先前所說的是先買現沖,為何最後自動交易卻用   先賣  來下單,非用   平倉   來下單

虎科大許教授 發文於   2025/03/28

有關先買現沖的股票,程式買進1張成交後,手動限價賣出(但一直沒成交),尾盤程式平倉時出現「不可現股賣出」的錯誤訊息,我的看法(猜測)如下:

我猜測系統在這種狀況下,應該是用position判斷部位,而非filled。當手動賣出時,position為0,尾盤程式要賣出時,由於position為0,要賣出1張,亦即空手時要先賣,系統就阻擋下單,造成留倉。以上純粹是我的猜測,未經驗證。若我的猜測屬實,則建議RD可在調整初始部位時加上filled判斷。若調整初始部位同時判斷position及filled,則上述情況在尾盤時,position=0 and filled=1,又執行setposition(0,market),會將原本高掛賣出的委託單改成市價單,這樣就可以平倉掉。

帥哥元 發文於   2025/03/30

這隻自動交易的開發目的是,手動進單後,交由程式自動出場,而我人就可以去看其他商品

所以在語法裡用 Alert("Position=",NumToStr(Position,0),"Filled=",NumToStr(Filled,0),"FilledAtBroker=",NumToStr(FilledAtBroker,0));

來看委託及庫存的狀況

我發現,當我手單買進成交後,Position=1、Filled=1、FilledAtBroker=1

而我這時再用手單掛賣出委託,Position卻不會變化

我也測試使用 CancelAllOrders 函數,並不會影響我手單掛出的委託賣單

所以我很納悶,當我手動成交時Position和Filled會被異動

而手動未成交的委託,Position卻不會被異動

 

虎科大許教授 發文於   2025/03/31

你的策略,執行商品選擇「指定庫存」,策略部位選擇「與庫存同步」且將「庫存異動時自動加入執行」及「庫存異動時自動同步數值」打勾。

你在094323手動買進1張且成交,昨天庫存餘額(昨餘)為0,今天庫存餘額(今餘)為1。由於filled改變,所以position及filled都更新為1。094336你手動高掛賣單(一直沒成交),由於並非策略賣出且同步數值只有在filled有變動時才會同步,所以position及filled仍然是1。結果:昨餘為0,今餘為1,今委賣為1(手動)。

尾盤程式送出setposition(0),系統會再判斷當下庫存狀況。由於昨餘0+今餘1-今委賣1(手動)<=0,所以系統會送出賣出的委託,這會造成儘管可先買現沖的股票,因為昨餘0+今餘1-今委賣1(手動)=0(等同空手),又是賣出,所以出現「不可現股賣出」的錯誤訊息。

顯示更多回應 發表回覆
Close