使用xq回測,發現某一檔個股會進場。
但實際上將條件print到log以後,發現是不會進場的。
請問後續該如何確認xs的邏輯?
回測進場條件與xs裡面的值不同,請問如何確認邏輯?
- 239
- 最後發表 TestEZ 2022 七月 06
Hello TestEZ,
小幫手這邊無法看到您的腳本是如何撰寫,所以也不知道條件為何。
不過就您附上的截圖和回測報告,在 5/30 09:37 時放空,而截圖在 5/30 093600 時 cross under 最小值 是 True。
如果條件是 cross under 最小值 的話,那麼是符合預期的。
因為腳本會在觸發後才進場,您在093600這根Bar觸發,所以最快就是會在下一根Bar (093700) 時觸發。
如果不希望發生此狀況,可以勾選觸發即判斷成交選項。
如果不是小幫手上述原因的話,麻煩您提供 回測腳本、print出來的相關數據 (如果腳本和回測腳本不同的話,麻煩一併提供該腳本) 來檢驗。
您可以直接將檔案上傳,也可以Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
小幫手,我已經發信到mail了
再麻煩你協助確認
謝謝
Hello TestEZ,
這是因為您的寫法導致五日均價的計算會受到前面的 condition1 和 收盤價向下穿越最小值的影響。
如果前面兩個條件有任何一個不符合的話,五日均價就不會計算導致當根的紀錄為0,而在判別向下穿越的時候會用到當根和上一根 Bar 的資訊因此錯誤。
建議您可以用變數計算五日均價後,在將其寫入條件。
舉例來說:
value1 = average(getfield("Close", "D"), 5);
if condition1 and close cross under value1 and ... then begin...
如果希望讓自動交易可以跟上次的回測結果一樣進場點的話,要怎麼修改自動交易的策略的腳本呢?
還是上次回測的結果本身就是不存在
Hello TestEZ,
小幫手不太確定您想問的是什麼,不過兩次回測如果設定相同的話,執行出來的結果也會是相同的。
或著是您也可以用date和time來限定什麼日期時間要交易。
回測報告左上方有儲存按鈕可以將報表保存下來。
我的策略就是之前提供(有發mail)的。
但我遇到的問題是自動交易的結果和回測的結果不同(自動交易沒有進場,回測有進場)。每次回測的結果都一樣,我想應該是有相同的邏輯,只是跟自動交易的邏輯不同。
我想知道如何讓 自動交易實單 和 回測的訊號相同?
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 且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
8 評論