請教,要將當沖放空的股票,在收盤前全部回補,
//------------------
If MKP=-1 and Filled<0 then begin If time>=132000 then begin MKP=0; SetPosition(0, market,label:="收平"); End; //------------------(設定為逐筆洗價+自動洗價) 但是為什麼有部分當沖個股沒生成回補交易指令 而到收盤還是庫存(3016 -7張)

請教,要將當沖放空的股票,在收盤前全部回補,
//------------------
If MKP=-1 and Filled<0 then begin If time>=132000 then begin MKP=0; SetPosition(0, market,label:="收平"); End; //------------------(設定為逐筆洗價+自動洗價) 但是為什麼有部分當沖個股沒生成回補交易指令 而到收盤還是庫存(3016 -7張)

3016在132000之後沒有補K的問題,照理說應該會回補。請先檢查MKP在回補當下是否等於-1,且看看執行記錄裡面是否有送出委託。
時間都過了133000,3016實際部位是-7,MKP當然還是-1,
怪的是為什麼沒生成回補交易指令,想不透原因
沒有補K的情況下,沒有送出委託,代表MKP並非等於-1。變數MKP是否用intrabarpersist宣告?
我建議這邊用Position<0取代MKP=-1,可避免逐筆洗價因變數沒有用intrabarpersist宣告而造成邏輯錯誤。
感謝教授指點
我試試看
我想也許條件改為
>> If Filled<0 then begin .....
可解決
(不須要MKP=-1)
7 評論