同一個細行業合計月營收年增率,長期追蹤,可以看出一個產業,目前處於那一個景氣循環的階段,甚或是產業生命週期的那一個階段,其股價敏感度,比合計營收的長期走勢圖還高。
計算一個細產業的月營收年增率的寫法,sample如下
input: _calcType(1, "計算方式", inputkind:=Dict(["加權平均",1],["簡單平均",2]), quickedit:=true);
Group: _group();
var: _i(0), _size(0), _lastestMonth(0);
var: _sumEarning(0), _earningCount(0), _avgEarning(0);
var: _sumWeightedEarning(0),_sumCapital(0);
_group = GetSymbolGroup("成份股");
// 檢查是否有資料
//
_size = GroupSize(_group);
if _size = 0 then return;
// 迴圈運算前,初始化變數
//
_sumEarning = 0;
_sumWeightedEarning = 0;
_sumCapital = 0;
_lastestMonth = 0;
_earningCount = 0;
// 迴圈計算每一檔成份股數值
//
for _i = 1 to _size begin //大迴圈會跑遍每一檔成份股
if CheckSymbolField(_group[_i], "Close") then begin //確認股票當天有資料
// 實際要計算的內容===開始===
//
// STEP 1 換期時數值歸零
if GetSymbolFieldDate(_group[_i], "月營收年增率", "M") > _lastestMonth then begin //如果成份股有人提前公佈數值,目前計算的都歸零
_lastestMonth = GetSymbolFieldDate(_group[_i], "月營收年增率", "M");
_earningCount = 0;
_sumEarning = 0;
_sumWeightedEarning = 0;
_sumCapital = 0;
end;
// STEP 2 同樣期別時,數值計算
if GetSymbolFieldDate(_group[_i], "月營收年增率", "M") = _lastestMonth then begin //依最新的資料期別進行統計
_earningCount = _earningCount + 1;
_sumEarning = _sumEarning + GetSymbolField(_group[_i], "月營收年增率", "M");
_sumCapital = _sumCapital + GetSymbolField(_group[_i], "股本(億)", "D");
_sumWeightedEarning = _sumWeightedEarning + GetSymbolField(_group[_i], "股本(億)", "D") * GetSymbolField(_group[_i], "月營收年增率", "M");
end;
// 實際要計算的內容===結束===
//
end;
end;
if _calcType = 2 then
_avgEarning = _sumEarning / _earningCount
else
_avgEarning = _sumWeightedEarning / _sumCapital;
// 要繪製的指標
//
plot(1, _avgEarning, "月營收年增率");
在這裡有用到calcType這個語法,來切換營收指標的計算是用股本加權平均還是簡單平均
這個指標用在景氣循環股,可以掌握整個產業是否已開始復甦

以上圖的平板鋼為例,月營收連續多個月回升之後,股價會有所反映

上圖是用加權平均,從這張圖來看,記憶體似乎可以密切觀察
