XS回測問題

  •   251 
  • 最後發表   Jeffrey  2021 八月 30
Jeffrey 發文於   2021/08/12

Hi, 您好, 

我發現回測會有些錯誤的地方

以下是我撰寫自動交易策略委買的部分, (請看圖"策略邏輯")

策略邏輯

可以看到, 這裡我在條件成立下單的時候會印出"委買"

然後在下面會印出當下的時間和委買的 position 值

照理說下個tick只要我前一個tick有委買的動作, position 就應該要更新

 

 

但是下個tick我得到的值還是0, 如下圖

bug

這張圖存在3個問題

1. 同個時間重複跑策略

2. 下個tick部位(position)還是0, 影響到重複下單

3. 最後也還是沒成交(市價單買應該要成交), 影響到成交數量

 

這樣的狀況感覺會影響到回測的交易次數和勝率

麻煩請協助回答下究竟這個是bug還是我本身程式的問題

謝謝

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/08/16

Hello Jeffrey,

 

1.

小幫手認為您應該是使用5分鐘頻率逐筆回測。

逐筆回測的狀況下會用1分鐘頻率的Bar模擬5分鐘Bar的運作狀況。

您可以參考 自動交易策略參數總覽 內關於逐筆的說明。

 

2.

這部分需要麻煩您提供交易腳本、回測的設定以及XQ Log來測試檢驗。

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

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

感謝。

 

3.

如果您是市價單的話,寫法應為:

setposition(value_volume, market);

您的寫法會是依造回測設定裡的預設買入限價單。(參考附圖)

附加文件

XQ小幫手 發文於   2021/08/16

Hello Jeffrey,

 

小幫手補充關於問題2的部分。

有可能是您在安控設定裡面勾選到最大部位限制為1。

這樣會導致如果您交易指令的目標部位大於1的話,交易指令將不會執行。

Jeffrey 發文於   2021/08/16

Hi 小幫手, 

感謝幫忙

但對於第2點和第3點的回覆我這要解釋一下

2. 我的最大部位是沒有限制的, 我只有限制當日進場次數

第3點回覆:

3. 我在回測設定裡面是有將委託改為市價的, 同時, 我也有試過你說的方式, 同樣有position不會變的問題

BRs,

Jeffrey.

XQ小幫手 發文於   2021/08/19

Hello Jeffrey,

 

那麼也有可能是當日您已經有進場過因此導致無法再度進場。

不過實際原因還是需要麻煩您提供交易腳本、回測的設定以及XQ Log來測試檢驗才能得知。

由於您回測設定的截圖上面顯示執行商品為串接選股,所以需要麻煩您一併提供該選股中心匯出檔,或是麻煩您告知有問題的商品名稱。

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

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

感謝。

 

Jeffrey 發文於   2021/08/25

您好小幫手,我有寄出了,目前還沒收到回應

麻煩再幫忙看看,感謝!

XQ小幫手 發文於   2021/08/27

 Hello Jeffrey,

 

已收到您的XQ Log,目前已轉交工程師研究。

有結果時小幫手會再度告知。

感謝。

XQ小幫手 發文於   2021/08/30

Hello Jeffrey,

 

小幫手後來想了一下,想跟您確認一件事。

小幫手看到您在8/16日提供的回測設定圖片中,回測開始的日期為8/11日。

不過您第一次附上print出來您認為應該要進場而沒進場的部分是6/28日。

在回測的時候,會有預先讀取筆數,也就是在您設定的回測開始日期以前的資料。

這段時間內腳本同樣會運作,所以如果遇到符合進場條件的時候一樣會print出委買。

需注意的是由於觸發時間在回測開始日以前,所以所有的交易指令都不會運作,也就是不會進場。

麻煩您確認一下是否是此原因所造成,感謝。

發表回覆
Close