LoginSignup
1
2

More than 3 years have passed since last update.

CAGRについて

Last updated at Posted at 2020-06-27

1 目的

CAGRの説明とCAGRを計算するコードを記載する。

2 内容

2-1 Returnの定義

ある株式銘柄の価格について、当日の終値を$S_{i}$と表し、前日の終値を$S_{i-1}$と表すときに
変化率$c_{i}$は下記式(1)で定義する。

c_{i} = \biggl({\frac{S_i}{S_{i-1}}} \biggl) \tag{1}

基準日からn営業日のReturn($R_{n}$と表現)を下記式(2)で定義します。

R_{n} = \prod_{i=1}^{n} (1+c_{i}) \tag{2}

2-2 CAGRの計算式

基準日からn営業日のCAGRを下記式(3)で定義します。

CAGR(n) = R_{n}^{1/years}-1  \tag{3}

ただし、years= n/(1年間の取引日総数) となる。

2-3 CAGRの意味は?

CAGR(年平均成長率)とは、複数年にわたる成長率から、1年あたりの幾何平均を求めたもの。
例えば、100百万円の売上高が3年間で160百万円に伸びたときの、3年間の平均成長率を考える。
この問題に対して、3年間で160÷100=1.6 すなわち60%増だから、1年あたりの平均成長率は60÷3=20で20%という考え方は誤りである。一般のビジネスの考え方では年平均成長率というとき、複利の考え方を前提にしており、100×(1+x)×(1+x)×(1+x)=160となるようなxを求めないといけない。
従って、3√1.6=1.1696・・・ すなわち17.0%が正解となる。

出典:https://mba.globis.ac.jp/about_mba/glossary/detail-11621.html

2-4 CAGR計算するコード

test.py
#CAGR(年率成長率)を計算する
def CAGR(DF):
    df = DF.copy()
    df["daily_ret"] = DF["Close"].pct_change() #株価終値の前日との変化率を計算する。
    df["cum_return"] = (1 + df["daily_ret"]).cumprod() #cumprod(全要素の累積積を スカラーyに返します.
    n = len(df)/252
    CAGR = (df["cum_return"][-1])**(1/n) - 1
    return CAGR
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2