小幫手您好:
我想透過計算四期EPS年增率的回歸線選股,以下是我的程式碼:
setbarBack(9,"Q");
value1=rateOfChange(Getfield("EPS","Q"),4);
if linearregslope(value1,4) > 0
then ret = 1;
outputField(1,linearregslope(value1,4),2,"EPS年增率四期回歸");
outputField(2,value1[0],2,"EPS年增率1");
outputField(3,value1[1],2,"EPS年增率2");
outputField(4,value1[2],2,"EPS年增率3");
outputField(5,value1[3],2,"EPS年增率4");
print(file("C:\print\print成長率測試8-rateofchange.log"),date,symbol,close,value1[0],value1[1],value1[2],value1[3],"斜率",linearregslope(value1,4));
因為函式碼沒有提供EPS成長率,因此我先透過rateofchange去計算EPS成長率,並將指定為value1,
我上面程式碼遇到的問題是,value1的頻率好像一直都是用"日"在計算,而非我以為的"季",因為我透過print去看value1[0],value1[1],value1[2],value1[3]的數值,發現當有新的EPS數據公布時,第一天value[0]會改變為最新的EPS年增率,然後第二天時,value[0]跟value[1]會變成最新的EPS年增率,第三天依此類推,直到value1[0],value1[1],value1[2],value1[3]都變成當期的EPS年增率,如附圖一
我預想的是value[0]會是當期的EPS年增率,value[1]會是上一期的,依此類推,我有想過直接把回測的頻率調成"季",但print出來的數據顯示,這樣好像就無法即時在EPS數據一公布時,就立刻透過城市算出EPS年增率並進行選股,而且不知道為何都會有一段時間,value[0]跟value[1]的數值是相同的,如附圖二
因此想問小幫手,我該如何能夠在"日"的圍度去計算四期EPS的年增率並透過linearregslope去計算他的線性回歸斜率呢?
謝謝您
2 評論