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