私は金融について何も知りませんが、6 か月間の収益率を知りたい場合は、年率を 2 回複利したときの利回りになるはずです。3か月分のレートを知りたい場合は、4倍複利で年利と等しくなるようなレートにするなどです。これは、年利回りから任意の期間のレートに換算することが根の計算と密接に関係していることを意味します。 . 年間の収益率を元の金額の割合として表す場合 (つまり、20% の収益を 1.2、100% の収益を 2.0 などと表す)、その数値の平方根をとることで 6 か月の収益率を得ることができます。 .
Ruby には、あらゆる種類の複素根を計算するための非常に便利な方法があります。指数演算子**
.
n ** 0.5 # square root
n ** (1.0/3.0) # 3rd root
...等々。
したがって、次の方法で、年間収益率を任意の期間の収益率に変換できるはずです。
yearly_return ** (days.to_f / 365)
同様に、日次、週次、月次のレートを変換したり、年率に戻したりするには:
yearly_return = daily_return ** 365
yearly_return = weekly_return ** 52
yearly_return = monthly_return ** 12
...等々。
私が見る限り (ウィキペディアの記事を読んでから)、IRR の計算は実際には使用された期間に依存していません。一連の年間キャッシュ フローを入力として与えると、年率が得られます。一連の毎日のキャッシュ フローを入力として与えると、毎日のレートが得られます。
リンクしたソリューションの 1 つを使用して、日次または週次のキャッシュ フローの IRR を計算し (便利なものは何でも)、指数を使用して年率に変換することをお勧めします。メソッドの出力に 1 を追加する必要がありますirr()
(10% のリターンが 0.1 ではなく 1.1 になるようにするなど)。
あなたが与えた例の毎日のキャッシュフローを使用すると、これを実行して毎日のIRRを取得できます。
irr([-30000,0,0,0,-15000,0,11000,0,0,0,0,0,0,0,0,0,0,14000,0,21000])