自動交易中心相關問題

  •   93 
  • 最後發表   小姐別晃我暈奶  2022 七月 06
小姐別晃我暈奶 發文於   2022/07/01

var:long_condition(false);  

 

 var:down2(0); 

 // 資料讀取筆數設定  

 

 

 

 

 down2 = average(close,10)[1]; 

 

 

 

 

 

 

 

 

  

 if getfield("Time", "1") >= 092000 and filled=0 then begin

 

 if   getfield("Time", "1") >= 093100  and close>open[0] and open<close[1]*1.09 then  setposition(FLoor(91/close[1]),market); 

 

 

 

 if   getfield("Time", "1") >= 131000 and close>down2 then setposition(FLoor(91/close[1]),market); 

 

 

 

 if  getfield("Time", "1") >= 093100  and close>close[1]*1.09 and open>close[1]*1.09 then setposition(FLoor(91/close[1])); 

 

  

 

 end;

 

 

 

 

 

 

 if filled>0  then begin 

 

 

 

 

 

 if close <down2 or close<filledAvgPrice*0.9 then begin

 setposition(0); 

 end;

 end; 

以上是我的自動交易程式,但有些小問題如圖,會在8:59的時候打單進去,但我很明確是要9:30之後才參考要不要進場

想請問要如何才能改善這問題呢?備註:之前用實單打出現這個bug然後用了兩層getfield("Time", "1") 模擬單測試發現仍會有這bug,但會這回測都能成功在9:30後才進入

所以我目前想到的修改方式1.頻率用分K去跑,但在取得日縣級別均線數據方面要做修改我不太懂怎麼做

2.頻率用日線跑,用getfield拿到日期不等於前一天的濾網做,不確定有沒有用

想請問小編或大神想法

附加文件

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

Hello 小姐別晃我暈奶,

 

1. 小幫手看您的腳本,應該不會發生這種錯誤,就執行時間來看,小幫手猜測可能是K棒對位的問題。(可以用 print(getfield("Time", "1")); 來確認)

需要麻煩您提供 交易中心匯出檔勾選(包含)交易腳本、問題發生的日期 以及 XQ Log 來檢驗。

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

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

感謝。

 

另外,您可以嘗試看使用 currenttime

這是用電腦本機當下的時間。

在分鐘頻率要算日頻率均線的話,可以用 average(getfield("Close", "D")[1], 10) 來計算,會相當於日頻率下計算的 average(close,10)[1]。

 

2.您指的是 getfield("Date", "1") <> getfield("Date", "1")[1] 這樣嗎?

如果是的話,那就是開盤第一根1分鐘Bar時會符合上述條件。

不過小幫手覺得 currenttime 應該會比較有效。

發表回覆
Close