Я использую функцию NPV () в VB.NET, чтобы получить NPV для набора денежных потоков.
Однако результат NPV () не согласуется с моими результатами, выполняющими вычисление вручную (ни подсчет NPV Investopedia ... который соответствует моим ручным результатам)
Мои правильные ручные результаты и результаты NPV () близки, в пределах 5% .. но не совпадают ...
Вручную, используя формулу NPV: NPV = C0 + C1 / (1 + r) ^ 1 + C2 / (1 + r) ^ 2 + C3 / (1 + r) ^ 3 + .... + Cn / (1 + r) ^ n
Ручной результат сохраняется в RunningTotal со скоростью r = 0,04 и периодом n = 10
Вот мой соответствующий код:
РЕДАКТИРОВАТЬ: СделатьУ меня где-то есть OBOB?
YearCashOutFlow = CDbl(TxtAnnualCashOut.Text)
YearCashInFlow = CDbl(TxtTotalCostSave.Text)
YearCount = 1
PAmount = -1 * (CDbl(TxtPartsCost.Text) + CDbl(TxtInstallCost.Text))
RunningTotal = PAmount
YearNPValue = PAmount
AnnualRateIncrease = CDbl(TxtUtilRateInc.Text)
While AnnualRateIncrease > 1
AnnualRateIncrease = AnnualRateIncrease / 100
End While
AnnualRateIncrease = 1 + AnnualRateIncrease
' ZERO YEAR ENTRIES
ListBoxNPV.Items.Add(Format(PAmount, "currency"))
ListBoxCostSave.Items.Add("$0.00")
ListBoxIRR.Items.Add("-100")
ListBoxNPVCum.Items.Add(Format(PAmount, "currency"))
CashFlows(0) = PAmount
''''
Do While YearCount <= CInt(TxtLifeOfProject.Text)
ReDim Preserve CashFlows(YearCount)
CashFlows(YearCount) = Math.Round(YearCashInFlow - YearCashOutFlow, 2)
If CashFlows(YearCount) > 0 Then OnePos = True
YearNPValue = CashFlows(YearCount) / (1 + DiscountRate) ^ YearCount
RunningTotal = RunningTotal + YearNPValue
ListBoxNPVCum.Items.Add(Format(Math.Round(RunningTotal, 2), "currency"))
ListBoxCostSave.Items.Add(Format(YearCashInFlow, "currency"))
If OnePos Then
ListBoxIRR.Items.Add((IRR(CashFlows, 0.1)).ToString)
ListBoxNPV.Items.Add(Format(NPV(DiscountRate, CashFlows), "currency"))
Else
ListBoxIRR.Items.Add("-100")
ListBoxNPV.Items.Add(Format(RunningTotal, "currency"))
End If
YearCount = YearCount + 1
YearCashInFlow = AnnualRateIncrease * YearCashInFlow
Loop
РЕДАКТИРОВАТЬ: используя следующие значения: ставка дисконтирования = 4% срок действия проекта = 10 лет денежный поток 0 = -78110,00 денежный поток 1 = 28963,23 денежный поток 2 = 30701,06 денежный поток3 = 32543,12 Денежный поток 4 = 34495,71 Денежный поток 5 = 36565,45 Денежный поток 6 = 38759,38 Денежный поток 7 = 41084,94 Денежный поток 8 = 43550,03 Денежный поток 9 = 46163,04 Денежный поток 10 = 48932.82
Используя калькулятор на http://www.investopedia.com/calculator/NetPresentValue.aspx И, следуя формуле «учебника», я получаю тот же результат:
Чистая приведенная стоимость: 225 761,70
Iне может заставить NPV () воспроизвести этот результат ... он выплевывает $ 217,078.59
Я повторяю это вручную, используя пример того же значения ... поэтому они должны использовать функцию, отличную от меня ...
В примере страницы MSDN четко указано, что первоначальные расходы должны быть включены в список денежных потоков.