請問 EnterMarketCloseTime 有功能嗎?

  •   77 
  • 最後發表   iker  15 小時前
iker 發文於   2022/01/14

求助!

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

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

我試過在腳本裡輸入 EnterMarketCloseTime(5) 或是 currenttime >= 132000 或是 time >= 132000,結果我用自動交易跑模擬單時,發現超過 13:20 都不會平倉。(但回測時確實出場有寫是在 13:20 左右平倉)

想請問有什麼方式可以實現到期自動平倉的功能呢?

排序方式: 標準 | 最新
蕎伊斯 發文於   2022/01/14

 IF currenttime >= 132000  then begin 
    setPosition(0);
   
end;

//電腦時間到132000分,全部倉位清成0,記得放在程式碼的上方區,先判斷先優先執行

iker 發文於   2022/01/15

 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;
但自動交易跑模擬單的時候卻不會平倉,還是這種想要達成強制平倉的邏輯應該獨立放在進出場條件外層,確保先判斷先執行?

XQ小幫手 發文於   2022/01/18

Hello iker,

 

EnterMarketCloseTime 有功能,您可以實際在函數腳本中觀看相關說明。

網頁的部分小幫手會轉告相關人士作處理。

而至於時間出場的部分,您沒有平倉有幾種可能:

1. 有其他交易先執行了。

同時有複數個setposition執行的話,只會執行第一個。

 

2.沒有交易。

如果沒有交易的話,不論是逐筆洗價還是非逐筆洗價都不會觸發腳本運算。

同時如果該根bar沒有成交量的話,是不會下單的。

 

3.執行頻率的設定。

舉例來說,如果您的頻率設定為30分鐘非逐筆的話,運算時 time >= 132000 自然不會觸發,因為最後一筆的時間為130000。

 

實際上是何種情況導致,需要麻煩您提供 交易中心匯出檔勾選(包含)交易腳本、問題發生的商品與時間、以及XQ Log來檢驗。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以Mail至客服信箱 XQservice@XQ.com.tw且務必附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

 

感謝 蕎伊斯 的熱心回覆。

XQ小幫手 發文於   2022/01/19

Hello iker,

 

EnterMarketCloseTime XSHelp網頁的部分已修復,可正常觀看。

感謝。

iker 發文於   2022/01/19

感謝小幫手!!

我後來有確認到是例外情況下會造成模擬單不平倉,假日修復後用 time 或 currenttime 也都可以平倉了

我會試著改用 EnterMarketCloseTime

發表回覆
Close