求助!
我想寫 13:20 無條件把所有作多、作空的股票全數平倉的判斷,發現網站上有這個 EnterMarketCloseTime 函數說明:

但實際點下去,卻是不存在的頁面:

我試過在腳本裡輸入 EnterMarketCloseTime(5) 或是 currenttime >= 132000 或是 time >= 132000,結果我用自動交易跑模擬單時,發現超過 13:20 都不會平倉。(但回測時確實出場有寫是在 13:20 左右平倉)
想請問有什麼方式可以實現到期自動平倉的功能呢?
求助!
我想寫 13:20 無條件把所有作多、作空的股票全數平倉的判斷,發現網站上有這個 EnterMarketCloseTime 函數說明:

但實際點下去,卻是不存在的頁面:

我試過在腳本裡輸入 EnterMarketCloseTime(5) 或是 currenttime >= 132000 或是 time >= 132000,結果我用自動交易跑模擬單時,發現超過 13:20 都不會平倉。(但回測時確實出場有寫是在 13:20 左右平倉)
想請問有什麼方式可以實現到期自動平倉的功能呢?
IF currenttime >= 132000 then begin
setPosition(0);
end;
//電腦時間到132000分,全部倉位清成0,記得放在程式碼的上方區,先判斷先優先執行
IF currenttime >= 132000 then begin
setPosition(0);
end;//電腦時間到132000分,全部倉位清成0,記得放在程式碼的上方區,先判斷先優先執行
我把進出場邏輯都寫在一個大的 if 區塊裡的第一段,該 if 的檢查條件去偵測是否還有部位,像是作多的話就是檢查 Filled > 0,然後使用 time 而非 currenttime 實際大概是這樣:
if Filled > 0 then begin
IF time >= 132000 then begin
setPosition(0);
end;
...
end;
但自動交易跑模擬單的時候卻不會平倉,還是這種想要達成強制平倉的邏輯應該獨立放在進出場條件外層,確保先判斷先執行?
Hello iker,
EnterMarketCloseTime 有功能,您可以實際在函數腳本中觀看相關說明。
網頁的部分小幫手會轉告相關人士作處理。
而至於時間出場的部分,您沒有平倉有幾種可能:
1. 有其他交易先執行了。
同時有複數個setposition執行的話,只會執行第一個。
2.沒有交易。
如果沒有交易的話,不論是逐筆洗價還是非逐筆洗價都不會觸發腳本運算。
同時如果該根bar沒有成交量的話,是不會下單的。
3.執行頻率的設定。
舉例來說,如果您的頻率設定為30分鐘非逐筆的話,運算時 time >= 132000 自然不會觸發,因為最後一筆的時間為130000。
實際上是何種情況導致,需要麻煩您提供 交易中心匯出檔勾選(包含)交易腳本、問題發生的商品與時間、以及XQ Log來檢驗。
Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。
您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
感謝 蕎伊斯 的熱心回覆。
Hello iker,
EnterMarketCloseTime XSHelp網頁的部分已修復,可正常觀看。
感謝。
感謝小幫手!!
我後來有確認到是例外情況下會造成模擬單不平倉,假日修復後用 time 或 currenttime 也都可以平倉了
我會試著改用 EnterMarketCloseTime
5 評論