Techioz Blog

目標 IRR を考慮してキャッシュ フローを計算する

概要

これに対する答えがすでにどこかにある場合は申し訳ありません。数時間探していますが、探しているものが見つかりません。

目標 IRR を指定してキャッシュ フローを計算するための単純な財務計算ツールを構築しています。例えば:

他にも変数や機能がありますが、ここでやろうとしていることには重要ではありません。指定された数のキャッシュ フローの IRR を計算できるライブラリや関数はたくさん見つかりましたが、指定された IRR のキャッシュ フローを取得しようとしても何も表示されません。

現時点での唯一の解決策は、基本的にループを実行して値を入力し、IRR が目標 IRR より高いか低いかを確認し、必要なキャッシュ フローが得られるまで IRR を計算し続けることだと思います。 。

これは、この特定の問題に対処する最善の方法でしょうか?それとも、私が見逃している、それに対処するためのより良い方法があるのでしょうか?大変助かりました!

また、参考までに、私はこれを Ruby on Rails で構築しています。

編集:

IRR関数:

NPV = -(I) + CF[1]/(1 + R)^1 + CF[2]/(1 + R)^2 + … + CF[n]/(1 + R)^n

NPV = 正味現在価値 (この値は可能な限り 0 に近い必要があります)

I = 初期投資 (この例では 8,000,000)

CF = キャッシュ フロー (これは私が計算しようとしている値です。手で計算すると、最終的に ,618,875 になります。財務計算機では、次のように解いているため、すべてのキャッシュ フローが同じになります。彼ら。)

R = 目標収益率 (10%)

n = 年 (つまり、この例は 5 で終わります)

私たちが扱う数値は数億単位であるため、誤差の 0.005% 以内でキャッシュ フローを計算しようとしています。

解決策

させて

v0 = initial value
vn = value after n periods
n  = number of periods
r  = annual rate of return
y  = required annual net income

1 期間の割引係数は次のとおりです。

j = 1/(1+r)

投資の現在価値は次のとおりです。

pv = - v0 + j*y  + j^2*y + j^3*y +..+ j^n*y + j^n*vn
   = - v0 + y*(j + j^2   + j^3   +..+ j^n)  + j^n*vn
   = - v0 + y*sn + j^n*vn

どこ

sn = j + j^2 + j^3 + j^4 +..+ j^n

sn は次のように計算できます。

sn       = j + j^2 + j^3 + j^4 +..+ j^n
j*sn     =     j^2 + j^3 + j^4 +..+ j^n + j^(n+1)
sn -j*sn = j*(1 - j^n)
sn       = j*(1 - j^n)/(1-j)
         = (1 - j^n)/[(1+r)(r/(1+r)]
         = (1 - j^n)/r  

pv = 0 に設定し、y を求めます。

y*sn =  v0 - vn * j^n   
y    = (v0 - vn * j^n)/sn
     =  r * (v0 - vn * j^n)/(1 - j^n)

私たちの Ruby メソッド:

def ann_ret(v0, vn, n, r)
  j = 1/(1+r)
  (r * (v0 - vn * j**n)/(1 - j**n)).round(2)
end

年次複利の場合:

ann_ret(18000000, 13000000, 5, 0.1)       # => 2618987.4

半年複利の場合:

2 * ann_ret(18000000, 13000000, 10, 0.05) # => 2595045.75

毎日の配合では:

365 * ann_ret(18000000, 13000000, 5*365, 0.10/365) # => 2570881.20 

これらの値は、計算した必要な年間収益とはわずかに異なります。現在価値の計算式を比較すれば、その違いを説明できるはずです。