小幫手您好,我在交易程式寫入
if (Getfield("融券最後回補日") - CurrentDate) > 10 then return;//融券最後回補日前十天前起不執行
就是希望回補日10天內才執行此程式,但回測跑出來卻不符合,請問是何原因?
ps:程式如附件
策略執行與策略回測,邏輯上往往不同。你的currentDate是目前電腦的日期,而非跑K棒時的那根K棒。
試著改用下列寫法試試看。
condition1=DateDiff(Getfield("融券最後回補日"), Date)>10; //距離未來的最後回補日超過10天
condition2=DateDiff(Getfield("融券最後回補日"), Date)<0; //未來的最後回補日還沒出現,上次的最後回補日是在過去的某一天
if condition1 or condition2 then return;
謝謝許教授的回覆,我有改過Date結果一樣。
而XQ設計如下
歷史區間為當時的意思是,例如回溯、回測與策略部位計算功能,都是腳本執行在歷史的時間範圍中,這時的CurrentDate就會是歷史當天,而非今天。
即時區間為當日的意思是,腳本執行在當下,因此CurrentDate就會是今天。
https://xshelp.xq.com.tw/XSHelp/?HelpName=CurrentDate&group=DATEFUNC
謝謝小編,我再測試驗證看看:)
4 評論