請問 自動交易 如何在開盤前的策略回測中抓到今天的日期及時間

  •   79 
  • 最後發表   shinetony  2026 七月 30
shinetony 發文於   2026/07/29

你好 , 小編 或教授
         請問 你們知道 自動交易 如何在開盤前的策略回測中抓到今天的日期及時間 嗎?

Thanks

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/07/29

回測期間的Date與CurrentDate相同。無法抓到今天的日期。

請說明在過去的期間跑回測,要抓今天日期的理由是什麼。

shinetony 發文於   2026/07/29

因為我的自動交易 策略 需要取到之前計算紀錄的值來計算目前的交易條件 在 設定 自動交易 策略部分 只有選擇 由腳本計算 盤前回測出來的 資料跟我跑回測結果 相同 , 其他 延續前次執行 , 與庫存同步 都完全跟我跑回測結果對不起來 , 所以 我只能 選擇 腳本計算 , 但是 XQ 自動交易 常常非常不穩定 尤其 是最近 交易 變化 巨大 常常 當住 而導致 沒有正常 停損 停利 或是 改變 交易方向 , 導致 由腳本計算 的 position 和 真正庫存 對不起來 而導致無法 正確 交易 , 買賣 張數不正確 , 或者 腳本計算 的position 已經認為 建倉 但實際 根本沒有 , 卻 送不出 交易 , 所以我 想 在今天 正式 開盤前 用 SetPosition 將 Position 跟我的 庫存 align , 所以 我想知道 XQ 可不可以 抓到 今天 的日期時間 來 判斷 開盤前交易 , 或是有什麼函數 或方法 可以知道 是不是 開盤前 回測的 最後一筆 資料 , 如果有其他 可以 替代 的 想法 或做法  也歡迎提供 

Thanks

虎科大許教授 發文於   2026/07/30

若你希望開盤時的庫存就是實際庫存,最好的策略部位設定是與庫存同步。我猜測,你使用由腳本計算得到的最後庫存與實際庫存不同,應該是你用來紀錄數值的變數沒處理好。使用與庫存同步,在跑歷史K棒時,一樣可以用變數記錄數值。你可以用Print指令顯示該數值的變化,看看是哪裡出問題。

shinetony 發文於   2026/07/30

是因為XQ自動交易 hang 住導致 該送出的停損停利單 或 多空單 沒正確送出, 導致 真正庫存和 盤前回測不同 , 導致無法再次正確 下出交易單, 例如 前天 改作 空, 但是 XQ自動交易沒有送單成功 所以 庫存為 0 , 但是盤前回測 結果目前已有 空單position -1 , 就無法再送出新的空單, 我改過 延續前次執行 和與庫存 同步兩種選項 , 但是盤前回測 他的交易點 和我跑回測 和真實的下單點 完全不一樣 差距非常大, 完全不可信, 我也不想改自己的策略 從目前condition 去計算 先前的紀錄數值 , 那個改動會非常大, 也會使程式變得非常複雜

 

虎科大許教授 發文於   2026/07/30

由腳本計算的策略部位是模擬的結果,它不一定會與真實的交易結果一樣。我很難理解你所謂用過去數值作為交易訊號,數值是如何計算。只要過去的數值是明確的,根本不需要模擬。若你想解決問題,可能需要提供更詳細的資訊,特別是你一定要透過模擬才能得知的數值是什麼或數值是如何計算的。

shinetony 發文於   2026/07/30

過去的數值當然可以回推去計算 只是 就需要將程式很多判斷的 地方變得 很複雜 , 我暫時不想去動這一部分, 只想請教是否有什麼函數 可以判斷 是否是當天盤前回測 最後要結束的 event , 然後修正 Position 而不要真正送單出去 就可以了 , 不知道 IsSessionLastBar 是否可以拿來判斷 , 他是指整個回測當一個 session 還是 其中的某一天 就是一個 session , 因為說明非常少 , 不知道他 session 的意義是指什麼

虎科大許教授 發文於   2026/07/30

若你使用分鐘頻率,則每天最後一根分K時,IsSessionLastBar會是True,其他分K則都是False。若使用日頻率,則每根K棒都是True。

發表回覆
Close