程式單開啟時間

  •   369 
  • 最後發表   石頭  2024 十二月 02
石頭 發文於   2024/11/25

若有四隻策略,兩隻09:15開始做,另外兩隻10:15開始做。 但早上08:50就會四隻策略都打開,以防盤中打開有問題。 不知道10:15這兩隻策略在09:15-10:00這段區間,會不會拖慢另外兩隻正在跑的策略。可以寫什麼語法讓 10:15開始做的策略,10:00再開始執行程式?(排程08:50開,不太希望排程設定在10:00開)

目前只有想到,在程式碼第一行加入 if time>=100000 then begin

主程式

......

 最後一行 end。

 

 

謝謝🙏

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/11/25

用Time控制,對效能的影響應該不大。

石頭 發文於   2024/11/25

所以 if time 放在程式第一行,是可行的方案? 謝謝

XS小編 發文於   2024/11/28

Hello 石頭,

 

您可以在腳本開頭藉由此條件來避免腳本完整運算來提升效率沒錯。

不過須注意腳本中是否有需要用到前期值的部分,例如MACD、KD這類的指標。

若有的話則需要確保這部分的腳本在指定時間前也需要運算。

石頭 發文於   2024/11/28

我昨天嘗試if time>=100000 放第一行,執行回測卻跑不出資料。

腳本裡面會抓昨天日k的資訊,也有用if date<>date[1]來限制判斷一次。

盤中的條件,應該跟幾點開始進入time沒關係,都是宣告當天D的資訊

不知哪有問題?

 

if time >=100000 then begin

分k偵錯

變數宣告

 

If date<>date[1] then begin

判斷昨日日k資訊

end

盤中條件

If condition then 進場

If condition then 出場.

.

.

 

end

謝謝

 

XS小編 發文於   2024/12/02

Hello 石頭,

 

小編建議您使用 print 函數將相關數值印出,會比較好確認問題原因。

推測您遇到的情況可能是回測使用日頻率導致time為0 (time在日頻率會回傳0,可以改用 currenttime 來作替代)。

或是盤中條件運算時會使用到前期變數值,導致結果和沒有加上time >=100000時不同。

 

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

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

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

感謝。

發表回覆
Close