請問小幫手,自動交易當沖時,尾盤語法如下:
if Position <> 0
AND (EnterMarketCloseTime(5) or currenttime >= 132000) then begin
SetPosition(0, market);
end;
但回測後有發現幾檔在某幾天的尾盤一直出不了場,造成錯誤:
6451, 7/4 尾盤未出場
2399, 7/4 尾盤未出場
6173, 8/4, 尾盤未出場
想請教原因,以及如何避免?
謝謝您
請問小幫手,自動交易當沖時,尾盤語法如下:
if Position <> 0
AND (EnterMarketCloseTime(5) or currenttime >= 132000) then begin
SetPosition(0, market);
end;
但回測後有發現幾檔在某幾天的尾盤一直出不了場,造成錯誤:
6451, 7/4 尾盤未出場
2399, 7/4 尾盤未出場
6173, 8/4, 尾盤未出場
想請教原因,以及如何避免?
謝謝您
通常遇到出不了場的情況都是你所設定的出場時間 130000 開始,後續所有K棒成交量皆為0。
因為XQ所有腳本都是有成交才會執行(開了逐筆洗價也一樣),沒有成交的話就算你有寫指定時間之後送出市價單的邏輯,實際上因為腳本從 130000 開始到 132500 都沒有被觸發到,所以根本不會送單。(133000 有成交也沒用,因為已經收盤了,就算跑到腳本邏輯裡執行下單,也會下單失敗)
這種情況只能更改條件提前出場,或是在腳本裡換日的邏輯區域裡,寫一段強制出場條件,這樣至少隔日開盤一定會出場。
一定要求要當沖提前出場的話,只能避開量太小的股票,盤中再另外偵測交易量,例如遇到20期均量太低或開始多根K棒無成交,就要主動出場避免留倉交割。
Hello MakeMoneyFromStock,
您可以參考 iker 的回覆。
另外,小幫手這邊簡單測試您說的商品,是可以出場的。(參考附圖)
可能是前面有其他的交易指令觸發導致尾盤出場的交易指令不執行 (只會執行第一個運算到的交易指令),或是回測的設定所導致。
可以使用 print 函數將相關數值印出確認看是什麼原因造成。
如果還是有問題的話,要麻煩您提供 回測腳本匯出檔、回測設定 (報告或截圖皆可) 以及 XQ Log 來檢驗。
Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。
您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝 iker 的熱心回覆。
2 評論