小幫手,我發現在做回測時遇到一個問題,想請教該怎麼處理,設定如下
1. 回測時間週期:週
2. 回測時間 2024/4/22-2024/10/27
3. 進場價格: 當期收盤價
4. 出場價格: 當期收盤價
使用這樣的設定做回測時,2330 的第一筆資料如下,這邊我沒什麼問題
"台積電",2330.TW,1,2024/04/22,買進,775.53,2024/04/29,賣出,773.55,1,-0.006539,最大持有 1 期
但我去分析我print的資料,發現我print的資料根本對不上2330的4/22買進資料,排查很久才知道4/22 週K的收盤價根本跟print 不一樣
我print的資料如下
20240422.0000002330.TW 收盤價 735.860000 MA5 767.400000
研究後發現, 735.86為4/22 當日的收盤價(4/22,週一),並不是4/22 當週的收盤價775.53 (4/26,週五)
這也連帶影響到時間週期為週的最高價/ 最低價以及均線的相關資料都是錯的
但很神奇的是,如果是取得前一周的資訊,就沒問題了,想詢問這問題該怎麼解決呢?
我希望print的資料跟回測的資料是對的上的, 謝謝,我使用的程式碼就只有底下這樣而已
DayMAPrice[0] = GetField("Close","W",Adjusted:=true)[0]; //==>當週收盤價, 錯誤
DayMAPrice[1] = Average(GetField("Close","AW")[0],5); //==>當週MA5, 錯誤
DayMAPrice2[0] = GetField("Close","W",Adjusted:=true)[1]; //==>上週的收盤價, 正確
DayMAPrice2[1] = Average(GetField("Close","AW")[1],5); //==>上週的MA5, 正確
print(file("C:\print\print.log"),date,symbol,"收盤價",DayMAPrice[0], "MA5",DayMAPrice[1]);
1 評論