回測進場條件與xs裡面的值不同,請問如何確認邏輯?

  •   239 
  • 最後發表   TestEZ  2022 七月 06
TestEZ 發文於   2022/06/08

使用xq回測,發現某一檔個股會進場。
但實際上將條件print到log以後,發現是不會進場的。

請問後續該如何確認xs的邏輯?

附加文件

排序方式: 標準 | 最新
TestEZ 發文於   2022/06/13

log印出來,是沒有符合條件的。
想知道為什麼會進場,這樣比較好調整邏輯

附加文件

XQ小幫手 發文於   2022/06/20

 Hello TestEZ,

 

小幫手這邊無法看到您的腳本是如何撰寫,所以也不知道條件為何。

不過就您附上的截圖和回測報告,在 5/30 09:37 時放空,而截圖在 5/30 093600 時 cross under 最小值 是 True。

如果條件是 cross under 最小值 的話,那麼是符合預期的。

因為腳本會在觸發後才進場,您在093600這根Bar觸發,所以最快就是會在下一根Bar (093700) 時觸發。

如果不希望發生此狀況,可以勾選觸發即判斷成交選項

 

如果不是小幫手上述原因的話,麻煩您提供 回測腳本、print出來的相關數據 (如果腳本和回測腳本不同的話,麻煩一併提供該腳本) 來檢驗。

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

感謝。

TestEZ 發文於   2022/06/20

小幫手,我已經發信到mail了

再麻煩你協助確認

謝謝

XQ小幫手 發文於   2022/06/24

Hello TestEZ,

 

這是因為您的寫法導致五日均價的計算會受到前面的 condition1 和 收盤價向下穿越最小值的影響。

如果前面兩個條件有任何一個不符合的話,五日均價就不會計算導致當根的紀錄為0,而在判別向下穿越的時候會用到當根和上一根 Bar 的資訊因此錯誤。

建議您可以用變數計算五日均價後,在將其寫入條件。

舉例來說:

value1 = average(getfield("Close", "D"), 5);

if condition1 and close cross under value1 and ... then begin...

TestEZ 發文於   2022/06/26

如果希望讓自動交易可以跟上次的回測結果一樣進場點的話,要怎麼修改自動交易的策略的腳本呢?
還是上次回測的結果本身就是不存在

XQ小幫手 發文於   2022/06/30

Hello TestEZ,

 

小幫手不太確定您想問的是什麼,不過兩次回測如果設定相同的話,執行出來的結果也會是相同的。

或著是您也可以用date和time來限定什麼日期時間要交易。

回測報告左上方有儲存按鈕可以將報表保存下來。

TestEZ 發文於   2022/06/30

我的策略就是之前提供(有發mail)的。
但我遇到的問題是自動交易的結果和回測的結果不同(自動交易沒有進場,回測有進場)。每次回測的結果都一樣,我想應該是有相同的邏輯,只是跟自動交易的邏輯不同。

我想知道如何讓 自動交易實單 和 回測的訊號相同?

XQ小幫手 發文於   2022/07/06

Hello TestEZ,

 

請問您已經有照上面的回覆將原本腳本錯誤的地方修正的嗎?

您原始腳本中的寫法,會造成收盤價穿越均線的判斷錯誤,所以才會需要改成小幫手寫的

value1 = average(getfield("Close", "D"), 5);

if condition1 and close cross under value1 and ... then begin...

這種形式,才不會發生運算錯誤的情況。

 

您可以加上print函數確認及時執行和回測print出來的數值兩者是否有異,並以此確認看是否能找出腳本的問題點。

另外,策略和回測執行時是否有選擇逐筆洗價也會造成差異。

如果還是無法解決的話,麻煩您提供 交易腳本匯出檔、回測的相關設定(截圖或回測報告皆可)、有問題的商品和日期時間點 以及 XQ Log 來檢驗。

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

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

感謝。

 

發表回覆
Close