XQ程式自動交易相關問題 - currenttime判斷

  •   180 
  • 最後發表   Cally Sell  2023 二月 22
Cally Sell 發文於   2023/02/16

小幫手您好

我設定currenttime判斷式在指定時段強制平倉多空單,部分程式碼如下

 

if (currenttime > 045000 and currenttime < 050000 ) then begin

if Position = 1 and Filled = 1 then begin

SetPosition(0);

end;

if Position = -1 and Filled = -1 then begin

SetPosition(0);

end;

end;

 

執行回測交易後為什麼還是會看到下圖這筆交易呢?(有啟動逐筆洗價),謝謝。

 

 

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/02/17

Hello Cally Sell,

 

小幫手沒有看到您完整的腳本,所以無法確定,不過常見的狀況可能是腳本中強制平倉判斷式之前有其他setposition被觸發導致優先執行。

複數個setposition同時被觸發時只會執行第一個觸發的交易指令。

這邊簡單測試是可以平倉的。(參考附圖)

另外的可能是如果該分鐘Bar沒有交易的話,回測也不會交易。

如果還是有問題的話,麻煩您提供 交易腳本、回測的設定(回測報告或截圖皆可) 以及 XQ Log 來檢驗。

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

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

感謝。

附加文件

Cally Sell 發文於   2023/02/17

小幫手您好,首先,感謝您的回答。我把問題範圍縮小來詢問好了,請問如果我想要設定腳本內容在凌晨4:50~凌晨5:00這十分鐘內不交易,下面這個判斷式有任何問題嗎?謝謝。

 

 

 

if (currenttime > 045000 and currenttime < 050000 ) then begin

// 買賣交易

end;

 

 

XQ小幫手 發文於   2023/02/21

 Hello Cally Sell,

 

您的條件是腳本運算時間位於 04:50 ~ 05:00 之間時,執行包含在 if 裡面的指令。

但目前並沒有 "不交易" 這個交易指令。

 

如果是小幫手的話,會反向操作將所有的交令指令放在此區間以外。

舉例來說:

if (currenttime < 045000 and currenttime > 050000 ) then begin

    //達成什麼條件就交易

    end;

這樣在 04:50 ~ 05:00 就不會交易。

XQ小幫手 發文於   2023/02/22

Hello Cally Sell,

 

小幫手更正上面的條件,(currenttime < 045000 and currenttime > 050000) 應該修改為 (currenttime < 045000 or currenttime > 050000 ) 才對,用and會使這個判斷式永遠得出false的判斷。

(currenttime < 045000 or currenttime > 050000 ) 會在 04:50 ~ 05:00 這段時間為 false,其他時間為 true。

  • 按讚來自於
  • mg5510633
發表回覆
Close