Hi 小幫手您好,
關於程式交易,在不開啟逐筆洗價前提下,若已觸發買進條件,也就是現在為filled = 1,因此後續碰觸到賣出條件後,
會在下一根K棒的開盤價賣出,但該根K棒走完後,滿足將單子買回的條件,此時我該怎麼寫?
因為在觸發賣出setposition(0)情況下後,將不會執行下一個setposition。
謝謝
Hi 小幫手您好,
關於程式交易,在不開啟逐筆洗價前提下,若已觸發買進條件,也就是現在為filled = 1,因此後續碰觸到賣出條件後,
會在下一根K棒的開盤價賣出,但該根K棒走完後,滿足將單子買回的條件,此時我該怎麼寫?
因為在觸發賣出setposition(0)情況下後,將不會執行下一個setposition。
謝謝
請問小幫手可以回答我的問題嗎?
Hello Alex12,
在不開啟逐筆洗價的狀況下,每根Bar只會運算一次。
運算時若有觸發 setposition 的話,在同一次運算中 position 跟 filled 都不會變,在腳本運算完後才會將 position 作調整,並準備送出委託單。
要到收到成交回報以後,filled 才會在下次執行腳本時更新為新的數值。
所以若您在第一根Bar結束時運算符合進場條件的話,在腳本運算結束時會是 position = 進場數量, filled = 0,並送出委託單。
若在第二根Bar完成時腳本運算,此時符合出場條件且指令為 setposition(0) 的話,若有還未成交的委託將會被取消,並依庫存數量送出出場委託單。
如果您是在同一次運算中觸發2個SetPosition 的話,那麼只會執行第一個。
所以您在撰寫腳本時可以將要優先執行的交易指令寫在上方,較不重要的放後面。
關於 SetPosition 運作的方式,可以參考說明文件。
另外小幫手補充,小幫手回覆時都是由討論區的後面往前面回覆。(優先回覆較早發問的用戶)
所以如果您在同一篇文章推文的話會造成您的文章被往前推,反而讓小幫手看到問題的時間變晚。
由於近來問題量不少,麻煩您發問後多等待一陣子。
2 評論