你好,
我腳本寫的下單,一次只下一筆,且安控也有設定,但部位卻有3,且是在同一時間連續下單造成的,
更奇的是,在歷史委託與成交記錄中卻只有一筆,請看我看一下。


log檔 :
https://drive.google.com/file/d/1lXFhixqUuxvtg0vq_3K0fVBiy-t30Ycu/view?usp=sharing
你好,
我腳本寫的下單,一次只下一筆,且安控也有設定,但部位卻有3,且是在同一時間連續下單造成的,
更奇的是,在歷史委託與成交記錄中卻只有一筆,請看我看一下。


log檔 :
https://drive.google.com/file/d/1lXFhixqUuxvtg0vq_3K0fVBiy-t30Ycu/view?usp=sharing
Hello 無情卻慈悲,
關於部位庫存的部分,小幫手會請相關人員確認。
但您的最大部位限制設定為1只代表同一時間最多只能有1張庫存,並不會限制交易數量。
所以您的執行紀錄裡賣出成交後接了一個買進委託成交,讓庫存變回0,接著才繼續賣出成交。
小幫手建議您在所有的進出場條件裡面,加上同時用 position 和 filled 來作限制,如果只用position的話會因為 position 變動而持續進出場 (不論是否有成交)。
你好,
兩個回問:
1、
在逐筆洗價中,當訊號發生時若只要下一次就好,你說要加上filled判斷,
是這樣寫嗎?
if position <= 0 and filled <= 0 .....
2、
如果只用position的話會因為 position 變動而持續進出場 (不論是否有成交) →
可是如果我以市價單出去,positon應會立即變成1,不是嗎?用市價單也會造成我上述的問題嗎?
Hello 無情卻慈悲,
1. 如果您是空方要出場的話,小幫手會寫 if position < 0 and filled < 0。
如果您是空手要進場的話,會寫 if position = 0 and filled = 0。
小於等於0會讓空方出場與空手進場的狀況重疊。
filled 會比 position 穩健的原因在於,position 是會隨著腳本變動,但 filled 則是要實際成交後才變動。
所以較簡單的作法是使用 filled 來控管就好,至於 position 的部分則是避免使用會變動的價格當限價單時因為洗價而一直改單。
2. 在冷門商品上,市價單不一定會馬上成交 (如果沒有對手方的話)。
另外,成交回報也有可能因為各種因素導致沒有在下次洗價前收到。
所以還是建議您多做一層保險。
你好,
如果您是空手要進場的話,會寫 if position = 0 and filled = 0。
→ 因我有時候是會「多空互換」,所以若空方要進場的話可能當下正值多單有部位,所以空單我一定得寫成 if position >= 0 and filled >= 0 ,
那這樣我要怎麼避免呢?
Hello 無情卻慈悲,
這種狀況的話,您是可以這樣寫沒錯,但要注意當position和filled同時等於0的時候兩邊條件若發生同時符合的狀況。
另外,如果您有其他的出場方式 (ex. 停損停利),其條件也要用 filled 來控管。
這樣策略在多方或空方時可能同時觸發停損/停利和反手的狀況,此時的先後順序也要安排。
由於 setposition 會執行最先符合條件的指令,所以可以將您希望優先執行的交易邏輯放在前方。
Hello 無情卻慈悲,
關於庫存的部分,相關人員表示應該是 10/07 日盤成交的部分,要等到夜盤交易完畢 (10/08 05:00) 後轉檔完成才會顯示出來。
在還沒轉檔完成前,您應該可以在當日成交中確認。
6 評論