部位偵測問題

  •   278 
  • 最後發表   charlie1234  2023 三月 27
charlie1234 發文於   2023/03/23

小幫手好

以下是我的狀況

1. 我有兩個策略,一個短波段,一個當沖空,都用同一組模擬帳號,策略部位都是用自訂數值

2. 短波段,昨天進多單1張A股票

3. 當沖空,今天進空單7張A股票

4. 當沖空,尾盤出場,出現只能做空,庫存為-6的錯誤

另外,可以看下下圖,當沖空一開始洗價的時候,也是顯示目前部位為0,那後面怎會又變成庫存為-6

還是說這個部位不是代表庫存部位?

我的版本是:09.04 221214 

另外,我以為當setposition(0)的時候,XQ是會去偵測庫存部位為多少,才去下相對應反向的數量

但以這次的錯誤訊息來看,似乎又不是這樣

煩請小幫手說明

log檔

https://drive.google.com/file/d/119MCvZFg5lLmC9Zuq95J16cQYFzoQPeq/view?usp=sharing

 

 

XQ小幫手 發文於   2023/03/27

Hello charlie1234,

 

策略庫存和實際庫存是兩個不同的數字。

 

雖然您是兩個不同的策略,執行時彼此的庫存是獨立的,但最後還是連接到同一個帳號,所以在經過 多單1張A股票 和 空單7張A股票 後,實際庫存會是 空單6張A股票。

簡單來說,就會是:

短波段策略庫存: +1 A股票

當沖空策略庫存: -7 A股票

實際庫存: -6 A股票  (1 - 7 = -6)

 

而由於您設定為只作空,此項設定是針對實際庫存數量所作的限制,可參考文件說明

這會導致當沖空策略在平倉時下的數量變成作多 (-7 => 0,所以要買7張),進而被限制。

 

當沖空一開始洗價的時候,顯示目前部位為0,但是您接下來就發出交易指令賣出7張並成交,這會讓策略庫存變成 -7。

 

SetPosition(0) 是針對策略庫存,並不是實際庫存,因為策略彼此之間是獨立的,不會因為其中一個策略下的 setposition(0) 而把所有的策略都平倉。

發表回覆
Close