該怎麼取得當週的週K及均線相關資訊

  •   282 
  • 最後發表   KL1003  2024 十一月 18
KL1003 發文於   2024/11/15

小幫手,我發現在做回測時遇到一個問題,想請教該怎麼處理,設定如下

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]);

 

 

 

 

KL1003 發文於   2024/11/18

Hi, all

自推來結案

把[0]砍掉就是當週了

寫習慣程式會不自覺認為[0]跟[1]是相同的時間週期 囧

發表回覆
Close