代码之家  ›  专栏  ›  技术社区  ›  LegsNotHands

当中间有价值撤回时,如何使用NumPy Financial的irr?

  •  1
  • LegsNotHands  · 技术社区  · 1 年前

    我试图使用numpy_financial计算一个月的内部收益率,但我没有成功。我在数组的哪个位置出错了?

    例如:

    initial_balance = 579676.18
    final_balance = 2921989.17
    

    据我所知 from the documentation ,最终余额应被视为最后一天的提款(正值),因为它计算为零。

    现金流是一个31的数组,对应于该月的天数:

    [0, 22700.00, 0 ,0 ,0 ,5320.00 ,0 ,0 ,-39900.00 ,0 ,0 ,0 ,0 ,0 ,0 ,-2278500.00 ,0, 31472.00, -42000.00, 0 , 0 , 0, -70300.00, 0, 0, 0, 0, 0, 0,36650.00, 0]
    

    因此,根据我从文档中了解到的情况,最终的数组应该是32的数组?第一个是初始余额,其他31个是每日现金流+最终余额?

    [initial_balance, 0, 22700.00, 0, 0, 0, 5320.00, 0, 0, -39900.00, 0, 0, 0, 0, 0, 0, -2278500.00, 0, 31472.00, -42000.00, 0, 0, 0, -70300.00, 0, 0, 0, 0, 0, 0, 36650.00, final_balance]
    
    

    正确的内部收益率为0.000 1465 ,但输出为0.00 1685 我做错了什么?

    from numpy_financial import irr
    
    final_array = [initial_balance, 0, 22700.00, 0, 0, 0, 5320.00, 0, 0, -39900.00, 0, 0, 0, 0, 0, 0, -2278500.00, 0, 31472.00, -42000.00, 0, 0, 0, -70300.00, 0, 0, 0, 0, 0, 0, 36650.00, final_balance]
    
    irr(final_array)
    
    1 回复  |  直到 1 年前
        1
  •  0
  •   Free Palestine    1 年前

    根据the document :

    因此,例如,至少代表初始投资的第一个价值元素通常是负的。

    你的 initial_balance 应该是 消极的 ,在你的例子中,休息一切都是正确的。

    from numpy_financial import irr
    
    final_array = [-initial_balance, 0, 22700.00, 0, 0, 0, 5320.00, 0, 0, -39900.00, 0, 0, 0, 0, 0, 0, -2278500.00, 0, 31472.00, -42000.00, 0, 0, 0, -70300.00, 0, 0, 0, 0, 0, 0, 36650.00, final_balance]  # see negative sign before initial_balance
    
    
    irr(final_array)
    

    #输出

    0.00014651601147774862